OpenCore 黑苹果安装教程

前几天看到有人在 Windows PC 上吃上了 macOS,于是在一台赛扬百元笔记本上开始折腾。 俗话说一入黑果深似海,个人花了一个月的时间,爬了几万个帖子 or 教程 or 博客,最后还是没有成功(原因后文有)。 虽然折腾的结果不尽人意,但从中学到了很多芝士~ 在这里把 OpenCore 黑苹果的一整个流程和踩坑排错的过程整理起来,供大家使用~

目录

1. 原理

2. 准备

2.1 先决条件

2.2 硬件要求

2.3 了解电脑的硬件

3. 配置 EFI

3.1 下载必要工具

3.2 .efi 驱动

3.3 Kext 驱动

3.4 SSDT

3.5 工具瘦身

3.6 config.plist

4. 制作 U 盘

4.1 烧录

4.2 拷贝 EFI

5. BIOS 设置

6. 排错

6.1 卡 Watchdog

6.2 卡 EBLOG EXITBS:START

6.3 卡 AppleIntelCPUPowerManagement 然后 Please go to

6.4 卡 This version of Mac OS X ...

6.5 没有 Traceback 就 Please go to

6.6 AppleIntelXXXGraphicsFramebuffer 然后 Please go to

6.7 OC: Failed to find SB model Disable

6.8 卡在 End SetConsoleMode

6.9 OS X 10.11 及以下选择 OS X 启动项后黑屏

7. 安装流程

8. 后记

8.1 信息/步骤/资料来源

8.2 使用现成 EFI

8.3 新版本 macOS 存在的一些问题

8.4 让黑苹果更加简单


1. 原理

在安装前,先了解什么是黑苹果和白苹果。 白苹果就是官方苹果电脑安装 macOS,这个比较好理解。 至于黑苹果,就是非苹果电脑安装 macOS。 自从苹果使用 Intel CPU 作为 Mac 电脑的芯片,就代表着黑苹果成为可能。 因为 Windows PC 上的 Intel 芯片与 Mac 上的 Intel 指令集是兼容的。 在 00 年代晚期,第一个普及的黑苹果引导工具变色龙(Chameleon)横空出世,自此进入了黑苹果时代~

黑苹果的芯片问题解决了,就只差引导了。 从变色龙引导到 x 叶草(Clover,我也忘了是几叶草)再到全新时代的 OpenCore(简称 OC),这些引导工具其实原理都差不多。 它们是通过模拟 macOS 的启动环境而实现引导黑苹果的。 在这里列出它们所需要的工具:

驱动:有 .efi 文件与 kext 驱动两种,它们是让硬件与黑苹果系统建立联系的桥梁;

SSDT:个人理解是让黑苹果电脑硬件与白苹果细节更加一致的东东;

这里我们选择 OpenCore 引导,因为 OpenCore 更现代化,且不需要手工配置 DSDT(至于 DSDT 是什么,嗯。。 自己百度~)

由于 Apple 已经在把 Mac 的 CPU 从 Intel 移向 Apple Silicon(也就是常说的 M 系列芯片,如 M1),所以黑苹果的日子不多了,且用且珍惜~

2. 准备

2.1 先决条件

首先,黑苹果的重中之重就是时间与耐心。 最常见的 Core 和 Xeon 装黑苹果就起码需要一个星期,像啥奔腾赛扬 AMD 要更久~

然后要有一定的电脑基础。 至少你得知道什么叫笔记本和台式机,什么是 UEFI,什么是 U 盘启动,什么是 Intel 和 AMD…… 如果是纯小白不建议自己开荒 OpenCore,实在想装黑苹果可以某宝 100¥之内~

然后就是一定的英文水平。 至少要做到在阅读 OpenCore 官方文档时原生 English 和机器翻译过来的半中文两个结合起来要看得懂~ 不然等会配置 config.plist 时不要哭着去求自己的英语老师帮你翻译~

最后就是一只容量不小于 16G 的 U 盘。 我们需要用它引导 OpenCore 乃至整个黑苹果系统~

有了这几个先决条件,就可以开始安装黑苹果了!

2.2 硬件要求

CPU:

台式机的 CPU 支持会比较广泛,基本上只要是一台配置不是特别冷门的台式都能成功吃上黑苹果。 具体的 CPU 支持:

Intel Core(酷睿)3 - 10 代;

注:虽然官方文档说支持 Intel 全系 CPU,但是由于 Core 2 及更早的 CPU 不支持 UEFI,安装起来会有很多麻烦。 尽管 OpenCore 引导也支持 Legacy 传统启动,但是键盘大概率会完全报废~ 另外 11 代以上的酷睿没有被苹果官方使用过,所以大概率无解~

Intel Xeon(至强),Celeron(赛扬),Pentium (Gold)(奔腾),Atom(凌动) 等等等等~

AMD Bulldozer (推土机,15h), Jaguar (捷豹,16h),Ryzen (锐龙,17h),Ryzen Thrieapper(锐龙撕裂者,我也不知道英文单词有没有拼错,理解万岁,19h)

笔记本黑苹果就有很多限制,仅支持酷睿 3 - 10 代和至强。 官方说凌动赛扬奔腾笔记本完全无解。不过根据我的折腾经验,凌动赛扬奔腾笔记本还是有救的,macOS 10.15 Catalina 以下版本可以跑(需要仿冒 CPUID 和 XCPM,方法后文有),只不过集显是完全废了,只能用独显(如果像我的电脑只有集显没有独显那就真的无解了)

显卡:

分为集成显卡(集显)与独立显卡(独显),集成显卡为 CPU 自带,独立显卡则反之。 通常集成显卡的支持比较好,而独立显卡只能看运气。 通常集成显卡就完全够用,所以如果独显工作不正常建议禁用独显(方法后文有)

AMD 的 GPU 几乎全系支持,集显的 Vega 也支持,只是不支持 APU,毕竟 AMD 与苹果的关系老好了~

Intel 几乎全部支持,GT1 由于没有在 Mac 上官方使用过所以无解;

Nvidia 的显卡(简称 N 卡)就麻烦了。由于 Nvidia 和苹果友谊的小船翻了,9XX 和 10XX 系列仅支持至 macOS 10.13,6XX 和 7XX 系列仅支持至 macOS 11,至于其它的全都不支持。我个人建议为了避免不必要的问题,建议禁用 N 卡独显,直接使用 CPU 自带的集成显卡(当然如果是赛扬奔腾凌动 + N 卡,那 Nvidia 就勉勉强强用着吧)

主板:

全部支持,无需多讲~ 但是 HP 和华擎(AsRock)主板后面配置的时候要注意一些~

硬盘:

支持所有 SATA 接口的硬盘,以及部分 NVMe 硬盘。具体看官方文档;

网卡:

有线网卡(也就是插网线的那个)几乎全部支持,只是一些服务器网卡有些问题;

至于无线网卡,只要是 Intel 高通或者瑞昱全都不支持,Atheros 也只支持到 macOS 10.13,如果是 Broadcom(博通),那么恭喜,你的黑苹果可以用 wifi~

当然办法也不是完全没有,比如可以让安卓的 wifi 模块帮你代工,把一台咸置的安卓连上 wifi 使用 USB HoRNDIS 连上黑苹果电脑,然后再一番百度谷歌必应八仙过海各显神通一下你的黑苹果 wifi 问题就解决了~

剩下的:

已知指纹相机耳机插孔雷雳无法工作~

想了解更多这里贴出官方文档的链接~

OpenCore 硬件限制​​​​​​

2.3 了解电脑的硬件

由于黑苹果是与硬件紧密联系的,所以我们要把自己电脑的硬件摸透~

首先,你得知道自己的电脑是笔记本还是台式机,一般来说台式机会更好装一些;

然后是重中之重 CPU,安装一个 CPU-Z,打开,红色箭头指的那个就是 CPU 的开发代号。如果后缀有 -E -X 的要连后缀一起记下来,如果无后缀或是有不是 -E -X 的后缀的,如 -U,只要记 - 号前面的即可,如我的 Broadwell-U,只要记 Broadwell。

另外黄色箭头指向的那个是 CPU 的全称,如果里面包含 Core 或 Xeon,就说明是酷睿或至强的芯片。如果里面包含 Celeron 或 Pentium,就说明是奔腾赛扬的低配芯片。如果里面包含 AMD 就说明这是 AMD 的芯片~

77336c0bcd034092a5fe0a36a5205230.png

 然后去网上查查这个 CPU 开发代号是第几代 CPU(尽量带后缀查)。如果是 3-10 就符合要求~

9fe470b44b184a989e9e3bae4bd28feb.png

接着是显卡,下一个 GPU-Z,打开可以看到 GPU 的详细信息~ 注意看红箭头部分的字符,如果是带有 GT1 的(如下图)就说明你的集显基本废了~ 如果是 GT2 及以上就还有救~ 如果又有集显又有独显最下面有个地方切换~

 然后看主板,也可以在 CPU-Z 里找到。记红箭头就好~

fc52043b00b64fc7805df749b60322a8.png

最后一个重要的就是网卡了。win+r,输入 devmgmt.msc,呼出设备管理器;

237bc8e6aa0b4a7084e5ce59a4b8b5de.png

网络适配器,画红的地方就是你的网卡部分。把 Intel 或者 Realtek(瑞昱) 或者 Broadcom(博通)记下来后面要用~

 如果还想了解更多信息,这里给出了官方文档的链接:

查找硬件

3. 配置 EFI

3.1 下载必要工具

首先是 OpenCore 本尊:GitHub

(GitHub 打不开?这里有方法,冒着不过审的风险分享出来:GitHub 搜 Steam++)

这里我们下载 debug 版本的,不仅是 OC,之后的 kext 插件也都要下载 debug 版本的,这样方便调试:

29682837daf74e07bda5d67588c108b9.png

 然后是 Python,因为 OpenCore 的很多小工具都需要依赖 python,win8 及以上下载最新版本,win7 和 vista 下载 3.8.5 版本:官方下载

接着是 Diskgenius,用免费版的就行:官方下载

balenaEtcher,我们需要用它制作黑苹果启动 U 盘:官方下载

GenSMBIOS:用于生成仿冒的苹果电脑序列号等信息:GitHub,点红箭头下载;

d7ee499a70134b068ba4e1a5c31935f1.png

ProperTree,这用于编辑 config.plist 配置文件:GitHub,下载方法跟 GenSMBIOS 一样;

这几样工具放到一边,我们正式开始配置 OpenCore EFI~

3.2 .efi 驱动

把 OpenCore 解压下来,把 X64 文件夹里的 EFI 文件夹复制到一个重要的地方~

405aad5babd54a47b5da9ea77b07e8c3.png

 这些就是 OpenCore 的所有文件~

3a78e184ed2b4ff48709ad3c256d6408.png

打开 Drivers 文件夹,把除了 OpenRuntime.efi 和 OpenHfsPlus.efi 的其它文件全部干掉,就像下面这样: 

6e8b4f14377c4ba6901f608fd83f70c2.png

OpenRuntime.efi 是 OpenCore 的核心文件,OpenHfsPlus.efi 是支持 macOS 操作系统引导必须的文件。对于一般的电脑,我们保留这两个就可以。至于其它的是一些特殊电脑才需要的 efi 文件,详细信息可以参考官方文档:

添加 efi 驱动文件

固件驱动程序

(注意,看过官方文档的童鞋们可能会注意到如下一段话:OpenHfsPlus.efi:开源HFS Plus驱动程序,非常慢,因此我们建议您不要使用,除非您知道自己在做什么,而官方推荐的 HFS Plus 驱动程序 HfsPlus.efi 是苹果自家的,速度比较快。但是我亲测使用苹果官方的 HfsPlus.efi 开机卡 Watchdog,然后黑屏自动重启 Windows。我不知道是不是我一个人会这样。而且我使用 OpenHfsPlus.efi 开机也不会明显的感觉卡顿。不管怎么样,我个人推荐使用 OpenHfsPlus.efi。如果有使用 OpenHfsPlus.efi 特别卡顿的童鞋可以使用 HfsPlus.efi 试试水:蓝奏云,解压下来就是正常的 efi 文件了)

第一部分 .efi 驱动配置完成!

3.3 Kext 驱动

Kext,全程 Kernel EXTension,是黑苹果与硬件联系的主要驱动,下面就来收集 Kext 驱动~

驱动放入方法

把后缀名为 kext 的文件夹一整个放入 OC 目录下的 Kexts 文件夹内,如下图:

0dc1d81ba7ba46889816364a7820640d.png

另外强调:Kext 驱动也要下载 DEBUG 版本的(压缩包后缀名 DEBUG 的),方便调试~

必备驱动

Lilu.kext

Lilu 驱动可以说是 kext 驱动之父,这里的之父不是指 kext 的创造者,而是因为没有 Lilu,其它 kext 都无法运行;

最低 macOS 版本:Mac OS X 10.4

WhateverGreen.kext

黑苹果的 GPU 要想工作都需要这个 kext 驱动,换句话说,所有 GPU 都受益于此 kext;

最低 macOS 版本:Mac OS X 10.6

VirtualSMC 及其衍生组件

VirtualSMC.kext

这是一个必备驱动,用于模拟在真实 Mac 上找到的 SMC 芯片。由于它的衍生组件有很多,所以单独拿出来~ 驱动在压缩包的 Kext 文件夹内,同样下面所说的衍生组件也都在 Kext 文件夹内;

最低 macOS 版本:Mac OS X 10.4

SMCProcessor.kext(别点我,这不是链接)

用于监控 CPU 温度,不适用于基于 AMD CPU 的系统

最低 macOS 版本:OS X 10.7

SMCSuperIO.kext

用于监控风扇速度,不适用于基于 AMD CPU 的系统

最低 macOS 版本:Mac OS X 10.6

SMCLightSensor.kext

用于笔记本电脑上的环境光传感器,台式机可以忽略

如果你没有环境光传感器,请勿使用,否则可能会导致问题

最低 macOS 版本:Mac OS X 10.6

SMCBatteryManager.kext

用于测量笔记本电脑上的电池读数,台式机可以忽略

最低 macOS 版本:Mac OS X 10.4

SMCDellSensors.kext

允许对支持系统管理模式(SMM)的戴尔计算机上的风扇进行更精细的监视和控制

如果你的电脑不是戴尔的,请不要使用,戴尔笔记本电脑可以从此 kext 中受益

最低 macOS 版本:OS X 10.7

声卡驱动

AppleALC.kext

可以说一个 kext 解决所有声卡;

最低 macOS 版本:OS X 10.8

有线网卡驱动

IntelMausi.kext

支持英特尔的 82578、82579、I217、I218 和 I219 网卡,基于 I211 的芯片组用下面那个;

最低 macOS 版本:OS X 10.9

SmallTreeIntel82576.kext

支持 I211 NIC 和 I211,但是 macOS 12 Monterey 不适用 I211

对于大多数运行英特尔 NIC 的 AMD 主板是必需的

最低 macOS 版本:OS X 10.9-10.12(v1.0.6), macOS 10.13-10.14(v1.2.5), macOS 10.15+(v1.3.0)(这个 v1.0.6 的版本我是死活也找不到了,需要的就自己看着办吧)

AtherosE2200Ethernet.kext

Atheros 和 Killer NIC 需要;

最低 macOS 版本:OS X 10.8

RealtekRTL8111.kext

用于瑞昱的千兆以太网;

最低 macOS 版本:OS X 10.8(v2.2.0 及更低版本),macOS 10.12(v2.2.2),macOS 10.14(v2.3.0+)

LucyRTL8125Ethernet.kext

适用于瑞昱的2.5Gb以太网;

最低 macOS 版本:macOS 10.15

USB

USBInjectAll.kext

用于在 ACPI 中未定义 USB 端口的系统上注入英特尔 USB 控制器(From 官方文档,我也看不懂啥意思)

Skylake 或较新的台式不需要这个,AMD 也不需要这个,华擎主板需要这个;

最低 macOS 版本:macOS 10.11

XHCI-unsupported.kext

非本机 USB 控制器需要这个,H370 B360 H310 Z390 X79 X99 和华擎主板需要这个;

最低 macOS 版本:官网没标注~

Wi-Fi

AirportItlwm.kext

大部分英特尔无线网卡在这个驱动之下都能工作~

最低 macOS 版本:macOS 10.13

好像就没找到别的了,反正本人瑞昱 8723BE 无线网卡无解,其它网卡可以网上找找~

蓝牙

IntelBluetoothFirmware.kext

在与英特尔无线网卡配对时向 macOS 添加蓝牙支持;

最低 macOS 版本:macOS 10.13

AMD

XLNCUSBFIX.kext

用于 AMD FX 平台的 USB 修复;

最低 macOS 版本:macOS 10.13

额外

NVMeFix.kext

用于修复非 Apple NVMe 上的电源管理和初始化

最低 macOS 版本:macOS 10.14

SATA-Unsupported.kext

添加了对各种 SATA 控制器的支持,主要与在 macOS 中 SATA 驱动器有问题的笔记本电脑相关,专治各种不服~ 不过建议先不用这个驱动,会带来亿些副作用,如果实在不行才用这个;

最低 macOS 版本:官网没标注~

上面看了那么多驱动,是不是早就头昏眼花了~ 实际上驱动放多了还会导致内核崩溃~ 一般来说正常的 Intel 电脑至少需要下面几个驱动:

  • Lilu.kext
  • WhateverGreen.kext
  • VirtualSMC.kext
  • SMCProcessor.kext
  • SMCSuperIO.kext
  • AppleALC.kext(可选,非必要)
  • 亿些网卡驱动(因为网卡驱动放错正常不会导致内核崩溃)

如果想让各类硬件工作的更好可以在安装完成之后使用 Hackintools 等工具后期优化~

如果想康康更详细的这里贴出官方文档链接:

Kexts

3.4 SSDT

SSDT(Secondary System Description Table,辅助系统描述表),是在固件中存在的一种表格,用于描述硬件信息。它通常给 DSDT 这个描述硬件信息的主表格提供辅助信息,也就是打补丁~

需要什么 SSDT,我也没啥话说,直接上官网原表把~

台式机:

平台(开发代号) CPU EC AWAC NVRAM USB
Penryn N/A SSDT-EC N/A N/A N/A
Lynnfield and Clarkdale
SandyBridge CPU-PM(安装后运行)
Ivy Bridge
Haswell SSDT-PLUG
Broadwell
Skylake SSDT-EC-USBX
Kaby Lake
Coffee Lake SSDT-AWAC SSDT-PMC
Comet Lake N/A SSDT-RHUB
AMD 推土机/捷豹 N/A N/A N/A
AMD 锐龙 SSDT-CPUR for B550 and A520

高端台式机 or 服务器:

平台(开发代号) CPU EC RTC PCI
Nehalem and Westmere N/A SSDT-EC N/A N/A
Sandy Bridge-E SSDT-UNC
Ivy Bridge-E
Haswell-E SSDT-PLUG SSDT-EC-USBX SSDT-RTC0-RANGE
Broadwell-E
Skylake-X N/A

笔记本: 

平台(开发代号) CPU EC Backlight I2C 触摸板 AWAC USB IRQ
Clarksfield and Arrandale N/A SSDT-EC SSDT-PNLF N/A N/A N/A IRQ SSDT
Sandy Bridge CPU-PM(安装后运行)
Ivy Bridge
Haswell SSDT-PLUG SSDT-XOSI/SSDT-GPI0 (安装后运行)
Broadwell
Skylake SSDT-EC-USBX N/A
Kaby Lake
Coffee Lake (第八代) and Whiskey Lake SSDT-AWAC
Coffee Lake (第九代)
Comet Lake
Ice Lake SSDT-RHUB

续表:

平台(开发代号) NVRAM IMEI
Clarksfield and Arrandale N/A N/A
Sandy Bridge SSDT-IMEI
Ivy Bridge
Haswell N/A
Broadwell
Skylake
Kaby Lake
Coffee Lake (第八代) and Whiskey Lake
Coffee Lake (第九代) SSDT-PMC
Comet Lake N/A
Ice Lake

官方提取 SSDT 的方法有两种:预构建法与 SSDTTime 法。由于 SSDTTime 法麻烦且不能生成所有 SSDT,所以下文使用预构建法。

预构建顾名思义就是拿别人已经编译好的 SSDT 开箱即用,省去了提取和编译的步骤。官方的仓库在这里:编译好的

如果需要一个文件,就点进去点 Download 即可~

9e5461c57a564df2b375b942691380a1.png

 比如我是笔记本 Broadwell 平台,就选下图这几个:

5a52a0ab06c54f528eba6ee4d8e93ad6.png

IRQ-SSDT 就先不找了把,因为实在找不到,感觉也没啥用

一个个找之后放进 OpenCore EFI OC 目录下的 ACPI 文件夹,注意其中有一些 SSDT 名称对应不上,这里重新对应一下:

  • SSDT-PLUG -> SSDT-PLUG-DRTNIA
  • 笔记本 SSDT-EC -> SSDT-EC-LAPTOP
  • 台式机 SSDT-EC -> SSDT-EC-DESKTOP
  • 笔记本 SSDT-EC-USBX -> SSDT-EC-USBX-LAPTOP
  • 台式机 SSDT-EC-USBX -> SSDT-EC-USBX-DESKTOP

还有一些在上面给出的文件夹里找不到,如 SSDT-GPI0,这些需要手工编译。这里有未编译的,肉眼可见种类多了很多~

(由于 GitHub 为便于代码阅读把 Download 按键砍掉了,这里我单独上传一个:蓝奏

然后下载编译工具,把 dsl 文件拖到编译工具相同目录下,cmd 输入 iasl.exe DSL文件名,就可以得到一个 .aml 文件,也就是已编译的文件~

把它放入 ACPI 文件夹。最后的 ACPI 文件夹就长得像下面那样:

              e8165977042443ac841d3a661f1f27ed.png                                                             

如果想了解更多,这里惯例放了官方文档~

ACPI 快速入门

3.5 工具瘦身

在 OC 文件夹里的 Tools 文件夹存放着一些方便调试 / 使用的工具,但由于这些工具我们很少用,所以对其进行一次瘦身,加快 OC 开机加载速度~

瘦身很简单,就是把 Tools 文件夹下除 OpenShell.efi 之外的文件全部清除。留下一个 OpenShell.efi 是为了方便调试~

3.6 config.plist

终于到了黑苹果最难也最重要的一步——配置 config.plist。

先确认 ACPI、Kexts、Drivers 三个文件夹里的资源是否就位,然后把之前那个 OpenCore 压缩包解压出来的文件夹里的 Docs 里的 Sample.plist 复制一份出来至 OC 文件夹根目录,然后改名为 config.plist~ 就像下面这样~

e4b8ef80f8174fbcb590292177fc2280.png

 打开 ProperTree 文件夹下的 ProperTree.bat 文件,点击 Open,然后选择刚刚复制的 config.plist 文件;

178751b3b360436ba5373fd4b2984076.png

 然后选择 OC Clean Snapshot,选择 OC 文件夹;

c39e2e401aee41c78d818eb74e64c761.png

 ProperTree 就帮我们把刚刚收集的那些文件全部引入过来了(注意:每当我们更改了 ACPI 或 Drivers 或 Kexts 或 Tools 文件夹里的内容,就一定要打开这个 config.plist 文件 OC Clean Snapshot 一下,使更改真正生效!

由于 config.plist 配置部分太多且太复杂,如果全部讲,CSDN 会不堪重负,我也会不堪重负~ 所以请各位读者移步官方文档~

打开官方文档, 红箭头是 Intel 台式机配置,黄箭头是 Intel 笔记本配置,蓝箭头是 Intel 高端台式机配置,紫箭头是 AMD 台式机配置~ 然后打开相对应的子目录选择你电脑的 CPU 代号即可,比如绿箭头指向我需要的 Boardwell(台式机的 Boardwell 组件与 Haswell 整在一起了,所以有台式机 Boardwell 的小伙伴请移步 Haswell~)

ProperTree 基本使用方法:双击重命名/更改类型/更改数值,Ctrl+C Ctrl+V 复制粘贴~

config.plist 配置完可以移步文末使用 OpenCore Sanity Checker 快速排错~

30eafb2fb79448e28b03394783dc51c4.png

在对照官方文档进行配置时,可以英文和翻译文档对照着看。由于机器翻译有一定的误差,比如 Quirks 选项它给翻译成怪癖~ 所以一定的英文基础是要有的。

附:GenSMBIOS 使用方法

在官方文档里有一处是要使用到 GenSMBIOS 的,这里讲一下使用方法。

首先打开 GenSMBIOS.bat,填写 3 开始生成;

1caeafd575f44e4cb2c4615165f5cf2c.png

输入你想伪造的 Mac 型号,官方文档里有说明,如 MacBookAir7,1;

71cc5ad915314f78bb10e4faf058dff5.png

把生成出来的序列号复制出来,再按照官方文档的说明填写~

5070d8e38e974469aef75e49c0f07432.png

 config.plist 配置完成,就到了最后一步了:烧录黑苹果镜像至 U 盘!

4. 制作 U 盘

这是 2023 年 1 月更新的 U 盘制作教程,由于原来那个黑苹果镜像站(链接)已经挂了,所以我们这里不能使用那一种制作方法了。所以这里把新的制作方法写出来~

打开你下载的那个 OpenCore 文件夹,就是这个:

 找到 Utilities/macrecovery 文件夹,然后点击上面的路径界面,输入 cmd 回车:

 输入以下代码(你想安装什么系统版本,就复制相应的代码,把代码中的 python3 删除,然后执行就行了。10.7 - 13 全都有):

# Lion (10.7):
python3 macrecovery.py -b Mac-2E6FAB96566FE58C -m 00000000000F25Y00 download
python3 macrecovery.py -b Mac-C3EC7CD22292981F -m 00000000000F0HM00 download

# Mountain Lion (10.8):
python3 macrecovery.py -b Mac-7DF2A3B5E5D671ED -m 00000000000F65100 download

# Mavericks (10.9):
python3 macrecovery.py -b Mac-F60DEB81FF30ACF6 -m 00000000000FNN100 download

# Yosemite (10.10):
python3 macrecovery.py -b Mac-E43C1C25D4880AD6 -m 00000000000GDVW00 download

# El Capitan (10.11):
python3 macrecovery.py -b Mac-FFE5EF870D7BA81A -m 00000000000GQRX00 download

# Sierra (10.12):
python3 macrecovery.py -b Mac-77F17D7DA9285301 -m 00000000000J0DX00 download

# High Sierra (10.13)
python3 macrecovery.py -b Mac-7BA5B2D9E42DDD94 -m 00000000000J80300 download
python3 macrecovery.py -b Mac-BE088AF8C5EB4FA2 -m 00000000000J80300 download

# Mojave (10.14)
python3 macrecovery.py -b Mac-7BA5B2DFE22DDD8C -m 00000000000KXPG00 download

# Catalina (10.15)
python3 macrecovery.py -b Mac-00BE6ED71E35EB86 -m 00000000000000000 download

# Big Sur (11)
python3 macrecovery.py -b Mac-42FD25EABCABB274 -m 00000000000000000 download

# Monterey (12)
python3 macrecovery.py -b Mac-FFE5EF870D7BA81A -m 00000000000000000 download

# Latest version
# ie. Ventura (13)
python3 macrecovery.py -b Mac-4B682C642B45593E -m 00000000000000000 download

比如我们想安装 13,那么输入最下面一行。下载完之后你应该会在该目录下获取到一个名叫 com.apple.recovery.boot 的文件夹,里面就是黑苹果系统的镜像了。

先放在一边,下载一个软件:Rufus

打开 Rufus,按照下面的设置格式化你的那只可爱的 U 盘~

忽略警告继续格盘~

 

 Perfect~ 然后就可以在文件管理器里面看了。把 Rufus 自动生成的文件全部干掉:

然后把刚刚生成的 com.apple.recovery.boot 文件夹拖进去:

最后一步,把你刚刚辛辛苦苦配置的 EFI 文件夹拖进去,大功告成~

5. BIOS 设置

进入电脑的 BIOS(方法网上搜“你品牌的电脑怎么进 BIOS”) ,关闭以下几项:

  • Fast Boot
  • CFG Lock(MSR 0xE2 写入保护)
  • VT-d
  • CSM
  • Intel SGX

然后开启以下几项:

  • VT-x
  • Above 4G decoding(大于 4G 地址空间解码)
  • Hyper Threading(超线程)
  • Execute Disable Bit(执行禁止位)
  • EHCI/XHCI Hand-off
  • 操作系统类型:Windows 8.1/10
  • Legacy RTC Device

如果有选项你的 BIOS 没有,也不用担心,只需要改变有的选项即可~

6. 排错

把电脑从 U 盘启动,不可能马上就进入操作系统界面,肯定会卡代码~(如果你直接进了 macOS 操作系统,那赶紧去买彩票,中个 100 万没问题~)

6.1 卡 Watchdog

如果你的电脑启动 U 盘卡在 Watchdog status is xxx,然后自动重启 Windows,这是 HfsPlus.efi 驱动的问题。在这里我们选用 OpenHfsPlus.efi;

6.2 卡 EBLOG EXITBS:START

这应该是每个黑苹果新手卡的第一行代码了,其实解决方法很简单~

对于 Intel:这是一个典型的 CFG Lock 问题。config.plist -> Kernel -> Quirks -> AppleXcpmCfgLock 设置为 True 即可解决~

对于 AMD:这也是一个典型的 AMD 内核补丁问题。具体详见官方文档 -> config.plist 配置 -> 内核部分。

官方解决方案:Stuck on [EB|#LOG:EXITBS:START]

6.3 卡 AppleIntelCPUPowerManagement 然后 Please go to

跟上面一样,都是典中典问题~ 把 config.plist 中的 Kernel - Emulate - DummyPowerManagement 开起来就行~

官方解决方案:Kernel Panic AppleIntelCPUPowerManagement

6.4 卡 This version of Mac OS X ...

常考问题,只不过是送分题~ 把 SMBIOS 更改为黑苹果 macOS 系统版本支持的型号即可~

官方解决方案:Stuck on This version of Mac OS X is not supported: Reason Mac...

6.5 没有 Traceback 就 Please go to

具体错误如下:

​
panic(cpu 0 caller Oxffffff801a31c61a): initproc failed to start -- exit reason nonespace 2 wuld info:
6x188 b1000
Bx10253c088
wuld = <9c6530F8-c71a-31ef-8823-5842 919d319> uuid = <cef5027a-d50b-3020-af03-1734b19bc8c5>

Thread 8 crashed
RAX: 8x88687/17bef 1da60, RBX: 8x80000000 ffffed4, RCX: Bx0800000800000048, RDX: 6x60000060000
RSP: DxBe0e7fr7bef 1tBde, RBP : Dx00007rf7ber 4a10de. RSI: Ox60607ff7bef 1d918, RDI: Bxe0e7ff7befR8: Bx66GBB00000600503, R9: 6x68000BBBB0988000, R19:BxB0B09999B9G9e148, 
.......

Thread 8: 8xfffFfF9035626548
8x00607ff808d481ed
6x080871F800cf48ca
6×800876.8004281cb
.......

Mac OS version:
Not yet set

Kernel version:
Darwin Kernel Version 21.2.0: Sun Nov 28 20:20:54 PST 2821; root :xnu-8819.61.5-
.......

4 In Menory Panic Stackshot Succeeded ** Bytes Traced 13681 (Uncompressed 48752)
IOPLatfornPantcfct lon -> AppleRHCIDiskDriver
IoPlatf ornPan lcfict lon -〉 AppleSMC
Please go to https://panic.apple.con to report thls palc

​

(由于 iOS “认字” 水平有限,所以有些错误难免,意会即可)

(该错误在 macOS 12.4+ 表示为 ASP: port is not ready for callouts 然后重启)

这个错误是奔腾赛扬凌动的 CPUID 问题。由于 Haswell+ 平台的奔腾赛扬凌动没有被 Mac 官方使用过,所以 Dortania 在官方文档里说奔腾赛扬凌动 CPU 无解。但是经过我的不懈折腾,终于在 OpenCore GitHub 上的 Issues 板块中,发现了一个 Haswell+ 平台奔腾赛扬凌动的 CPUID 补丁(Wow.jpg)

具体链接见:GitHub

里面的 Haswell+ 低端特别说明,不知道救了多少奔腾赛扬凌动的孩子啊~

补丁如何打

首先仿冒 CPUID 为 Ivy Bridge,打开 config.plist,找到 Kernel - Emulate,改成如下:

Cpuid1Data: <A9 06 03 00 00 00 00 00 00 00 00 00 00 00 00 00>
Cpuid1Mask: <FF FF FF FF 00 00 00 00 00 00 00 00 00 00 00 00>

然后如果是 macOS 10.11 及以下版本,NVRAM - Add - 7C436110-AB2A-4BBB-A880-FE41995C9F82 - boot-args 加上 -xcpm 一条即可;

如果是 macOS 10.12 及以上版本,需要打 _xcpm_bootstrap 和 AVX 两个补丁~

首先是 AVX 补丁(打补丁方法:直接复制所有内容,然后 ProperTree 打开 Kernel - Patch 选择一个同级项 Ctrl+V(下面有图文教程)):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>Base</key>
		<string></string>
		<key>Comment</key>
		<string>Haswell+ low-end Celeron/Pentium cpuid_set_info_rdmsr (c) vit9696</string>
		<key>Count</key>
		<integer>1</integer>
		<key>Enabled</key>
		<true/>
		<key>Find</key>
		<data>uaABAAAPMg==</data>
		<key>Identifier</key>
		<string>kernel</string>
		<key>Limit</key>
		<integer>0</integer>
		<key>Mask</key>
		<data></data>
		<key>MatchKernel</key>
		<string></string>
		<key>Replace</key>
		<data>uaABAAAxwA==</data>
		<key>ReplaceMask</key>
		<data></data>
		<key>Skip</key>
		<integer>0</integer>
	</dict>
</array>
</plist>

然后是 _xcpm_bootstrap 补丁(有分 10.12 和 10.13 以上)

10.13 以上:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>Base</key>
		<string>_xcpm_bootstrap</string>
		<key>Comment</key>
		<string>_xcpm_bootstrap (Haswell+ low-end Celeron/Pentium) 10.13+</string>
		<key>Count</key>
		<integer>1</integer>
		<key>Enabled</key>
		<true/>
		<key>Find</key>
		<data>AMQ8Ig==</data>
		<key>Identifier</key>
		<string>kernel</string>
		<key>Limit</key>
		<integer>0</integer>
		<key>Mask</key>
		<data>AP///w==</data>
		<key>MatchKernel</key>
		<string>16.</string>
		<key>Replace</key>
		<data>AMY8Ig==</data>
		<key>ReplaceMask</key>
		<data>AP///w==</data>
		<key>Skip</key>
		<integer>0</integer>
	</dict>
</array>
</plist>

10.12:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<array>
	<dict>
		<key>Base</key>
		<string>_xcpm_bootstrap</string>
		<key>Comment</key>
		<string>_xcpm_bootstrap (Haswell+ low-end Celeron/Pentium) 10.12</string>
		<key>Count</key>
		<integer>1</integer>
		<key>Enabled</key>
		<true/>
		<key>Find</key>
		<data>xIMAIg==</data>
		<key>Identifier</key>
		<string>kernel</string>
		<key>Limit</key>
		<integer>0</integer>
		<key>Mask</key>
		<data>//8A/w==</data>
		<key>MatchKernel</key>
		<string>16.</string>
		<key>Replace</key>
		<data>xoMAIg==</data>
		<key>ReplaceMask</key>
		<data>//8A/w==</data>
		<key>Skip</key>
		<integer>0</integer>
	</dict>
</array>
</plist>

由于此错误只针对低端 Intel,而 Dortania 的指南直接达咩了低端 Intel,所以本错误为独家错误~ 

6.6 AppleIntelXXXGraphicsFramebuffer 然后 Please go to

其中 XXX 可以是 BDW(Broadwell)或 SKL(Skylake)或 CFL(Coffee Lake)等等等等,其实就是你 CPU 开发代号~

首先先确定你的集显版本是不是 GT1,前面查看显卡的地方有查看方法。如果集显是 GT1 又有核显就禁用集显(方法在下面)GT1 集显是真的无解~

一般来说是 GPU 驱动问题,详细阅读这两篇文章,应该有帮助:

Intel GPUs

Intel iGPU FAQ

还有,如果集显有问题就在 NVRAM - Add - 7C436110-AB2A-4BBB-A880-FE41995C9F82 - boot-args 加入 -wegnoigpu 禁用集显,如果独显有问题就在 NVRAM - Add - 7C436110-AB2A-4BBB-A880-FE41995C9F82 - boot-args 加入 -wegnoegpu 禁用独显~

我在官方文档里没看到这个问题,所以它也是独家问题~

6.7 OC: Failed to find SB model Disable

这个错误就很尴尬了,少写了个 d,把 Misc - Security - SecureBootModel 从 Disable 改成 Disabled 即可~

6.8 卡在 End SetConsoleMode

把 Misc - Security - SecureBootModel 设为 Disabled 即可。这个问题是老版本 macOS(macOS 10.12 - 10.14)的家常便饭了~

6.9 OS X 10.11 及以下选择 OS X 启动项后黑屏

这个不是 OpenCore 或者电脑有 Bug,这是 OS X 10.11 EI Captain 及以下版本与 OpenHfsPlus.efi 共同“协作”出的一个特性。一般来说等个 10 分钟左右即可。如果嫌慢,把 OpenHfsPlus.efi 替换成 HfsPlus.efi 即可。当然如果你电脑用 HfsPlus.efi 报错我也没有办法了~

剩下的路就靠大家自己走了。这里同样贴出官方文档链接,涵盖了大多数问题:

OpenCore 启动问题        

内核加载问题(大部分问题都在这里)

人无完人,由于官方文档也存在错误遗漏,所以我们还是需要亿些搜索引擎的帮助。这里推荐两个:

1. 远景论坛

目前中国最权威的黑苹果论坛,基本上只要你的电脑配置不是太冷门,你的问题答案都能在上面找到。当然你也可以在远景上自己发帖,如果运气好会有很多大佬帮助你~ 当然前提是你需要有一个远景账号,而申请远景账号需要邀请码。邀请码可以私信远景微博小编,按照申请理由 邮箱 手机尾号求邀请码。当然这个还要看远景小编心情,就比如我私信了半个月愣是啥都没收到~ 如果实在想要可以在某宝上 10¥ 解决~

2. 度娘

如果你因为各种原因没有远景账号,那么百度也是不错的选择。它也收录了很多黑苹果案例。重要的是:百度也收录了很多远景论坛的帖子!所以如果实在没有远景论坛账号就乖乖度娘吧~

7. 安装流程

如果你在经过数次跑码数次重启数次排错之后进入了 macOS 安装界面,那么恭喜你!最难的过程已经结束了!你基本上可以盖棺论定你的 PC 将是一台 Hackintosh(黑苹果)~ 所以作为一个无果人士我觉得如果进入了 macOS 安装界面应该好好犒劳犒劳自己亿下~

但是安装流程还是需要注意亿下的,如果安装错了可能需要重新烧录重新复制重新启动~

下面的流程基于最最最最最最最最最最稳定的 macOS 10.14 Mojave,版本不同可能步骤也不同,但大同小异~

首先让白苹果跑完~

然后选择语言(不要问我截图怎么来的,开了个虚拟机,理解万岁);

继续;

继续;

同意;

最重要一步来了,Catalina 及更新版本直接在主页面打开磁盘工具,Mojave 及更旧版本见下图;

 选择左边你的那块硬盘,通常是第二块,如果识别不到请检查你的硬盘和 OpenCore 是不是有问题,然后点击“抹掉”;

名称随便填,剩下的保持默认,点击“抹掉”(在完成这一步之前请把这块硬盘里的重要数据备份出来,因为 macOS 会格了你整块硬盘,如果想装 Windows macOS 双系统的建议先装 macOS 再装 Win。毕竟 macOS 都吃上了,还怕 Windows 吗?);

等待其抹掉,点击“完成”;

点击左上角红按键;

选择刚刚抹掉的那块硬盘,点继续;

等待其安装亿会儿;

第二次重启需要选择进入的是 macOS Installer(网图,理解万岁); 

又是亿会儿的等待;

第三次重启选择的是 macOS,进入之后你应该会看到如下画面:

设置一下你的黑苹果,就可以使用了!欢迎来到 macOS 的世界!Enjoy it!

如果在安装流程中有什么问题请移步官方文档:

安装流程问题

8. 后记

8.1 信息/步骤/资料来源

首先感谢 Acidanthera,ta 是 OpenCore 的作者~ 感谢 Acidanthera 对黑苹果这门领域的贡献!

本文大部分步骤信息来源于 OpenCore 官方文档,感谢 Dortania 的这篇教程~ 另外备注:本文所说的官方文档实际上是指 Dortania 的 OpenCore 新手指南,不是 Acidanthera 官方认证的文档。把它说成官方文档一是因为这个指南非常详细,作用可以替代官方指南;二是纯粹图方便。如果实在想看官方文档在这里~ 只不过官方文档对小白非常不友好,而且全英文,小白慎入~

8.2 使用现成 EFI

如果你的配置比较热门,你或许可以在这个地方直接找到现成的 EFI(可能不是 OpenCore 引导):链接,这是众多大神亲自配置且实验过的 EFI,成功率比较高。

同样感谢黑果小兵的整理。注意必须要拿和你机型一模一样的,比如 Lenovo ideapad 100-15ibd 的 EFI 与 Lenovo ideapad 100-15iby 的 EFI 不能兼容。拿到 EFI 后就跟已经配置过的 EFI 一样直接 DiskGenius 操作就行。那就有人问:为什么不用大神已经配置好的呢?我个人是这样看的:老师说过自己的事情要自己做

8.3 新版本 macOS 存在的一些问题

macOS 11.3+ 要跑起来的话要把 XhciPortLimit 关掉,此外还有很多不稳定,原因纯粹是因为 Apple Silicon 的加入~

还有,最近 WWDC22 上推出的 macOS Ventura 13 砍掉了大部分 intel 机型,所以黑苹果的生命快到尽头了(T_T)

8.4 让黑苹果更加简单

如果这里有大佬想看官方文档,完全不必看英文版的,因为这里有一个全翻译且很成熟的 OpenCore 官方文档译本:这里,只不过它没有经过 Acidanthera 官方认证。不过我觉得要是 Acidanthera 亲临现场估计也会通过认证的~

还要推荐一个 OpenCore config.plist 快捷排错的网站:OpenCore Sanity Checker。上面选好 CPU 型号点中间那个大大的蓝色按键选择你的 config.plist 即可快速排错~

当然这个排错结果仅供参考,由于版本对不上,有很多 Bug。建议如果发现错误还要去 OpenCore 官方文档进行核实~

总之,整了那么多,希望每台 PC 都能通过 OpenCore 引导吃上黑苹果吧~

猜你喜欢

转载自blog.csdn.net/raspi_fans/article/details/125144685