如何正确关闭macOS 11和12的SIP以及authenticated-root

Stardust 2021年06月15日 993次浏览

在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

重启,进入系统。

验证:

  1. 在终端执行 csrutil status,返回结果为 "System Integrity Protection status: disabled (Apple Internal)."
  2. 在终端执行 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:

参考:disabling-sip

  1. 添加delete项:在 NVRAM -> Delete -> 7C436110-AB2A-4BBB-A880-FE41995C9F82 下添加String类型的项,值为csr-active-config。(该项是为了重置csr,不然会直接读取旧值,导致新值无效)

  2. 设置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)

csr-active-config

重启,进入系统。

验证:

  1. 在终端执行csrutil status,返回结果都为disabled,确认已关闭。

csrutil status

  1. 在终端执行 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中的设置也无效。