如何正确关闭macOS 11和12的SIP以及authenticated-root
在macOS 11 BigSur和更新版本的系统中(如Monterey),SIP和 authenticated-root 是分开控制的。
若只是安装或运行某些软件需要禁用SIP,那么大部分情况下不需要禁用authenticated-root,但是若想对系统保护目录执行写入操作,则必须禁用 authenticated-root。
注意:关闭SIP和authenticated-root可能会导致无法检测到系统更新,若出现该问题可在写入完成后重新打开。
以下方法二选一。
通过原生Recovery(推荐)
进入Recovery,打开"实用工具"->"终端",执行下面两句命令:
OpenCore可以直接从启动菜单进入Recovery,白苹果参考 SIP系统完整性关闭方法
关闭SIP:
csrutil disable
关闭 authenticated-root:
csrutil authenticated-root disable
重启,进入系统。
验证:
- 在终端执行
csrutil status
,返回结果为 "System Integrity Protection status: disabled (Apple Internal)." - 在终端执行
csrutil authenticated-root status
,返回结果为 "Authenticated Root status: disabled"
通过修改config.pdist(不推荐)
若无法进入Recovery,可使用配置项禁用SIP。
使用 AllowToggleSIP
在 OpenCore 0.7.0 新增了一个快捷启用或关闭 SIP 的选项:AllowToggleSIP
,但不能启用或禁用 authenticated-root。
- 将
AllowToggleSIP
设为True
,即可关闭 SIP。这其实会将 Apple NVRAM 变量 csr-active-config 设置为 0x26F。 - 将
AllowToggleSIP
设为False
,即可启用SIP。这其实会将 Apple NVRAM 变量 csr-active-config 设置为 0。
使用 csr-active-config:
-
添加delete项:在
NVRAM -> Delete -> 7C436110-AB2A-4BBB-A880-FE41995C9F82
下添加String类型的项,值为csr-active-config
。(该项是为了重置csr,不然会直接读取旧值,导致新值无效) -
设置add项:设置
NVRAM -> Add -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> csr-active-config
的值。
00000000
- 完全开启 SIP。(默认)03000000
- 禁用 kext 签名和文件系统保护。FF030000
- 禁用 High Sierra 的 SIP。FF070000
- 禁用 Mojave 和 Catalina 的 SIP。FF0F0000
- 禁用 Big Sur 和 Monterey 的 SIP 和 authenticated-root。(若失败可尝试EF0F0000
)
重启,进入系统。
验证:
- 在终端执行
csrutil status
,返回结果都为disabled
,确认已关闭。
- 在终端执行
csrutil authenticated-root status
,返回结果为 "Authenticated Root status: disabled"
注意
这两种方法不要混用!
如果之前设置了csr-active-config,但发现没有成功,所以尝试使用Recovery,那么一定要删除Delete项,即 NVRAM -> Delete -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 -> csr-active-config
。
否则,在Recovey中设置的内容会被config删掉并覆盖,从而导致在Recovery中的设置也无效。