)
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 盘。操作步骤如下下载并打开 OpenCore Legacy Patcher按需要调整 Patcher 设置SMBIOS、SIP、驱动等重新 Build OpenCore将构建出的 OpenCore 安装到内置硬盘EFI 分区重启时按住 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.pyself.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–600 表示不超时只要oc_timeout不等于默认值 5就会写入Misc → Boot → Timeout见 efi_builder/misc.py 与 wx_gui/gui_settings.py。3. SIP 设置SIPSystem Integrity Protection在需要进行根补丁的系统上必须降低因为根补丁要修改磁盘上的系统数据。具体需要降低到什么程度取决于 macOS 版本与 Mac 机型。OCLP 默认会根据 OS 版本和机型自动确定合适的 SIP 选项绝大多数情况下无需手动改动。警告不确定时请保持默认设置。已经执行过 Post Install Root Patching 的系统若强行恢复完整 SIP可能导致当前安装不可用。仓库中 SIP 各档位对应的 GUI 截图如下原文档以三栏对照表呈现SIP Enabled完整SIP LoweredOCLP 默认降低档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。Monterey2013 年及以后的多数不受支持机型可启用完整 SIP。2012 年之前的非 Metal机型以及搭载 NVIDIA Kepler 或 Intel HD 4000 显卡的机型需要降低 SIP。Mac Pro 因根补丁的存在原装无线网卡与原装显卡场景也需要降低 SIP但如果不需要 WiFi或计划升级 WiFi且已换装升级显卡则无需根补丁SIP 可完整启用。Big Sur2012 年及以后所有支持 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 CapitanCSR_ALLOW_UNRESTRICTED_FS0x2文件系统访问挂载/编辑系统卷El CapitanCSR_ALLOW_TASK_FOR_PID0x4无限制 task_for_pid()El CapitanCSR_ALLOW_KERNEL_DEBUGGER0x8允许内核调试器El CapitanCSR_ALLOW_APPLE_INTERNAL0x10启用 AppleInternal 特性El CapitanCSR_ALLOW_UNRESTRICTED_DTRACE0x20无限制 DTraceEl CapitanCSR_ALLOW_UNRESTRICTED_NVRAM0x40无限制 NVRAM 写入El CapitanCSR_ALLOW_ANY_RECOVERY_OS0x100跳过 BaseSystem 校验SierraCSR_ALLOW_UNAPPROVED_KEXTS0x200允许未公证 KextHigh SierraCSR_ALLOW_EXECUTABLE_POLICY_OVERRIDE0x400覆盖可执行策略源码注释表明该位实际并不需要且从不被 csrutil disable 置位MojaveCSR_ALLOW_UNAUTHENTICATED_ROOT0x800允许挂载根卷Big Sur针对根补丁的组合在 sip_data.py 中按 macOS 大版本给出Mojave / Catalina0x1 0x2 0x200未签名 Kext、文件系统访问、未公证 KextBig Sur / Monterey0x2 0x800文件系统访问、允许根卷挂载若还涉及第三方 Kext则追加 0x1 与 0x200Ventura0x1 0x2 0x800。当 SIP 处于降低状态sip_status is False时构建阶段由 efi_builder/security.py 的BuildSecurity处理除了把csr-active-config写入 NVRAM 外还会做一组配套动作追加启动参数ipc_control_port_options0规避 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 Servicescom.dortania.opencore-legacy-patcher.auto-patch.plist安装后自动执行根补丁的 LaunchAgentcom.dortania.opencore-legacy-patcher.macos-update.plist监视 macOS 更新、提示重打补丁的 LaunchDaemoncom.dortania.opencore-legacy-patcher.os-caching.plist按需缓存 KDK 等系统的 LaunchDaemoncom.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 驱动以保证能联网——这意味着重启后暂时没有图形加速联网后还需手动再次执行根补丁才能装上其余补丁使用有线以太网则可在一次运行中装完全部补丁。MetallibSupportPkgIvy Bridge、Haswell 与 NVIDIA Kepler 机型3802 架构在Sequoia 及更新系统上需要该包可手动从官方 MetallibSupportPkg 发行版下载——务必让包内版本号与当前使用的 macOS 版本精确匹配。受影响 GPUNVIDIAKeplerGTX 600–700 系列、Quadro K 系列IntelIvy BridgeHD 4000 系列、HaswellIris/HD 4000–5000 系列KDKKernel Debug Kit搭载 AMD Legacy GCN 显卡Metal 级别的 Mac 在Ventura 及更新系统上启动根补丁需要 Apple 的 Kernel Debug Kit可从官方 KdkSupportPkg 发行版下载与所装系统版本最接近的 KDK 并安装到本机。需要的机型与 GPUGPURadeon HD 7000 系列、Radeon R9 系列、FirePro D300/D500/D700原生 GCN 机型iMac 2014–2015iMac15,1–17,1、Mac Pro 2013MacPro6,1、MacBook Pro 2015 15 独显版MacBookPro11,5升级机型Mac Pro 2008–2012MacPro3,1–5,1与 iMac 2009–2011iMac10,1–12,1前提是换装了 AMD GCN 显卡4.2 各 macOS 版本需要根补丁的 GPU 清单以下 GPU 已不再受原生支持即需要 OCLP 进行根卷补丁Ventura / Sonoma / SequoiaNVIDIATesla8000–300 系列、Kepler600–800 系列AMDTeraScale2000–6000 系列、GCN 1–37000–R9 系列、PolarisRX 4xx/5xx 系列CPU 无 AVX2 时IntelIron Lake、Sandy Bridge2000–3000 系列、Ivy Bridge4000 系列、Haswell4400/4600/5000 系列、Broadwell6000 系列、Skylake500 系列MontereyNVIDIATesla8000–300 系列、Kepler600–800 系列AMDTeraScale2000–6000 系列IntelIron Lake、Sandy Bridge2000–3000 系列、Ivy Bridge4000 系列Big SurNVIDIATesla8000–300 系列AMDTeraScale2000–6000 系列IntelIron Lake、Sandy Bridge2000–3000 系列补充说明原文档AMD NaviRX 5000–6000 系列显卡在 Mac Pro 2008–2012 上使用 Ventura 及更新系统时不可用原因是 CPU 缺少 AVX2 支持。4.3 Monterey 下需要补丁的无线网卡BroadcomBCM94328、BCM94322Atheros 系列小结安装完成只是让 macOS 能跑起来而安装后的四件事决定了长期可用性内置 EFI 让你告别 U 盘隐藏 Boot PickerMisc → 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),仅供参考