My Blog: macOS Big Sur隐藏Dock中的Finder和 Trash
用Path Finder替换了Finder,Dock中的Finder太过多余,便想将其隐藏。
在BigSur之前,这个操作是比较简单的,只需要关闭SIP后挂载根目录为可读写,然后修改DockMenus.plist即可。但是在BigSur中文件系统有了很大的变化,使得挂载的过程变得复杂。
1 关闭SIP
以下方法二选一
1. 通过原生Recovery(推荐)
进入Recovery,打开实用工具-终端,执行下面两句命令:
OpenCore可以直接从启动菜单进入Recovery,白苹果参考 SIP系统完整性关闭方法
关闭SIP:
csrutil disable
关闭 authenticated-root:
csrutil authenticated-root disable
重启,进入系统,在终端执行csrutil status
,返回结果为System Integrity Protection status: disabled (Apple Internal).
,确认已关闭。
2. 通过修改config.pdist(不推荐)
若无法通过opencore启动菜单进入Recovery,可使用配置项关闭SIP,但有可能无法关闭authenticated-root。
通过设置config.plist
中的csr-active-config
来开启或关闭SIP,默认为00000000
。
NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> csr-active-config
00000000
- 完全开启 SIP。SIP completely enabled (0x0).03000000
- 关闭 kext 签名和文件系统保护。Disable kext signing (0x1) and filesystem protections (0x2).FF030000
- 关闭 High Sierra 的 SIP。 Disable all flags in macOS High Sierra (0x3ff).FF070000
- 关闭 Mojave 和 Catalina 的 SIP。Disable all flags in macOS Mojave and in macOS Catalina (0x7ff) as Apple introduced a value for executable policy.FF0F0000
- 关闭 Big Sur 的 SIP。Disable all flags in macOS Big Sur (0xfff) which has another new flag for authenticated root.
重启,进入系统,在终端执行csrutil status
,返回结果都为disabled
,确认已关闭。
2 挂载Volume
最麻烦的地方来了,这是在BigSur之前都没有的操作(参考 writing-to-the-macos-system-partition):
2.1 确认 live volume 名称 diskNsM
在终端执行mount
,在返回结果里找到挂载点/
的设备名。
在上图中挂载点/
的设备名为/dev/disk3s5s1
,我们并不直接用这个名字,要舍去后两位,只取disk3s5
。
diskNsM
即为 disk3s5
,为了表达方便后面都用diskNsM
,因为这个值因人而异。
2.2 挂载 diskNsM
创建一个挂载目录/path/to/mntpoint
,可创建在任意有写入权限的位置,例如:/Users/用户名/mnt3s5
。
在终端执行:sudo mount -o nobrowse -t apfs /dev/diskNsM /path/to/mntpoint
(注意替换diskNsM
和/path/to/mntpoint
,下同)
2.3 备份DockMenus.plist
cp /path/to/mntpoint/System/Library/CoreServices/Dock.app/Contents/Resources/DockMenus.plist /path/to/mntpoint/System/Library/CoreServices/Dock.app/Contents/Resources/DockMenus.plist.bak
2.4 修改DockMenus.plist
搜索finder-running
和trash
,分别在他们的末尾,</array>
之前添加下列内容:
<dict>
<key>command</key>
<integer>1004</integer>
<key>name</key>
<string>REMOVE_FROM_DOCK</string>
</dict>
2.5 创建snapshot,并且下次从之启动
在终端执行sudo bless --folder /path/to/mntpoint/System/Library/CoreServices --bootefi --create-snapshot
3 重启完成
在Finder和Trash上单击右键即可看到移除选项。