OpCore-Simplify 使用指南:30 分钟构建一套可用的黑苹果 OpenCore EFI
【免费下载链接】OpCore-SimplifyA tool designed to simplify the creation of OpenCore EFI项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify
OpCore-Simplify 是一个纯 Python 编写的命令行工具,用来自动化创建黑苹果(Hackintosh)的 OpenCore EFI:导入一份硬件报告后,它自动完成兼容性检查、ACPI 补丁、内核扩展(kext)筛选与 config.plist 生成,最后输出一套可直接写入启动盘的 EFI 文件夹。它面向不想手写几百行 plist 的用户,把查文档、挑驱动、编译补丁这些环节收敛成一次菜单操作加几分钟的组件下载。
它要解决什么问题
一位想在 12 代 Intel 平台上安装 macOS 的用户,打开一份现成的 config.plist:ACPI 补丁该开哪些、显卡设备属性怎么写、十几个 kext 里哪些和自己 CPU 的 Darwin 版本冲突——每个参数都要翻文档、试错,一轮调试常常就是一整天。手工配置 OpenCore 的困难集中在三点:
- OpenCore 参数相互依赖:设备属性、内核补丁、启动参数、SMBIOS 必须彼此一致,手写极易漏配。
- 兼容性判断靠经验:同一块显卡在 Intel 与 AMD 平台、在不同 macOS 版本下的结论完全不同。
- 组件版本容易失配:OpenCorePkg 与 kext 不同步时,安装阶段频繁出现内核恐慌。
项目速览
OpCore-Simplify 围绕"硬件报告 → 自动配置 → 生成 EFI"的流程组织:入口是根目录的 OpCore-Simplify.py,功能模块全部位于 Scripts/ 目录,只使用 Python 标准库,无需安装任何第三方依赖,采用 BSD 3-Clause 许可。工具自带更新机制(updater.py):启动时检查并替换自身版本,每次构建前自动拉取最新 OpenCorePkg 与 kext。核心能力包括:
- 硬件兼容性检查:Scripts/compatibility_checker.py 逐项比对 CPU、显卡、声卡、网卡,给出该硬件支持的 macOS 版本范围。
- ACPI 补丁管理:Scripts/acpi_guru.py 解析 ACPI 表,自动挑选补丁并生成 SSDT 编译产物。
- kext 智能筛选:Scripts/kext_maestro.py 按硬件与目标 macOS 版本选择驱动,处理版本区间和依赖关系。
- config.plist 生成:Scripts/config_prodigy.py 输出设备属性注入、内核补丁与启动参数。
从零跑起来
环境要求只有一个 Python 3 解释器。Windows 下 OpCore-Simplify.bat 会自动探测系统里的 Python,缺失时引导安装最新版;macOS 直接运行 OpCore-Simplify.command;Linux 用系统自带的 Python 3 执行脚本即可,无需 pip 安装依赖。
git clone https://gitcode.com/GitHub_Trending/op/OpCore-Simplify cd OpCore-Simplifypython3 OpCore-Simplify.py进入主菜单后按提示操作:先选硬件报告——Windows 下可直接按 E,让工具调用 Hardware Sniffer 导出 Report.json 与 ACPI 转储,也可以拖入自己生成的报告。工具随即运行兼容性检查,并默认推荐该硬件支持的最新 macOS;确认 macOS 版本、SMBIOS 型号、ACPI 补丁与 kext 列表后,选择 Build OpenCore EFI,等它下载 OpenCorePkg 和驱动(几分钟),完整 EFI 输出在 Results 目录。
核心机制浅析
兼容性检查把"判断"和"数据"拆开。Scripts/compatibility_checker.py 的输入是 Report.json,输出是每类设备的兼容结论与 macOS 版本范围;它不硬编码硬件清单,而是匹配 Scripts/datasets/ 下的数据文件(cpu_data.py、gpu_data.py、os_data.py 等),扩展新硬件只需改数据,不动逻辑。
ACPI 处理分两层。Scripts/dsdt.py 负责解析 ACPI 表,定位设备路径、方法与 IRQ 冲突等底层信息;Scripts/acpi_guru.py 在其上根据硬件报告决定启用哪些补丁(FakeEC、FixHPET、PLUG 等),生成 SSDT 并编译,同时为不被 macOS 支持的设备(独显、无线网卡、NVMe 控制器)生成禁用补丁,先关掉安装阶段的不稳定源。
kext 筛选的可靠性来自元数据:每个驱动在 Scripts/datasets/kext_data.py 中声明适用的 Darwin 版本区间、依赖与冲突组,KextMaestro 交叉比对硬件报告、macOS 版本和已选 ACPI 补丁后给出最终清单,再统一下载对应版本,避免驱动与引导程序失配。
适合谁,不适合谁
适合硬件落在支持矩阵内的用户:Intel 从 1st 代 Nehalem 到 15 代 Arrow Lake/Core Ultra 2,AMD Ryzen/Threadripper(走 AMD Vanilla 路线),NVIDIA 独显到 Pascal 为止,Intel 核显到 10 代,macOS 覆盖 10.13 到 Tahoe 26,想快速拿到一套完整 EFI 骨架。
以下情况它帮不上太多:
- 期望全程零手工的读者:README 明确写着需要基本了解 Dortania 指南的概念,安装过程中的测试与排错不包办,也不保证一次安装成功。
- NVIDIA Turing 及更新的独显:数据库覆盖到 Fermi/Kepler/Maxwell/Pascal/Tesla 为止。
- AMD 平台:显卡加速还需 OpenCore Legacy Patcher 根补丁,并手动移除启动参数,工具只做前置配置。
- 只想要"一个文件夹"的人:EFI 生成后,USB 端口映射(USBToolBox)和制作安装 U 盘仍是手工环节。
避坑清单
- 现象:导出硬件报告时报 "Error collecting hardware" 或 ACPI 转储失败。原因:Hardware Sniffer 版本过旧,采集字段与报告校验规则不匹配。处理:升级到最新版 Hardware Sniffer 重新导出,或手动运行它生成 Report.json 后拖入工具。
- 现象:装完系统后 AMD 显卡没有硬件加速。原因:未应用 OpenCore Legacy Patcher 根补丁,或启动参数中仍保留 -radvesa / -amd_no_dgpu_accel。处理:应用根补丁后移除对应启动参数再重启。
- 现象:首次启动时无线网络不可用。原因:itlwm 在首次启动前没有网络,无法自动连接。处理:构建过程中使用 Wi-Fi 配置提取功能(Scripts/wifi_profile_extractor.py),把已保存的 SSID 与密码写入配置,启动后自动连接。
- 现象:装完系统后部分 USB 接口失效。原因:EFI 中使用的是占位驱动 UTBDefault.kext,端口未按主板实际映射。处理:用 USBToolBox 映射端口,把生成的 UTBMap.kext 放入 EFI/OC/Kexts 并删除 UTBDefault.kext,再用 OC Snapshot 核对端口数,单控制器超过 15 口时启用 XhciPortLimit 补丁。
现状与参与
- 工具自身通过 updater.py 在启动时自动检查更新,每次构建前还会同步 OpenCorePkg 与 kext 到最新版,无需手动追版本。
- 硬件支持矩阵集中在 Scripts/datasets/ 的数据文件里,扩展新硬件本质上是给数据表加条目。
- 参与方式:README 欢迎 fork 后提交 PR,或以 enhancement 标签开 issue 提功能需求;作者 Hoang Hong Quan 在 README 中留了邮件与社交平台联系方式。
OpCore-Simplify 的价值在于把黑苹果最耗时的"查文档、配 plist、下驱动"链路收敛成一次构建,适合作为新手拿到可用 EFI 骨架的起点。完整的支持矩阵与使用说明见仓库中的 README.md。
【免费下载链接】OpCore-SimplifyA tool designed to simplify the creation of OpenCore EFI项目地址: https://gitcode.com/GitHub_Trending/op/OpCore-Simplify
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考