macOS 默认通知铃声修改教程
前情提要
macOS 默认的铃声在设置中是无法改变的,但这个默认铃声会被所有的 app 作为通知铃声使用,而且99.99%的 app 都没有设置项来修改这个。
本文将提供一种 破坏性的 办法,来实现替换默认铃声。
准备
- 准备好你想要的铃声,可以去 https://samplefocus.com/ 这里找。
- 把铃声转换为先转为 .aiff 文件,再转为 .caf 文件,使用
# wav 转换到 aiff ffmpeg -i <path-to-wav>.wav -map 0:0 -c:a wmav2 -ab 1411k -ac 2 -vn -f asf -sn -y <path-to-aiff>.aiff # aiff 转换到 caf afconvert <path-to-aiff>.aiff <path-to-caf>.caf -d ima4 -f caff -v
- 重启到恢复模式(m系列芯片关机后长按开机键直到进入选择界面)
- 关闭 SIP
csrutil disable csrutil authenticated-root disable
替换
- 重启到正常启动
- 挂载根目录
mkdir ~/livemount sudo mount -o nobrowse -t apfs "$(mount | head -n1 | awk '{print $1}' | sed 's/..$//g')" ~/livemount - 导航到目标
cd ~/livemount/System/Library/PrivateFrameworks/ToneLibrary.framework/Versions/A/Resources/AlertTones/EncoreInfinitum
- 将原文件改名备份
sudo mv Rebound-EncoreInfinitum.caf Rebound-EncoreInfinitum.caf.bak
- 把准备的铃声拷入
sudo cp <path-to-caf>.caf Rebound-EncoreInfinitum.caf
- 给系统创建新快照
# m系列芯片适用 sudo bless --mount ~/"livemount/System/Library/CoreServices/" --setBoot --create-snapshot # intel芯片适用(也有可能不适用,也有可能和m系列芯片用的是相同的,你都试试吧) sudo bless --folder ~/"livemount/System/Library/CoreServices/" --setBoot --create-snapshot
收尾
- 重启到恢复模式
- 恢复 SIP (想不到吧,改完文件并不影响sip,sip也不会使我们改的文件失效)
csrutil authenticated-root enable csrutil enable