Hello so I would like to change the system sounds on this version of macOS as I find the new ones to be quite annoying specificity sounds with in the following path /System/Library/Components/CoreAudio.component/Contents/SharedSupport/SystemSounds and I would like to change it with a set of sounds used in macOS Catalina and for reference here are my Specs
3 Answers
You can add your own system sounds without messing with the operating system copies; no SIP disabling or overwriting files.
Creating Personal Sound Folder
First and foremost, you just need to make a personal sounds folder /Users/myusername/Library/Sounds
. Replace 'myusername' with whatever your login is. You can either do this from the terminal, or from Finder using the "Go" menu and selecting "Library", and creating the Sounds
folder if it doesn't exist.
Adding Personal Sounds to the Mac
Next, take the sounds you want to use and drop them into that folder. They will now be visible as available sounds from the System Preferences -> Sounds control panel.
File Formats and Conversion
A word on the sounds, however. First, they might need to be converted. I've only tried AIFF (the default) and WAV formats; MP3, for example, won't work. If you need to convert a file, either search the web for 'AIFF converter' or you can install a tool "sox" which is a universal sound format conversion tool and can be as simple as:
$ sox input.mp3 output.wav
...you can then copy that output.wav into the ~/Library/Sounds folder and it will appear in the Sounds control panel the next time you launch it.
Duplicate Filenames
Second, the Sounds control panel will list them by their filename, but will not make the distinction if they come from the /System folder (the ones Apple supplied with macOS) or if they were found in your ~/Library/Sounds folder. As such, files with the same name - despite different extensions like wav/aiff/etc - will appear twice in the selection list. So, try to make them unique.
Replacing Newer macOS Sounds With Older Versions
Finally, if the goal is that you don't like the new version of macOS "Funk" (I don't), then get a copy of the older Funk.aiff from an older macOS installation, copy it to your new Mac and rename it something like 'Funk_older.aiff' instead, so that way it is unique in the selection.
I initially posted that I was able to do this, but I was wrong. I am able to change the sound files as I describe below, but somehow the original sound files are restored when the system reboots. I can't figure out how that is done, but it is happening on my system. So the result is that after all the effort, the sound files are effectively not changed. I apologize for not testing more thoroughly before I posted earlier.
If someone can explain to me how the reboot is restoring the original sound files, maybe I could fix it.
Here's what I did and what happened.
The systems sounds are in /System/Library/Components/CoreAudio.component/Contents/SharedSupport/SystemSounds
as described above. For example the unbelieveably annoying sound made when a file is moved is /System/..../SystemSounds/system/Volume Mount.aif
.
For an Intel Mac, all you had to do was override the System Integrity Protection and then copy a new sound file into a file of the same name using a sudo cp
command in a terminal window.
But in the newer macOS versions, the files are in the operating system partition which is mounted as read-only. You can't change anything unless you unmount the partition and remount it as rw
.
So what you have to do is boot the system from an external drive. Once you have done that, you can unmount the partition and remount it as rw
. After that, you can copy the new files into place.
So the steps are:
- boot your computer from an external drive
- unmount the partition (e.g.
sudo umount /dev/disk6s1
or whatever disk it is) - remount the partition (e.g.
sudo diskutil mount /dev/disk6s1
) in the absence of any flags it will remount as r/w. cd /Volumes/[nameOfDisk]/System/Library/..../system
cp [pathToNewSoundFile]/Volume\ Mount.aif
You can find clues to the physical disk name by typing diskutil list
in a terminal window.
Because Apple has tied two partitions together, i.e. the OS and the data partitions, you will have to unmount and remount both partitions.
Second, you need to be able to boot from an external drive. You can install the OS on an external drive by using the Recovery App, which is well documented elsewhere.
However, when the system reboots from the drive that you just modified, somehow the original sound files are restored. I tried locking the new files and making sure that the original files were not in the trash, but they were still deleted. As a test I created extra files in the directory, but the entire directory is regenerated somehow. Nothing I tried worked.
I would think that the sound files, and perhaps the entire SystemSounds
directory, is copied from somewhere. If this is true and someone knows where it is copied from, it might be possible to change the source files.
Any help would be appreciated.
-
thanks for the edits. I didn't realize the formatting standards were so high. I will try to do better in future.– dottoreCommented Jun 12, 2022 at 16:19
It's possible that some steps are unnecessary, but this is what's worked for me on MacOS 12.5.1 for an M1 mac (CAVEAT EMPTOR: At the very least, you will not be able to enable FileVault after this.). The "trick" is to disable authenticated-root, create a snapshot and mark it for boot.
- First, reboot to recovery (hold power button, after shutting down), disable SIP and authenticated root with
csrutil disable
andcsrutil authenticated-root disable
- Back in MacOS, figure out your boot volume with
diskutil list
. The boot volume should be the one nameMacintosh HD
by default. In my case it was disk3s1. - Create directory to mount the volume to, e.g.
mkdir -p -m777 ~/root
- Mount the volume, e.g.
sudo mount -o nobrowse -t apfs /dev/disk3s1 ~/root
open ~/root
and make your changes. Finder will still display the read-only symbol, but you will be able to authenticate when you make changes.- Once finished, create a system snapshot. I named mine "usermod"
sudo /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_systemsnapshot -v ~/root -s "usermod"
output should be something similar to:Attempting creation of snapshot usermod on volume: /Users/USERNAME/root
- Then mark this snapshot as the one to boot from with:
sudo /System/Library/Filesystems/apfs.fs/Contents/Resources/apfs_systemsnapshot -v ~/root -r "usermod"
, output should be something like:Attempting tagging of snapshot usermod2 on volume: /Users/USERNAME/root
- Check with
diskutil apfs listSnapshots disk3s1
, output should be something like:
Snapshots for disk3s1 (2 found)
|
+-- SOME-UUID-HERE
| Name: com.apple.os.update-HEXADECIMALSTRING
| XID: 27720
| Purgeable: No
|
+-- SOME-OTHER-UUID-HERE
Name: usermod2
XID: 52281 (Will root to (boot from) this snapshot)
Purgeable: Yes
(9. After making additional changes, you can delete snapshots with sudo diskutil apfs deleteSnapshot disk3s1 -uuid UUID-OF-THE-SNAPSHOT
)
It would be great, if we could override system paths with synthetic.conf somehow.