Mac 如何删除自带应用(同时适用于 M1 和 Intel)

16,147 阅读5分钟

不多哔哔,先看效果 (MACOS13的系统也同样适用)

警告:没有linux基础知识不要搞!系统可能会搞崩!

image.png

11.png

图中状态是按住 option 触发的,这些软件都可以删除了,我只留了一些自己有用的应用。

配置成功后,你的 mac 将可以

  • 拥有在根目录下创建文件的权限
  • 随意删除自带软件的权限
  • 引入新的配置文件(比如外接显示器)

不仅是 mac m1 , 只要修改几个操作,该教程同样适用于 Intel 芯片的用户,在下文中都会给出具体步骤。

原因

因为自己是 mac m1 丐版(256GB 内存),内存不太够用,就想办法腾出来点空间,于是就瞄上了几乎从来不用的那些自带软件(有几个内存占用还不小)。于是开始尝试挑战删除自带应用,但是我发现从启动台、访达中都没有权限删除它们,然后我尝试使用终端,终端的删除结果是这样的。

image.png

我尝试给应用加权限,结果还是一样

image.png

于是从网上找了一些解决方案,经过测试后,确定了下面的有效解决方案。

具体流程

关闭 SIP 和 SSV

  • 如果你是搭载 Apple 芯片的 Mac

1. 关机

2. 按住开机键不松,直到您看到启动选项的齿轮图标时,松开电源按钮

  • 如果你搭建的 Intel 芯片的 Mac

1. 重启

2. 按住 Command + R 不松 (如果不行,重启尝试按住Shift不松)


3. 选择 设置 -> 继续

image.png

4. 点击左上角的实用工具 -> 终端

image.png

5. 在终端中输入下面两行内容

csrutil disable

它将禁用系统完整性保护(SIP)

csrutil authenticated-root disable

它将禁用签名系统卷 (SSV)

6. 点击左上角苹果图标,选择重新启动

7. 重新开机后,进入终端,输入 (结果都应该是 disable)

csrutil status

csrutil authenticated-root status

image.png

挂载系统盘

1. 在本地新建一个文件夹,用来挂载系统盘

mkdir ~/mnt

2. 打开系统自带的磁盘工具.app ,找到硬盘的盘符(我们需要知道挂载哪个盘)。

22.png

从图中可以得到我们的盘符名称为 disk3s1

最后的一个 s1 代表的是快照,挂载快照是没用的。

如果你的系统中还没有这个工具,可以使用下面这个方法查找我们要挂载的盘符

mount

33.png

注意第一行 /dev/disk3s1s1 on /,这代表 /dev/disk3s1的快照(s1)映射到根目录,所以我们要挂载的盘符就是 /dev/disk3s1/,这和我们使用磁盘工具得到的结果是一致的。

3. 下面我们将系统盘挂载到本地已经创建好的目录(~/mnt)下

sudo mount -o nobrowse -t apfs /dev/disk3s1 /Users/apple/mnt

/Users/apple 改为自己的 /Users/***

4. 查看最新的挂载情况

mount

44.png

观察到最后一行,/dev/disk3s1 已经成功挂载到了 /Users/apple/mnt 上 (read-only的限制被去掉了)

5. 我们进入 mnt 文件夹,将所包含文件和根目录下包含文件比较

55.png

仔细比较发现,两个文件夹中包含的文件是一模一样的,不一样的地方在于,在 mnt 文件下,你拥有写权限

6. 进入系统自带应用所在的文件夹,删除自己不需要的应用

cd ~/mnt/System/Application

以删除 Siri 为例

sudo rm -rf Siri.app

应用删除前后比较

image.png

此时,如果有需要的话,你可以进行一些其他的操作

  • 在根目录下创建自己的文件夹
  • 引入新的配置文件(如显示器色彩配置文件)

7. 操作完成后,我们要根据修改后的 mnt 文件夹生成一个新的快照,才能替代之前的内容

如果你没有生成快照,直接选择重新启动,你会发现实际上并没有发生任何变化,因为操作系统使用的启动快照还是之前的。但如果你根据新的挂载目录(mnt)生成新的快照,那么系统会自动从新的快照启动,你做的修改就都会生效了。

从映射角度分析

将物理盘/dev/disk3s1 挂载到 /users/apple/mnt
/dev/disk3s1 ----> /Users/apple/mnt

将/dev/disk3s1的快照内容映射到根目录
/dev/disk3s1s1 -----> / 

最终的根目录的内容是取决于快照的内容,因此我们需要重新生成一个快照
  • Apple 芯片执行
sudo bless --mount "$HOME/mnt/System/Library/CoreServices/" --setBoot --create-snapshot
  • Intel 芯片执行 (如果执行不通过,尝试上面的命令)
sudo bless --folder /Users/apple/System/Library/CoreServices --bootefi --create-snapshot

执行成功的标志就是没有报错

8. 重启你的计算机

9. 查看之前做的修改是否生效

mount

image.png

系统磁盘的快照已经从 /dev/disk3s1s1 更新为 /dev/disk2s1s1

注意倒数第四行:/dev/disk3s1 on /System/Volumes/iSCPreboot

笔者理解是:/dev/disk3s1 现在已经变成备份快照了(Preboot), 可以从这个快照中恢复到以前的状态。(我没有尝试,感兴趣的可以根据它重新生成一个快照,启动看看)

补充: 如果你挂载时,路径输入错误该怎么办?

不用担心,有挂载就有卸载,只需要将刚才的挂载卸载掉,然后重新挂载即可(是不是很绕😄);比如你将 /dev/disk3s1 挂载到了 /Users/apple/mmt, 你想取消,就执行下面的语句

sudo umount /dev/disk3s1

再输入 mount 确认

mount

完成了这些操作,根目录权限问题告一段落,我们最好重新回到安全模式,打开 SSV,以防止系统失去安全防护。

注意:SIP 开启后,用户自定义快照会被清除,之前做的更改可能会还原,笔者是一直关闭 SIP,这取决于你自己。

进入安全模式后(见上文),输入

csrutil authenticated-root enable

结束语

笔者能力有限,有些地方是凭借自己的理解写的,很可能出现纰漏,请大家注意甄别,希望这篇文章能给您带来一点点帮助。

参考

  1. nektony.com/how-to/unin…
  2. www.zhihu.com/question/40…
  3. www.cpming.top/p/using-mou…
  4. www.iloveanan.com/install-ntf…
  5. github.com/osxfuse/osx…
  6. medium.com/macoclock/e…
  7. zhuanlan.zhihu.com/p/558825467
  8. www.bilibili.com/read/cv1327…