David Peng

黑苹果安装笔记

David Peng

2021-09-28

初识黑苹果

我最早接触黑苹果(Hackintosh)是在 2019 年。当时使用 Clover 在我的惠普暗影精灵 2 尝试了黑苹果,有一个大的问题是使用了 DW1820A 无线网卡,系统在开机时会内核崩溃一到两次后才能正常启动。虽然启动后能正常使用,但还是不方便。

在之后,OpenCore 基本已形成了替代 Clover 的趋势,此次重新尝试黑苹果前,我先了解了 OpenCore 的知识,主要参考的是 OpenCore Install Guide,该指南内容详实,可操作性强,更新及时。OpenCore 本身的文档和资源查看也比 Clover 方便。

原则

总体步骤

黑苹果系统安装和 Windows、Linux 等其他系统的安装是类似的。只是三步:

  1. 刻盘。准备一个系统安装介质,一般是用 U 盘。只是黑苹果无法直接启动,需要借助 Clover 或 OpenCore 来启动。
  2. 装机。和其他系统装机一样,也是有一些地方要注意的。
  3. 配置。黑苹果装完后,很多硬件驱动有问题,功能不正常。每一项都有人已经做了 Hack,你需要找到适合自己硬件的部分,并自己一一验证。

了解硬件

使用 HWinfo 查看硬件的信息,并导出 HTML 或 TXT 的结果存起来。你需要根据自己的型号,先去了解基本的信息,包括:

暗影精灵 2 的 硬件规格

前期准备

通读一遍 OpenCore Install Guide,并记下和我笔记本相关需要做的步骤。

替换无线网卡

这次重新安装黑苹果前,先在淘宝购买一个 macOS 操作系统原生支持的无线网卡,在 Wireless Buyers Guide 中选了 BCM94352Z Fenvi(奋威) AC1200 这块卡,接口、大小等规格都能适配我的暗夜精灵 2 笔记本,自行拆机并替换网卡后,在 Windows 系统下需要安装 网卡驱动 后,Wi-Fi 和蓝牙使用完全正常。

制作系统安装盘

使用 [InstallInstallMacOS] 工具。运行下方的命令,再按提示下载对应版本的的系统安装包。

mkdir -p ~/macOS-installer && cd ~/macOS-installer && curl https://raw.fastgit.org/munki/macadmin-scripts/main/installinstallmacos.py > installinstallmacos.py && sudo python installinstallmacos.py

下载完成后,会在 macOS-installer 目录下得到一个 DMG 格式的安装包。将 DMG 中的 Install macOS.app 移到应用程序路径下。然后使用 Apple 官方的 createinstallmedia 工具刻录到 U 盘。

sudo /Applications/Install\ macOS\ Big\ Sur.app/Contents/Resources/createinstallmedia --volume /Volumes/MyVolume

安装 OpenCore

下载 OpenCore 最新版本,按照 教程 相应的来做,重点是保留自己需要的文件即可。

必需的 EFI 列表:

安装内核扩展

按照 教程 加入需要的内核扩展(Kexts)。列表如下:

内核扩展只需要够用就行,不需要装些不必需的。上述内核扩展都是必需的。

ACPI 补丁

按照 教程 加入需要的 ACPI 补丁。列表如下:

ACPI 补丁只需要够用就行,不需要装些不必需的。上述 ACPI 补丁都是必需的。

配置 OpenCore

按照教程配置 OpenCore。再按照 SkyLake CPU 笔记本教程 来配置剩下的部分。

不需要配置 GUI 选择启动盘,在 U 盘上只是装机、更新系统、更新 OpenCore、测试等情形时用,没有 GUI 也不影响使用。在电脑上一般使用时也不需要显示 GUI 页面,也不需要配置开机声音。

按照 教程 在电脑上的 config.plist 中设置几项隐藏启动时的调试信息:

以上信息在 U 盘上无需隐藏,在 U 盘上的设置:

伪装设备为 MacBook Pro (15 英寸,2016),技术规格

使用 OpenCore 中自带的工具 macserial 来生成要伪装设备的序列号和主板 ID,命令为 macserial.exe -m MacBookPro13,3,生成的结果中第一列是序列号,第二列是主板 ID。到 Apple Check Coverage 可以查询序列号有没有被人已经使用了,没人使用的就可以用。因为同一人多次查询,苹果会屏蔽,可以使用 Tor 浏览器访问此页面来规避苹果的屏蔽。

设置 BIOS

先更新 BIOS 到最新的版本(F.52 Rev.A)。按照你的电脑的用户手册进行系统的 BIOS 设置。比如惠普暗影精灵 2 的是:开机后按 ESC,然后根据界面提示选 F10 进入设置。

配置声音

按 教程 设置,找到声卡设备的 PCI 地址 PciRoot(0x0)/Pci(0x1f,0x3),然后设置 layout-id 为 Number 21。

为解决从 Windows 启动进入 macOS 没有声音输出,设置 alctsel 为 Data 01000000。

为解决有时启动时 macOS 没有声音输出,设置 alc-delay 为 Number 1000。

配置 USB 映射

先启用 USBInjectAll.kext。按照 USBMap 使用教程 来设置内置摄像机、蓝牙、USB 2.0 接口、USB 3.0 Type A 接口。可以得到 USBMap.kext。完成后禁用 USBInjectAll.kext。

配置 CPU 频率管理

按照 教程 配置得到 CPUFriend.kext 和 CPUFriendDataProvider.kext。

配置电池状态显示

使用 OC-little 的电池信息补丁,做出 SSDT-BAT0.aml,然后使用补丁。

 * In config, ADJT to XDJT
 * Find:    41444A54 08
 * Replace: 58444A54 08
 * 
 * In config, CLRI to XLRI
 * Find:    434C5249 08
 * Replace: 584C5249 08
 * 
 * In config, _BST to XBST
 * Find:    5F425354 00
 * Replace: 58425354 00
 * 
 * In config, UPBI to XPBI
 * Find:    55504249 00
 * Replace: 58504249 00
 * 
 * In config, UPBS to XPBS
 * Find:    55504253 00
 * Replace: 58504253 00
 * 
 * In config, SMRD to XMRD
 * Find:    534D5244 04
 * Replace: 584D5244 04
 * 
 * In config, SMWR to XMWR
 * Find:    534D5752 04
 * Replace: 584D5752 04

无需 USB 启动

先在 U 盘上配置,测试完成后,把 U 盘上的 EFI 目录下的文件全部拷贝到电脑的 EFI 分区下。推出 U 盘,重启电脑即可。

升级 macOS、OpenCore、内核扩展

在升级上述东西之前,都先备份 U 盘上目前正常的 OpenCore,然后进行升级。升级后从 U 盘启动,测试下各个功能是否正常,如果正常,则将电脑上的配置升级为和 U 盘一样。

大的 macOS 版本升级,需要有更多小白先试用并发现问题,各个应用程序也需要一段时间来兼容新系统,所以最好在新系统发出至少六个月(最好一年)后再升级系统。

遗留问题

目前唯一遗留的问题是每次开机前会断电一次再开机,但不是内核崩溃,不影响正常使用。

英伟达独显不能用,HDMI 输出口接在独显上,所以不能用。但可以使用一个 USB 转 HDMI 的转换器实现双屏。

日常使用设置

开启 HiDPI

NVRAM -> Add -> 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 -> UIScale 设为 02

在 15.6 吋的笔记本上使用 1920x1080 的分辨率,字太小,看不清,缩放分辨率为 1600x900,则字不清晰。使用 one-key-hidpi 开启 HiDPI 后,设置分辨率为 1424x802,得到的字会很清晰。

使用触控栏模拟器

下载 触控栏模拟器,安装启动后,则可以运行后在屏幕上显示触控栏,和 MacBook Pro 键盘上方的触控栏功能一样。

把 PrtSC 键映射为 F13 键

在我的笔记本上,PrtSC 键在 F12 键的右侧,而 macOS 无法识别这个键,可以使用 PS2键盘映射 ACPI 补丁 将其映射为 F13 键,然后在系统偏好设置中调节截图的快捷键为 F13 键,这样就可以实现等同于 Windows 上按 PrtSC 截图的效果。

Hackintool

Hackintool 是黑苹果的瑞士军刀,可以查看很多设备信息,挂载 EFI 分区,升级内核扩展,升级 OpenCore 等等。

IORegistryExplorer

IORegistryExplorer 可以快速查看系统信息。

MaciASL

MaciASL 可以编译 ASL 为 AML,做 ACPI 补丁必备。

PlistEdit Pro

PlistEdit Pro 编辑 plist 文件用。

使用序列号激活:Name: TNT team,Serial Number: PLEDPRO486-SF00-82GR-N8E3-50L2-0A0Q

双系统

我将原有的 256GB M.2 SSD 换成了 1TB M.2 SSD,把 1TB HDD 换成了 1TB SATA SSD。前者装 macOS,后者装 Windows。OpenCore 放在 macOS 的 ESP 中。

在 Windows 的电源设置中关闭快速启动,否则在 macOS 下使用 Windows 盘可能会造成文件损坏,导致进不去 Windows。

解决两个系统下时间不一致问题:Windows 中的时间比 macOS 慢 8 个小时,原因是 Windows 和 macOS 处理时间的方式不同。Windows 使用本地时间,macOS 则使用 UTC,东八区的中国时间比 UTC 快 8 小时。

以管理员运行以下命令修改注册表:

Reg add HKLM\SYSTEM\CurrentControlSet\Control\TimeZoneInformation /v RealTimeIsUniversal /t REG_DWORD /d 1

安装 Tuxera 访问 Windows 的 NTFS 分区。

©2021 David Peng 采用 Pandoc 搭建。关于