news 2026/9/13 5:32:53

OpenCore Legacy Patcher 安装后配置详解:无 USB 启动、隐藏 Boot Picker、SIP 设置与根补丁(Root Patch)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenCore Legacy Patcher 安装后配置详解:无 USB 启动、隐藏 Boot Picker、SIP 设置与根补丁(Root Patch)

OpenCore Legacy Patcher 安装后配置详解:无 USB 启动、隐藏 Boot Picker、SIP 设置与根补丁(Root Patch)

【免费下载链接】OpenCore-Legacy-PatcherExperience macOS just like before项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher

通过 OpenCore 完成 macOS 安装之后,还有一组关键的"安装后"工作:把 OpenCore 固化到内置硬盘实现无 U 盘启动、按需隐藏 OpenCore 启动选择器、正确配置 SIP(系统完整性保护)、以及为老 Mac 应用必须落盘的根补丁(Post Install Volume Patches / Root Patch)。本文基于仓库文档 POST-INSTALL.md 完整展开这四项内容,并结合 OpenCore Legacy Patcher(下称 OCLP)的源码,说明这些设置项在构建 EFI 与打补丁过程中实际生效的位置和机制。

1. 不使用 U 盘启动 macOS

通过 U 盘上的 OpenCore 完成安装流程后,可以完全摆脱 U 盘。操作步骤如下:

  1. 下载并打开 OpenCore Legacy Patcher;
  2. 按需要调整 Patcher 设置(SMBIOS、SIP、驱动等);
  3. 重新 Build OpenCore;
  4. 将构建出的 OpenCore 安装到内置硬盘(EFI 分区);
  5. 重启时按住 Option(⌥)键,选择内置硬盘上的 EFI 条目。

此后每次开机都可以直接由内置 EFI 引导,无需再插入 U 盘。若构建 OpenCore 时检测不到内置硬盘,可参考 TROUBLESHOOT-APP.md 中"Internal disk missing when building OpenCore"一节排查。

从源码结构看,"Build OpenCore"本质上是把仓库中的 默认 config.plist 作为基础模板,由 efi_builder 各模块按机型和设置逐层改写后写出的;内置 OpenCore 二进制与驱动同样来自 payloads/OpenCore 目录下的 OpenCore-RELEASE.zip / OpenCore-DEBUG.zip。

2. 隐藏 Boot Picker,实现"无感"启动

默认情况下每次开机都会看到 OpenCore 启动选择界面。如需隐藏它,进入 OpenCore Patcher 应用的Patcher Settings → Build 选项卡,取消勾选"Show OpenCore Boot Picker"

关闭该选项后重新构建并安装 OpenCore 到目标磁盘。隐藏之后,若想临时调出 OpenCore 选择器,只需在点击 EFI 启动条目时按住ESC键,看到左上角出现光标箭头后即可松开。

该设置在仓库中的实现链路清晰可循:

  • 默认值定义在 constants.py:self.showpicker: bool = True,即默认显示启动选择器;
  • GUI 中对应的复选框由 wx_gui/gui_settings.py 定义,描述文案与文档一致:"When disabled, users can hold ESC to show picker in the firmware";
  • 构建 EFI 时,efi_builder/misc.py 中的_general_oc_handling()会检查该设置,若为 False 则把 config 中的Misc → Boot → ShowPicker置为False
  • 命令行场景同样支持:support/utilities.py 定义了--hide_picker参数,由 support/arguments.py 解析后写入constants.showpicker = False

同一处代码还会处理 "Boot Picker Timeout" 设置(默认 5 秒,范围 0–60,0 表示不超时):只要oc_timeout不等于默认值 5,就会写入Misc → Boot → Timeout,见 efi_builder/misc.py 与 wx_gui/gui_settings.py。

3. SIP 设置

SIP(System Integrity Protection)在需要进行根补丁的系统上必须"降低",因为根补丁要修改磁盘上的系统数据。具体需要降低到什么程度,取决于 macOS 版本与 Mac 机型。OCLP 默认会根据 OS 版本和机型自动确定合适的 SIP 选项,绝大多数情况下无需手动改动。

警告:不确定时请保持默认设置。已经执行过 Post Install Root Patching 的系统,若强行恢复完整 SIP,可能导致当前安装不可用。

仓库中 SIP 各档位对应的 GUI 截图如下(原文档以三栏对照表呈现):

SIP Enabled(完整)SIP Lowered(OCLP 默认降低档)SIP Disabled(完全关闭)

3.1 手动配置 SIP 的入口与判断依据

SIP 设置位于设置界面的Security 选项卡。修改后需回到主菜单重新 Build OpenCore 才会生效;在允许完整 SIP 的场景中,则需要在该处手动启用完整 SIP。

最简单的判断方法:查看主菜单中 "Post Install Root Patch" 区域。若它显示当前系统不需要补丁(或者你本就不打算打补丁,例如升级了独显的 Mac Pro 在 Monterey 下不需要 WiFi 补丁),即可认为可以启用完整 SIP。

3.2 分 macOS 版本的 SIP 建议

Ventura 及更新版本:所有不受支持的机型都需要降低 SIP。

Monterey:2013 年及以后的多数不受支持机型可启用完整 SIP。2012 年之前的"非 Metal"机型,以及搭载 NVIDIA Kepler 或 Intel HD 4000 显卡的机型需要降低 SIP。Mac Pro 因根补丁的存在,原装无线网卡与原装显卡场景也需要降低 SIP;但如果不需要 WiFi(或计划升级 WiFi)且已换装升级显卡,则无需根补丁,SIP 可完整启用。

Big Sur:2012 年及以后所有支持 Metal 的机型(含 NVIDIA Kepler 与 Intel HD 4000),以及换装显卡的 Mac Pro,可启用完整 SIP;非 Metal 机型仍需降低 SIP。

3.3 源码视角:SIP 位与降低档位的实际取值

OCLP 中所有 SIP 位定义在 datasets/sip_data.py,来源于 XNU 的 csr 标志位,主要包括:

标志位含义引入版本
CSR_ALLOW_UNTRUSTED_KEXTS0x1允许加载未签名 KextEl Capitan
CSR_ALLOW_UNRESTRICTED_FS0x2文件系统访问(挂载/编辑系统卷)El Capitan
CSR_ALLOW_TASK_FOR_PID0x4无限制 task_for_pid()El Capitan
CSR_ALLOW_KERNEL_DEBUGGER0x8允许内核调试器El Capitan
CSR_ALLOW_APPLE_INTERNAL0x10启用 AppleInternal 特性El Capitan
CSR_ALLOW_UNRESTRICTED_DTRACE0x20无限制 DTraceEl Capitan
CSR_ALLOW_UNRESTRICTED_NVRAM0x40无限制 NVRAM 写入El Capitan
CSR_ALLOW_ANY_RECOVERY_OS0x100跳过 BaseSystem 校验Sierra
CSR_ALLOW_UNAPPROVED_KEXTS0x200允许未公证 KextHigh Sierra
CSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE0x400覆盖可执行策略(源码注释表明该位实际并不需要,且从不被 csrutil disable 置位)Mojave
CSR_ALLOW_UNAUTHENTICATED_ROOT0x800允许挂载根卷Big Sur

针对根补丁的组合在 sip_data.py 中按 macOS 大版本给出:

  • Mojave / Catalina:0x1 + 0x2 + 0x200(未签名 Kext、文件系统访问、未公证 Kext);
  • Big Sur / Monterey:0x2 + 0x800(文件系统访问、允许根卷挂载);若还涉及第三方 Kext,则追加 0x1 与 0x200;
  • Ventura:0x1 + 0x2 + 0x800。

当 SIP 处于降低状态(sip_status is False)时,构建阶段由 efi_builder/security.py 的BuildSecurity处理,除了把csr-active-config写入 NVRAM 外,还会做一组配套动作:

  • 追加启动参数ipc_control_port_options=0(规避 12.3 上 SIP 降低时 Electron 应用无法启动的问题)与-nokcmismatchpanic(规避 RSR 安装引起的 Kernel Cache UUID 不匹配内核 panic);
  • 在 OCLP 私有 NVRAM 键(OCLP-Settings)中追加-allow_fv-allow_amfi等标记,供sys_patch.py判断当前 config 是否支持 FileVault / AMFI 相关补丁;
  • 启用AutoPkgInstaller.kext:这是"自动打补丁"的关键——只要用 OCLP 构建的 OpenCore 启动且 SIP 已降低,系统会自动安装 OpenCore Patcher 应用,为后续自动根补丁与自动更新铺路;
  • 启用RSRHelper.kext并修补 APFS 相关函数,使根补丁系统上可用 FileVault。

此外,若指定了自定义 SIP 值,custom_sip_value会通过csr-active-config直接写入 NVRAM(见 efi_builder/security.py)。

4. 应用 Post Install Volume Patches(根补丁)

Post Install Volume Patches(常称 root patches)是某些老 Mac 必须写入磁盘才能恢复功能的补丁,覆盖内容通常包括:

  • 图形加速驱动
  • WiFi 驱动
  • 蓝牙驱动
  • Touch Bar / T1 芯片驱动
  • 内置摄像头(iSight)驱动
  • USB 1.1 驱动
  • 其他用于兼容旧驱动的补丁

自动路径:如果 U 盘安装器是 OCLP 创建的、且创建前选择了正确机型,OCLP 会在安装完成后自动为系统打上根补丁(依赖上文 AutoPkgInstaller 自动装好的应用)。如果没有用 OCLP 制作 U 盘、或自动补丁失败,需要手动下载 OCLP 并安装根补丁——因为自动补丁失败时应用本身不存在。

重要:macOS 更新会抹掉根补丁,每次更新后必须重新安装。OCLP 会在 macOS 更新后、或检测到补丁缺失时主动提示安装。使用 U 盘安装器方式更新系统同样可以复用自动补丁流程,避免通过系统设置更新后必须手动打补丁的麻烦。

在 Post-Install 菜单中可以看到当前系统已安装哪些可用补丁,包括根补丁安装的日期与所用版本号。

自动补丁背后是一组 Launch Services 守护任务,模板文件见 payloads/Launch Services:

  • com.dortania.opencore-legacy-patcher.auto-patch.plist:安装后自动执行根补丁的 LaunchAgent;
  • com.dortania.opencore-legacy-patcher.macos-update.plist:监视 macOS 更新、提示重打补丁的 LaunchDaemon;
  • com.dortania.opencore-legacy-patcher.os-caching.plist:按需缓存 KDK 等系统的 LaunchDaemon;
  • com.dortania.opencore-legacy-patcher.rsr-monitor.plist:监视 Root System Reservoir 的 LaunchDaemon。

安装逻辑位于 sys_patch/auto_patcher/install.py 的InstallAutomaticPatchingServices,其中会先对已有服务文件做 SHA256 校验,一致则跳过、不一致则先移除再重装,保证守护任务与当前 OCLP 版本一致。若需迁移数据(Migration Assistant),请参见 TIMEMACHINE.md 的配套指南。

4.1 需要联网才能获取的补丁依赖包

部分机型打根补丁时必须从网上获取依赖包。若系统中不存在这些包,OCLP 首次补丁运行可能只安装 WiFi 驱动以保证能联网——这意味着重启后暂时没有图形加速,联网后还需手动再次执行根补丁才能装上其余补丁;使用有线以太网则可在一次运行中装完全部补丁。

MetallibSupportPkg:Ivy Bridge、Haswell 与 NVIDIA Kepler 机型(3802 架构)在Sequoia 及更新系统上需要该包,可手动从官方 MetallibSupportPkg 发行版下载——务必让包内版本号与当前使用的 macOS 版本精确匹配。受影响 GPU:

  • NVIDIA:Kepler(GTX 600–700 系列、Quadro K 系列)
  • Intel:Ivy Bridge(HD 4000 系列)、Haswell(Iris/HD 4000–5000 系列)

KDK(Kernel Debug Kit):搭载 AMD Legacy GCN 显卡(Metal 级别)的 Mac 在Ventura 及更新系统上启动根补丁需要 Apple 的 Kernel Debug Kit,可从官方 KdkSupportPkg 发行版下载与所装系统版本最接近的 KDK 并安装到本机。需要的机型与 GPU:

  • GPU:Radeon HD 7000 系列、Radeon R9 系列、FirePro D300/D500/D700
  • 原生 GCN 机型:iMac 2014–2015(iMac15,1–17,1)、Mac Pro 2013(MacPro6,1)、MacBook Pro 2015 15" 独显版(MacBookPro11,5)
  • 升级机型:Mac Pro 2008–2012(MacPro3,1–5,1)与 iMac 2009–2011(iMac10,1–12,1),前提是换装了 AMD GCN 显卡

4.2 各 macOS 版本需要根补丁的 GPU 清单

以下 GPU 已不再受原生支持,即需要 OCLP 进行根卷补丁:

Ventura / Sonoma / Sequoia

  • NVIDIA:Tesla(8000–300 系列)、Kepler(600–800 系列)
  • AMD:TeraScale(2000–6000 系列)、GCN 1–3(7000–R9 系列)、Polaris(RX 4xx/5xx 系列,CPU 无 AVX2 时)
  • Intel:Iron Lake、Sandy Bridge(2000–3000 系列)、Ivy Bridge(4000 系列)、Haswell(4400/4600/5000 系列)、Broadwell(6000 系列)、Skylake(500 系列)

Monterey

  • NVIDIA:Tesla(8000–300 系列)、Kepler(600–800 系列)
  • AMD:TeraScale(2000–6000 系列)
  • Intel:Iron Lake、Sandy Bridge(2000–3000 系列)、Ivy Bridge(4000 系列)

Big Sur

  • NVIDIA:Tesla(8000–300 系列)
  • AMD:TeraScale(2000–6000 系列)
  • Intel:Iron Lake、Sandy Bridge(2000–3000 系列)

补充说明(原文档):AMD Navi(RX 5000–6000 系列)显卡在 Mac Pro 2008–2012 上使用 Ventura 及更新系统时不可用,原因是 CPU 缺少 AVX2 支持。

4.3 Monterey 下需要补丁的无线网卡

  • Broadcom:BCM94328、BCM94322
  • Atheros 系列

小结

安装完成只是让 macOS "能跑起来",而安装后的四件事决定了长期可用性:内置 EFI 让你告别 U 盘;隐藏 Boot Picker(Misc → Boot → ShowPicker)让开机流程回归原生体验且随时可用 ESC 找回;SIP 档位由 sip_data.py 按 OS 与机型自动匹配、由 security.py 在构建期写入 NVRAM;根补丁及其自动维护机制(AutoPkgInstaller + 各 LaunchAgent/LaunchDaemon)则负责把图形、WiFi、蓝牙等功能真正落到系统卷上,并在每次 macOS 更新后提醒你重新打补丁。

【免费下载链接】OpenCore-Legacy-PatcherExperience macOS just like before项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/13 5:32:28

Wand-Enhancer:一次离线补丁,免费解锁 Wand 全部增强功能

Wand-Enhancer:一次离线补丁,免费解锁 Wand 全部增强功能 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/GitHub_Trending/we/Wand-Enhancer 你的修改器&#…

作者头像 李华
网站建设 2026/9/13 5:28:52

C++代码编译为iOS Framework的完整指南

1. 项目概述:为什么需要将C代码编译为iOS Framework?在iOS开发生态中,Objective-C和Swift是官方推荐的语言,但许多高性能计算、游戏引擎或跨平台库的核心模块都是用C编写的。将C代码编译为Framework可以带来三个关键优势&#xff…

作者头像 李华
网站建设 2026/9/13 5:28:24

1.3 万条检测规则一览:Nuclei Templates 安全漏洞扫描完全指南

1.3 万条检测规则一览:Nuclei Templates 安全漏洞扫描完全指南 【免费下载链接】nuclei-templates Community curated list of templates for the nuclei engine to find security vulnerabilities. 项目地址: https://gitcode.com/GitHub_Trending/nu/nuclei-tem…

作者头像 李华
网站建设 2026/9/13 5:22:27

SAP VA01/VA02/VA03抬头增强:VBAK字段嵌入与全链路治理

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

作者头像 李华