创作立场声明:最近手头两台电脑一台主板坏了,在修,另一台则进行了更换,所以后两篇文章暂时写了一半,另外平时还要准备考试,所以更新的比较慢,请大家见谅。
什么是黑苹果
由于Macbook/iMac/Mac Pro均使用Intel处理器,让普通电脑安装macOS成为可能,在non-Apple机器上安装macOS就是黑苹果。
黑苹果的历史
在2005年之前,Apple的Macbook系列使用IBM的PowerPC架构处理器,所以macOS属于独占系统,仅仅Macbook系列可以安装,但是在2005年6月,苹果在WWDC上宣布他们将个人电脑从PowerPC架构转向Intel的x86架构。这就让很多人萌生了在非苹果硬件上安装macOS的想法。
大约3个月时间后,OS X 10.4 Tiger被匿名黑客宣布破解!但是当时的破解非常差劲,和现在AMD黑苹果类似,采用了更换定制内核的方法,这就要求每一个版本都要有黑客及时更新相应内核进行替换。
OS X 10.6 Snow Leopard发布后,osx86社区的一位黑客写了一个名为chameleon的bootloader,国内大家称呼为“变色龙”,这是第一个广泛性的引导器,基于这个bootloader我们可以比较容易地通过修改一系列config和DSDT来启动OS X,相较于之前替换内核的方法,大大减轻了黑客们的工作量。从此黑苹果慢慢进入了大众的视野,由困难变得简单起来。
Clover
OS X 10.10 Yosemite版本开始,出现了新的引导方式——Clover Bootloader,即四叶草。它支持UEFI启动,相较于Chameleon功能更加强大,适配更加完美,调试更加简单。和之前不同,10.10开始内核替换几乎绝迹,几乎所有的黑苹果都采用使用额外的bootloader来引导OS X原版安装镜像,尽量减少kext的修改,来实现稳定的黑苹果安装。
随着时间的推移,目前几乎所有的黑苹果都采用Clover引导。在极客们的努力下,越来越多的BUG被修复,kext封装越来越精简,我们配置黑苹果也越来越简单、方便。
为什么我们要黑苹果
接下来的比较纯粹从程序员角度,并非什么音频视频编辑。
Ubuntu
Linux在Windows/Linux/macOS之间对比,你会发现Linux对于界面做的真的比较一般,相对而言Ubuntu等大众Linux稍好,但是和其它两者相比就没什么优势,而且很多软件不适配,例如QQ等还需要wine来帮忙。
Windows 10
WindowsWindows 10真心很不错,不仅拥有宇宙第一IDE和生产力鼻祖Office套件,拥有庞大的软件生态圈,QQ、微信更不会缺少,但是个人非常不喜欢cmd,和linux的bash相比简直是渣渣,这导致很多Terminal能完成的事情,Windows需要专门的软件,而且使用Windows就等于放弃了Linux/Unix工具链,就算能使用也非常麻烦。
macOS Mojave
macOSmacOS一方面具有非常不错的UI界面,同时常见的Office、QQ、微信等软件都有,而且Unix-like的BSD内核让它拥有和Linux一样强大的Terminal,能使用Linux工具链,但这并不是说macOS就是天下第一系统了,相反,和Linux相比macOS的包管理机制弱爆了,homebrew早前甚至只有源码分发方式,下载完还得编译一遍,而且ruby的很多问题我还解决不了(可能是我不懂ruby所致),其次和iOS一样,macOS的OpenGL支持非常弱,所以图形能力在Apple产品上就不要考虑了,啥时候高冷的Apple能大力发展一下metal说不定还能看看,最后要说macOS其实属于表面光鲜,它很多细节体现出来macOS实际上粗制滥造,例如CPUPM都是一个个的配置文件,你的CPU符合这个文件就使用这套配置方案,如果不在其中那对不起,不支持。图形卡也是一样,很多BUG都是草草结尾,你真的细究会发现macOS和Linux完全不是一个级别的系统,大部分Linux发行版bug fixed or not fixed可以明显看出,但是macOS很多bug是差不多fix,能用,但很丑陋。
那为什么大部分的程序员都推荐Macbook Pro呢?原因很简单,虽然macOS系统很粗制滥造,但是在Macbook Pro上用起来没啥问题,有bug但是会有苹果帮你处理,大多数人看中就是三点:有常用软件、能用Terminal和工具链、MacBook Pro总体而言还算不错的笔记本。很多时候不折腾是好事,工作学习就够累的了,为什么还要分心做些下水道活。
那黑苹果存在的意义是什么?很多人看完上面觉得我在打脸自己,选择macOS是为了不折腾,但是黑苹果属于顶顶折腾人的,为什么我们要搞?实际上黑苹果有三部分用户:第一部分纯粹就是玩玩,折腾有意思,装完就完事儿了;第二部分人是电影、音频工作室,这个是真的,因为我身边就有此类人,苹果的产品是在太贵太贵,顶配iMac能接近十万,而且最让人**的是很多时候你有钱苹果也没有好的机器给你;第三类人是程序员,不过是没啥钱的程序员,例如学生、或者收入并不高的、新入职的程序员,有些时候为了将就,iOS开发必须要macOS,就试试黑苹果。总体而言,一二类占大多数,程序员如果用黑苹果一般都是公司配的Macbook不行,那么自己组一套不错的黑苹果用着。
黑苹果完美吗?
经过这么多年的发展,黑苹果基本上可以称得上是比较简单、相对完美了,特别是对于台式机,只要你用的是大众硬件,兼容硬件,那么基本上简单操作后你就可以得到一台比较完美的机器。那么完美主要包括哪几方面呢?我这里简单列举,包括但并不局限于(只说台式机啊):
CPU:个人觉得ivy bridge及之后的处理器一般都可以,Sandy bridge及更老的安装Mojave需要在Clover Boot Argument中添加一个跳过兼容性检查的设置。
显卡:最好最好要么是Intel的核显,要么是AMD RX 4xx/5xx或者Vega56/64,别N卡了,等驱动实在伤不起,AMD卡现在这么便宜,收一张玩玩花不了几个钱。
声卡:ALC系列的相对来说容易点,此外还要处理HDMI/DP输出声音
网卡:BCM94352z、BCM94360cd等等,基本我只用博通固定款
蓝牙:如果无线网卡是特定型号,一般蓝牙都能驱动
电源管理:原生CPU电源管理,变频等等
USB:USB内建,并不算难
睡眠:这玩意儿只要上面几个处理好,各种东西都内建完成,一般就可以用,但是台式机不睡眠也没啥大问题。
所以总的来说黑苹果台式机还是挺简单的,符合相对完美,且可以简易升级的机器给程序员用也很不错!很多时候公司发给你的MacBook Pro都是最低配的那种,18年前CPU都是双核四线程低压U,配8G内存 128G硬盘,说实话真的不能让人满意,所以花点小钱组一套强力台式机吊打MacBook Pro毫不费力。
笔记本的话会更复杂,首先是双显卡需要屏蔽独显,其次类似于屏幕内建等等的问题都会让你头大,所以笔记本最好是有现成的EFI。
黑苹果知识获取
tonymacx86.com:这是国外的一个黑苹果论坛,上面有几位非常厉害的Clover和相关Kexts维护者,不收费有详细教程,首推论坛!
insanelyMac:国外一个比较早的一个黑苹果论坛,就是在上文中osx86社区衍生而来的论坛,人数也不少,但是我用的较少,了解不多,有时候下载的会到这边来。
github:Github也是一个非常好的黑果资源搜索器,首先大部分的Kexts开发者都把库放到了这里,其次很多现成现成的EFI也在上边,在这里我发现了最佳黑苹果笔记本——XPS 9360顶配。
远景论坛:算是国内最大的黑苹果论坛,最早我接触黑苹果的时候就是在威锋x86和远景,相对而言威锋x86很多资料都太老了,置顶的精华都是好几年前的,对现在根本没有帮助,所以国内论坛首选远景,国内比较知名的黑果开发者也在上面混,但是远景也有很多问题,首先貌似现在是不开放的状态,注册要邀请码,其次远景曾经有一年左右时间存在问题,域名解析或者服务器挂了,最最重要的是远景知识不成体系,很多时候大家都是做了个EFI分享出来完事儿,究竟怎么做的,重点在哪里,这个比较少,而且很多资源都是搬运国外的东西,个人建议你如果黑苹果水平还不错,闲来看看别人在玩啥可以,但别想着从这里学会东西。
诸多个人论坛:这个需要个人收集,国内的有国光、黑果小兵,国外的nickwoodhams等等,先不用急着看,个人建议先从tonymacx86看起。
黑苹果原理
这部分原理为了让大家能听懂,我尽量说的简单一些
电脑系统的启动需要两个东西一起应用,一个是Bootloader,就是启动器,二是兼容这个启动器的操作系统。
启动器就是唤醒操作系统的一个小系统,它被烧录在主板ROM上,目前的通用启动器有BIOS和UEFI,没有UEFI BIOS这种东西,很多人误以为UEFI就是引导方式,并不是,UEFI是和BIOS平级的Bootloader。大多数电脑都是用基于这两款定制修改出来的Bootloader。
苹果很奇葩,它的引导方式是用的是苹果自家定制的EFI搭配各种软硬件引导进入macOS,EFI是UEFI的前身,它相当于在EFI基础上再做修改,和UEFI同属EFI衍生。普通UEFI是无法引导macOS的,不仅仅是不兼容,还在于无法提供各类macOS启动需要的数据和验证。
从黑苹果的历史中我们可以了解到,黑苹果的方法无非就是两种,一、替换内核,启动需要的信息全部写好,需要的验证删掉,这个操作相对繁琐,每个版本都需要替换,升级不易,目前AMD处理器黑苹果使用替换内核不太一样,它是将内核做了修改,让macOS也能识别Ryzen处理器,本质上还需要Clover引导,所以个人不是很推荐Ryzen,因为这不够原生,当然你只是想玩玩另说。二、启动器:大神开发出来第三方启动器,让UEFI先启动这个第三方启动器,然后第三方启动器再引导macOS,并且在启动过程中提供各类参数、数据、跳过验证等等。
目前最主流的是UEFI+Clover,首先最近五六年的主板都是UEFI,其次Clover发展的最快最好,支持最完善,生态最优。很多人可能会问我BIOS+Clover可以不,可以,但是我这里不讲,需要请自行研究。
还有一些奇怪的引导方式,例如Ozmosis等属于修改主板UEFI,让他能兼容macOS,并且提供需要的数据等等,但是个人不是很喜欢,首先Ozmosis发展的并不是特别好,仍然比较小众,维护者少,其次每次修改都需要刷写BIOS,大哥!ROM乱刷保不准哪天出事儿了哭都来不及,要用编程器救砖了,而且刷BIOS这个也太麻烦了,你刷个一次两次可以,刷N次就太累了,当然某些主板可以玩玩,比如有现成long release support的主板,例如我手头有一块技嘉Z97N-WIFI貌似是有人在维护的,总之不推荐。
Clover Bootloader
总结一下,这里使用的UEFI+Clover引导macOS实际上是每次主板启动,都会引导硬盘EFI分区中的Clover,然后再由定制的Clover来引导macOS,Clover的功能非常强大,可以加载各种定制EFI文件,还可以提供对NVME支持,所以之前X99鸡血驱动有些方法就是使用Clover来加载,还有一些老主板引导NVME也使用了Clover。你完全可以把Clover理解为一个安装在硬盘上的Bootloader。
黑苹果安装大致流程解释
假设有一台空机器,我们要在上面安装macOS,那么我们首先需要在macOS下制作一个macOS安装U盘,这就是为什么我们在第一篇中写的是VMware安装macOS,我们可以借此创建一个包含macOS安装文件的U盘,接下来我们需要在U盘的EFI分区中安装Clover引导,这样我们在机器上插入U盘,UEFI就会引导U盘EFI分区的Clover,我们再借助Clover进入macOS安装环境。
这里最大的难点就在于如何配置Clover引导,Clover配置选项繁多,功能定义查找不清,我们将在下一篇文章中详细讲解,总之,只要能设置好Clover引导,我们就能顺利进入macOS安装界面,一步步安装macOS。所以经常你能在论坛上看到有人伸手要EFI,只要配置类似,可能就能顺利安装。
在安装完macOS后,我们需要把U盘的Clover文件放到硬盘的EFI分区中,然后对Clover进行进一步的设置,因为在安装的时候,我无所谓声卡网卡显卡是否正常驱动,甚至无所谓USB蓝牙等等,我只要安装完就行。但在安装完后,为了完美运行,我们就需要慢慢调试差错,修改Clover并加入Kexts让声卡显卡网卡工作,内建USB无线蓝牙,添加DSDT/SSDT让CPU工作变频正常,这就非常考验黑苹果的功底了,我们将在后面慢慢讲解。
结尾
最后要说一下,黑苹果真的很累很麻烦,而且黑苹果失败很多时候你是一头雾水,不知道哪里出错,要翻很多资料甚至很久之后你才会明白,而且有时候你明白了也没办法修补,因为毕竟我们能力有限,自己也不可能写驱动或者修改Clover,所以黑苹果且黑且珍惜,如果失败了也不要沮丧,这就是图一乐子,倘若你没有黑果基础,又在开始看之前就抱着一定要黑成功的打算,那我劝你还是早早退坑,买一台MacBook Pro,省下来的时间去赚钱说不定连十台Macbook都赚回来了。