声明:以下实践只为技术验证和学习用途,请在经济允许情况下购买正式的苹果设备获得完善的功能和技术支持。本人有多台Macbook,在技术验证后即删除系统。
背景
双十一购买的零刻小主机SER5 Max一直没空折腾,安装了一个PVE但家里并不缺少PVE小主机,故打算趁还没正式投入机柜前,折腾一翻。之前说听过可以黑苹果,即便已经有几台Macbook,仍然想看一下这玩意是怎么折腾的,于是几天过去了,有收获也有遗憾,将过程和一些感受记录一点。如果你也想玩黑苹果,或许对你理解这个过程有点帮助。
运作原理
要理解几个小概念(以下是我个人理解,有错漏请指出):
- 引导器(boot loader)
- 我们知道操作系统需要引导器,比如Windows有它的BootMgr,比如Linux常见的GRUB2等,我们想要黑苹果,常见的有Clover和OpenCore作为引导,它可以引导Win/Linux/Mac等。
- EFI/UEFI
- 代替传统的BIOS,提供了更多功能(安全性/大容量硬盘等)。它也是一种操作系统和硬件之间的接口标准。
- EFI分区
- 一个特殊的分区,一般是FAT32格式。有时叫ESP(EFI System Partition),里面可以放一些驱动、配置、工具、主题等。对于黑苹果,如果用OpenCore作为boot loader,会有一个OC目录。
- 黑苹果
- MacOS对应的设备是有限的,但社区上EFI这一层可以伪装为某种设备,并且提供一些驱动(如从Linux等提取/迁移驱动),使MacOS可正常驱动一些原本不兼容的设备。
提前告知
- 如果你想要一个完美的黑苹果,必须要提前搜集清楚你的硬件信息,用于后续进一步优化(寻找对应的内核Kext/Driver)或配置等。
- 建立EFI分区自行创建,并且200M以上,建议300M,不然放一些东西可能空间不够。
- 有些软件功能是重叠的,尽量先看看手上软件有无此功能。比如OCC(OpenCore Configurator)和OCT(OCAuxiliaryTools)和DiskGenius都可以挂载修改EFI,但DiskGenius可以编辑格式化调整大小等。又比如DiskGenius可以调整启动顺序,但是没有EasyUEFI好用。
流程概述
不详细讲解这个过程了,简单说有如下几步。
- 下载MacOS系统镜像。 可以找一些黑苹果前辈封装好的dmg可能会更快一些,包括了一些工具等。比如我找了这个黑苹果 macOS Ventura 13.6.3 (22G436) 自带OC引导v0.9.7 原版镜像,它相对较新。也可以去著名的黑果小兵博客下载。
- 下载适用于自己机器的EFI。因为我是SER5,刚好有网友开源了一个EFI,直接下载Beelink-SER5-Hackintosh即可。这个EFI是基于OpenCore来引导系统的。
- 制作U盘镜像。可以使用很多写盘工具,将上面下载的dmg写到U盘里,比如
balenaEtcher
。 - 替换EFI。因为第一步下载的镜像中可能不是适配你的设备的,故这里需要进行替换。(我实际是在上面安装完系统后替换的,后面试一下先替换有无问题。替换这一步,你需要借助一些工具,如
DiskGenius
等来写。如果你是在MacOS下,也可以加载相关EFI分区来写。 - 从U盘启动,按提示一步步安装系统。注意期间多次重启算正常现象。之后正常的话,你就可以进入系统了。
尝试解决几个问题
安装后初步使用上没啥问题,有线和无线网卡均正常。AirDrop如预期的不可用(可点击也不能搜索到)。但也遇到几个小问题。
U盘依赖
上面安装完后,你会发现如果拔掉U盘又加载不了操作系统了。原因是系统安装在硬盘上,但是EFI还在U盘,需要通过它引导。我们只需要将U盘中的EFI拷贝到电脑磁盘某个分区,就可以和U盘说拜拜了。
具体做法,像上面提到到的通过DiskGenius
或者如果已经在安装好的MacOS内,可以借助配置OpenCore的工具如OCAuxiliaryTools或OpenCore Configurator来挂载ESP分区来读写EFI。然后调整或创建一个新的启动项,可以借助EasyUEFI
工具,创建时选择上EFI/OC下的OpenCore.efi文件,然后调整启动顺序即可。此问题可解。
蓝牙不可打开
最开始我用的不是上面提的Beelink-SER5-Hackintosh
版本,结果蓝牙一直无法正常打开。尝试过定制USB等,仍然没有解决问题。谁说的“如果确定你的网卡型号支持驱动,但是蓝牙无法使用,那么多半是你的 USB 没有定制好”。最后换为上述的EFI此问题解决。
声音有问题
手上只有蓝牙耳机AirPod,试了一下可以连接,但是播放后声音需要延迟很久才听到,并且有不少噪音。我在Windows上借助一些硬件检测工具查过声卡是Realtek ALC897,当然如果你已经在MacOS了,也可以借助Hackintool
然后参考AppleALC Supported 试用了不同的layout-id。
|
|
为了寻找合适的layout-id,需要在OCT等工具设置layout-id,保存config.plist,拷贝到EFI分区,重启,测试蓝牙耳机声音,有问题!再回到前面设置layout-id,保存config.plist,拷贝到EFI分区,重启,测试蓝牙耳机声音,有问题!再。。。如此往复10次。我才知道为啥很多黑苹果的文章先要警告你不要熬夜了,去你妹的,这能不浪费时间吗!在试到最后一个99时,在听到了比较清晰没有啥噪音的声音,我都一度以为成功了,本着多次验证的心态,关蓝牙再开再连接耳机,它居然又各种杂音了。沉沉的夜色,不允许我再继续折腾了。在崩溃边缘求助于GPT4,它和我说:“声卡驱动问题可能较为复杂,涉及的不仅是layout-id,还可能是其他系统配置或者硬件兼容性问题。”。茫然,不知下一步可做什么尝试,此问题暂时无解?
其它选择
在黑果小兵的博客上,发现刚好有零刻的黑果交流群,果断加入,在群空间中找到了一份SER5 PRO的EFI,下载后用它来覆盖原来EFI,上面的声音问题依然没有解决。
于是我尝试按这个教程来从零开始设置自己硬件对应的EFI配置(驱动等),可能有部分不完善,直接启动失败了:( 这今儿又和它杠上了呀!
接下来或还有两件事可以做:
- 对比分析我自己定制的EFI和黑果小兵等开源版本的差异,同时多看些OpenCore资料加深对其理解,以图能够未来配置正确。然而并不知道是否本身这个设备下,当前就是个无解的问题?!
- 使用网上的定制化服务,以此来寻找懂行的人教一下。相当于花费一点钱获得咨询和帮助。但看起来似乎人家是直接基于机器配置自动生成的EFI发给你,到底是不是真懂呢?
参考资料
虽然没有完美解决各种问题,倒也是勉强能用。有一些比较有帮助的文档/工具附录一下: