本文发布于 768 天前,最后更新于 678 天前,其中的信息可能已经有所发展或是发生改变。
Changelog
2022-12-14 09:35 | 错字修改,图片改用图床
没记错的话在 APFS 出现后不久苹果便将 macOS 的 System 挂载成了可读,虽说是为了保护了用户,但也导致想对系统更改的难度大大提高。
今儿便借着卸载系统软件一事讲述一下现在如何更改苹果的系统,顺便水一篇文章 (话说这玩意网上没有教程就离谱,全是 n 年前失效老文章)。
首先解锁 SIP ,这个倒是不难,网上也有的是教程,便简单说一下吧。
禁用 SIP
ARM 版
首先关机,然后按住开机键不松手,直到迸如图界面(网图,侵删),然后点击选项 Options
,直至进恢复模式 Recovery 模式
。
然后在菜单栏的
实用工具
中打开
终端
,分别运行
csrutil disable
和
csrutil authenticated-root disable
命令,按照提示即可关闭。
Intel版
先关机,在再次开机时一直按住 Command+R 迸入恢复模式 Recovery模式
,然后同 ARM 版操作即可。
卸载系统软件
方案1
正常重启进入系统,通过磁盘系统
寻找需要挂载设备(是有点绕口,但不难,看图即可)。
如图中我的设备,即是/dev/disk3s1s1
(注意,此时是系统快照,去掉最后一个s1即是实际系统盘)。
此时新建一个可读写的目录mkdir -p -m777 ~/mount
,然后将系统挂载在可读写目录以便实现读写操作。
不过挂载是要去掉最后一个 s 的系统盘,如我的即是挂载 /dev/disk3s1
,sudo mount -o nobrowse -t apfs /dev/disk3s1 ~/mount
,其中~/mount/
是刚才建立的可读写目录。
然后通过删除读写目录内容以实现删除系统应用,如sudo rm -rf ~/mount/System/Applications/Chess.app
即是删除国际象棋,其他应用类似。最后重建系统快照 snapshot
,使用命令sudo bless --folder ~/mount/System/Library/CoreServices --bootefi --create-snapshot
,其中~/mount/
是最初建立的可读写目录。
一键脚本(By Belkodil)
#!/bin/bash
# Find your root mount's device - run mount and chop off the last s, e.g. if your / is /dev/disk3s1s1, you'll mount /dev/disk1s2
mkdir -p -m777 ~/mount
sudo mount -o nobrowse -t apfs /dev/disk3s1 ~/mount
sudo rm -rf ~/mount/System/Applications/Chess.app
sudo rm -rf ~/mount/System/Applications/Contacts.app
sudo rm -rf ~/mount/System/Applications/Dictionary.app
sudo rm -rf ~/mount/System/Applications/FaceTime.app
sudo rm -rf ~/mount/System/Applications/FindMy.app
sudo rm -rf ~/mount/System/Applications/Home.app
sudo rm -rf ~/mount/System/Applications/Mail.app
sudo rm -rf ~/mount/System/Applications/Maps.app
sudo rm -rf ~/mount/System/Applications/Messages.app
sudo rm -rf ~/mount/System/Applications/Music.app
sudo rm -rf ~/mount/System/Applications/News.app
sudo rm -rf ~/mount/System/Applications/Notes.app
sudo rm -rf ~/mount/System/Applications/Photo\ Booth.app
sudo rm -rf ~/mount/System/Applications/Photos.app
sudo rm -rf ~/mount/System/Applications/Podcasts.app
sudo rm -rf ~/mount/System/Applications/Reminders.app
sudo rm -rf ~/mount/System/Applications/Siri.app
sudo rm -rf ~/mount/System/Applications/Stickies.app
sudo rm -rf ~/mount/System/Applications/Stocks.app
sudo rm -rf ~/mount/System/Applications/TV.app
sudo rm -rf ~/mount/System/Applications/VoiceMemos.app
sudo rm -rf ~/mount/System/Applications/Utilities/VoiceOver\ Utility.app
# Mission Control
defaults write com.apple.dock mcx-expose-disabled -bool TRUE
#defaults delete com.apple.dock mcx-expose-disabled
# Dashboard
defaults write com.apple.dashboard mcx-disabled -bool TRUE
#defaults delete com.apple.dashboard mcx-disabled
# Spotlight
sudo mdutil -a -i off
sudo chmod 0 ~/mount/System/Library/CoreServices/Spotlight.app
#sudo mdutil -a -i on
#sudo chmod 755 /System/Library/CoreServices/Spotlight.app
sudo bless --folder ~/mount/System/Library/CoreServices --bootefi --create-snapshot
killall Dock
echo -e "\033[1;31m THANK YOU APPLE \033[0m"
方案2
!!未经测试,不保证有效
同样新建可读写目录,mkdir -p -m777 ~/mount
。
然后编辑 /etc/synthetic.conf
文件
sudo vim /etc/synthetic.conf
在文件中添加一行(注意:~/mount
是刚才创建的可读写的目录,可更改为其他,用来做为/System
实际存储的目录。重启后会创建一个/System
的软链接,指向~/mount
)
System ~/mount
中间的分隔符一定要是 tab
修复禁用 SIP 导致的软件错误
新版系统禁用 SIP 会导致 Electron 崩溃,大量诸如 Chrome、Edge、VScode 等软件闪退,好在在 Github 的 OpenCore-Legacy-Patcher 项目中有提到解决方案
即在 Nvram 里增加启动参数 ipc_control_port_options=0
在终端中输入nvram -xp
将会生成一个 xml 文件
找到boot-args
的位置,复制下面的内容,然后在刚才复制的参数最后空格并加上 ipc_control_port_options=0
然后在终端输入sudo nvram boot-args="改好后的参数"
回车,重启,问题解决。