如何使用AllowToggleSIP功能禁用系统完整性保护?

您所在的位置:网站首页 m1关闭系统完整性保护功能 如何使用AllowToggleSIP功能禁用系统完整性保护?

如何使用AllowToggleSIP功能禁用系统完整性保护?

2024-07-11 11:39| 来源: 网络整理| 查看: 265

前言

最后更新:2022-6-19

在 OpenCore 0.7.0 中,开发团队 acidanthera 为其添加了一个方便的新特性:AllowToggleSIP。通过此功能可以让 OpenCore 停止 macOS 的 SIP(System Integrity Protection,系统完整性保护)功能。SIP 自 10.11 El Capitan 时推出,旨在为 macOS 系统提供一定的自我保护能力。

黑苹果的安装使用过程中,一些特殊情况会需要临时关闭 SIP,例如替换系统文件,再比如运行某些已激活的软件等。传统的 SIP 关闭方法和真正的白苹果一致:即需要在启动时选择引导进入 Recovery 分区,或使用安装 U 盘进入 macOS Base System,然后在这个环境里运行终端命令才能关闭。

由于大量黑苹果 EFI 配置调试功底不过关等原因,很多黑苹果可以正常引导 macOS,但无法正常引导 Recovery 分区,OpenCore 推出的这个功能可以方便快捷的解决这个痛点。

下面是 OC 团队为此功能提供的说明:

Enable entry for disabling and enabling System Integrity Protection in OpenCore picker. This will toggle Apple NVRAM variable csr-active-config between 0 for SIP Enabled and a practical default value for SIP Disabled (currently 0x26F).

Note1: It is strongly recommended not to make a habit of running macOS with SIP disabled. Use of this boot option may make it easier to quickly disable SIP protection when genuinely needed - it should be re-enabled again afterwards. Note2: OC uses 0x26F even though csrutil disable on Big Sur sets 0x7F. To explain the choice: csrutil disable --no-internal actually sets 0x6F, and this is preferable because CSR_ALLOW_APPLE_INTERNAL (0x10) prevents updates (unless you are running an internal build of macOS). CSR_ALLOW_UNAPPROVED_KEXTS (0x200) is generally useful, in the case where you do need to have SIP disabled, as it allows installing unsigned kexts without manual approval in System Preferences. CSR_ALLOW_UNAUTHENTICATED_ROOT (0x800) is not practical as it prevents incremental (non-full) OTA updates. Note3: For any other value which you may need to use, it is possible to configure CsrUtil.efi as a TextMode Tools entry to configure a different value, e.g. use toggle 0x6F in Arguments to toggle the SIP disabled value set by default by csrutil disable --no-internal in Big Sur.

大致翻译一下:

AllowToggleSIP 可以在 OpenCore 选择器(Picker)中启用用于禁用和启用系统完整性保护的条目。这会将 Apple NVRAM 变量 csr-active-config 在 SIP 启用的 0 和 SIP 禁用的实际默认值(当前为 0x26F)之间切换。

注1:强烈建议不要养成在禁用 SIP 的情况下运行 macOS 的习惯。使用此启动选项可以更轻松地在真正需要时快速禁用 SIP 保护 - 之后应再次重新启用。 注2:OC 使用 0x26F,即使 Big Sur 上的 csrutil disable 是 0x7F。选项解释: csrutil disable --no-internal 实际上设置成 0x6F,这更可取,因为 CSR_ALLOW_APPLE_INTERNAL (0x10) 会阻止更新(除非您正在运行 macOS 的内部版本)。 CSR_ALLOW_UNAPPROVED_KEXTS (0x200) 通常很有用,在确实需要禁用 SIP 的情况下,因为它允许在系统偏好设置中无需手动批准即可安装未签名的 kext。 CSR_ALLOW_UNAUTHENTICATED_ROOT (0x800) 不实用,因为它会阻止增量(非完整)OTA 更新。 注3:对于您可能需要使用的任何其他值,可以将 CsrUtil.efi 配置为 TextMode Tools 条目以配置不同的值,例如在启动参数中使用 0x6F 切换默认设置的 SIP 禁用值,这是在 Big Sur 中由 csrutil disable --no-internal 设置。

 

大意就是启用这个选项,会在 OC 启动界面新增一个叫 Toggle SIP 的项目,可以直接选择它以开启/禁用 SIP,它会向 NVRAM 变量 csr-active-config 注入值 0x26F。如果有特别需要,可以通过配置 CsrUtil.efi 这个工具修改这个注入值。

好了,道理都懂,该怎么操作呢?

 

启用方法

AllowToggleSIP 在 OpenCore 的配置文件 config.plist 中以一个布尔值的形式存在,位于 Misc → Security。「注意」 OC 版本必须是 0.7.0 及以上,如果你的不是,参考「如何升级引导工具」。「注意」OpenCore 0.8.1 及以后的版本和下面的方法不一致,请看本文对应部分。

开启的方法很简单,配置类工具中勾选即可;编辑器类工具改值为 True 即可。

修改完成后保存即可。

重启后,在 OpenCore 的系统选择界面会出现 Toggle SIP 的选项,后面会有括号标注状态。Enabled 表示 SIP 开启,Disabled 表示 SIP 关闭。只需要选择该项目并按下回车,系统的 SIP 即可在开启和关闭之间快速切换。

 

OpenCore 0.8.1 及以上版本

自 OpenCore 0.8.1 开始,OC 团队决定将 SIP 开关和重置 NVRAM 独立为 .efi 驱动文件,这样做的好处是可以接受额外参数。

也就是说,OpenCore 0.8.1 开始需要手动加载这两个新增的文件到 config.plist 文件中,具体位置:Config.plist → UEFI → Driver → 驱动列表,如下图(OpenCore Configurator):

如果使用 OCAuxiliaryTools,则如下:

保存重启后即可在启动界面接到熟悉的功能图标。

最后说一下,如果你喜欢简洁的界面,但是又想要保留 SIP 开关和 NVRAM 重置按钮,可修改 config.plist 中以下位置:

Misc → Boot → Quirks → HideAuxiliary

勾选该项/Enabaled 即可开启该功能,主要作用是在 OpenCore 启动界面隐藏大部分功能图标,仅显示操作系统选项,但按一下空格,隐藏的项目就会重新出现,非常方便。

 

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3