去落格博客阅读完整排版的攒一台用来做开发的 黑苹果 hackintosh
给 iPhone 等平台开发应用,总是需要用到一台苹果电脑的,或者 iMac 或者 rmbp,就算是 mac mini 也行。不过,当开发的项目比较大了,需要的东西多了,比如我吧,虽然做一个小小的输入法,但跑词库跑算法什么的,一趟下来就得一天,搞不好还崩溃重来。每当 Xcode 不争气动不动就白板的时候,我就想——来一台 mac pro 多好。
不过,这个价格有点呵呵。
终于,在 CycleUser 的鼓动和诱惑下,我用他的配方撸了一台黑苹果。
价格一套下来是 8000 rmb,作为对比,我这两年一直用的 rmbp 买的时候是 11000 rmb,这还是算上学生优惠的价格,当然了,买了 apple care。
那么再说说配置,是 64GB ddr4,256 SSD,i7 6700k.
这可是迄今为止我用过的内存最大的电脑了呢!
另外,我的主板是 技嘉 GA-Z170X-UD3 。
值得一提的是,我 ssd 用了 NVMe,所以要做额外的配置才能让 osx 识别出来。
在开始之前,我要先说一下,直到目前为止,不能使用的功能有:
好了,接下来,我们就先来准备安装盘。
你需要一块容量大于 8GB 的 U盘 来制作黑苹果的系统安装盘,我的建议是用一个旧的老 U盘,因为将来你很有可能会用这个 U盘来救急,所以这个U盘一旦做好了,是不应该在用于其他用途的。最好是 USB 2.0,这样你不心疼。我会告诉你反正安装的时候也要插在 USB 2.0 插口上吗?
这里先按照 tonyX86 的教程来走,把启动盘做好。注意先把自己系统语言改为英文,在“系统偏好设置”,的第一行里,“语言与地区”中改,改完会提示你重启,这里不用重启,U盘做好之后改回来就可以了。
这时候你应该已经有了一个能够引导的启动盘,现在我们再来手动给它添加 NVMe 的驱动。
参考大神的帖子:http://www.insanelymac.com/forum/topic/312803-patch-for-using-nvme-under-macos-sierra-is-ready/
我们在 EFI 分区里找到 config.plist 编辑它,记得不要用 Xcode 编辑,用一个文本文档编辑器来编辑即可,找到
<key>KernelAndKextPatches</key>这个字段,在这个字段里,你应该能找到一个
<key>KextsToPatch</key>字段,这里边是一个
<array> </array>数组,那么里边每一个元素是一个
<dict></dict>,我们就把下面的内容插入到这个
<array> </array>里即可,注意要在上一个
</dict>之后,不能把元素嵌套了。
<dict> <key>Comment</key> <string>IONVMeFamily IONameMatch</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>InfoPlistPatch</key> <true/> <key>Find</key> <data>PHN0cmluZz5wY2kxNDRkLGE4MDQ8L3N0cmluZz4=</data> <key>Replace</key> <data>PHN0cmluZz5wY2kxNDRkLGE4MDI8L3N0cmluZz4=</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#1</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>ibPoAgAAweAMBQAQAACJgw==</data> <key>Replace</key> <data>ibPoAgAAweAJBQAQAACJgw==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#2</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>D7aMiIIAAACD+QwPhTIBAA==</data> <key>Replace</key> <data>D7aMiIIAAACD+QkPhTIBAA==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#3</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>AMeDpAAAAAAQAABIi0gISA==</data> <key>Replace</key> <data>AMeDpAAAAAACAABIi0gISA==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#4</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>SYnGTYX2dGFBwecMSWP/vg==</data> <key>Replace</key> <data>SYnGTYX2dGFBwecJSWP/vg==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#5</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>hv8PAABIwegMD7cPgeH/Dw==</data> <key>Replace</key> <data>hv8PAABIwegJD7cPgeH/Dw==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#6_7</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>icGB4f8PAABIAdFIgfn/DwAAdzs=</data> <key>Replace</key> <data>icGB4f8BAABIAdFIgfn/AQAAdzs=</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#8</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>SYHF/w8AAEnB7QxJiwQkSA==</data> <key>Replace</key> <data>SYHF/w8AAEnB7QlJiwQkSA==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#9_10</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>BgIAAEyNuAAQAABMiflIgeEA8P//SYmGGgEAAEmJjiIBAABBvAAQAABJKfQ=</data> <key>Replace</key> <data>BgIAAEyNuAACAABMiflIgeEA8P//SYmGGgEAAEmJjiIBAABBvAACAABJKfQ=</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#11</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>AABJiY4iAQAAugAQAABIKQ==</data> <key>Replace</key> <data>AABJiY4iAQAAugACAABIKQ==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#12</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>yAAAAEkp17gAEAAATYskJA==</data> <key>Replace</key> <data>yAAAAEkp17gAAgAATYskJA==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#13</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>4b+AQBUGTYnWugAQAABFMQ==</data> <key>Replace</key> <data>4b+AQBUGTYnWugACAABFMQ==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#14</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>iWTY+EmBxAAQAABJgccA8A==</data> <key>Replace</key> <data>iWTY+EmBxAACAABJgccA8A==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#15</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>Bf8PAABIwegMZvfB/w8PlQ==</data> <key>Replace</key> <data>Bf8PAABIwegJZvfB/w8PlQ==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#16</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>weIIQQ+2wcHgDEQJ0EQJwA==</data> <key>Replace</key> <data>weIIQQ+2wcHgCUQJ0EQJwA==</data> </dict> <dict> <key>Comment</key> <string>IONVMeFamily Pike R. Alpha Patch#17</string> <key>Disabled</key> <false/> <key>Name</key> <string>IONVMeFamily</string> <key>Find</key> <data>RYTJD5XAD7bAweAMRAnYRA==</data> <key>Replace</key> <data>RYTJD5XAD7bAweAJRAnYRA==</data> </dict>
然后,拷贝驱动文件到
EFI -> CLOVER -> kexts -> Other目录中。
这下你就可以用它来引导启动黑苹果了。
要调整主板的配置来更好的兼容 osx,如果你设置不好,那么肯定是不能成功引导的(最好用默认的英文,不然你可能找不对对应的开关):
这里我用的是 CPU 集成显卡,所以 Internal Graphics 要启用,不能关闭,关了就没了。还有不能选择为 auto,选择为 auto 也无法点亮的哦!
这是我遇到的第一个坑
设置好了之后你就可以进入安装界面了,开开心心地安装吧!装好之后会重启,不要拔下 U盘,引导还得靠它,回到四叶草的启动界面后选择为你刚装好的硬盘启动,继续完成 10.12.4 的安装过程。
安装完成后,你就可以把U盘里的 EFI 分区整体复制到硬盘的EFI分区了,你可能需要这个工具来挂载 EFI 分区。
复制过去之后,记得删除硬盘 EFI 分区中
EFI -> CLOVER -> kexts -> Other目录下的那个驱动文件,还记得文件名吗?叫
IONVMeFamily.kext,它已经被安装到你的系统中了,就不需要这里再有了。
一切都完成后,就可以开始打驱动了,这里要注意,先确定你的电脑插着网线,或者如果驱动没有,要先调整时间,不然驱动验证不通过是无法打驱动的!
这是我遇到的第二个坑
用事先你根据教程放入U盘备用的 MultiBeast 来安装驱动,不要选择快速开始模式:
这样选择 Build -> Install 即可。
安装完成后你就可以拔掉 U盘 启动进系统了!
进入系统后,使用 clover configurator,先挂载你硬盘的 EFI 分区,然后用它打开你 EFI 分区里的 config.plist
在左侧选择“SMBIOS”,在右侧点那个魔法棒,选择生成你的系统参数,注意不要选择 Mac Pro 系列,选择 iMac,比如我就是 iMac 17,1,因为这个的 CPU 和我的是一样的。
然后在右侧有两个“shake”按钮,多按几次,生成一个随机的值用来生成你的序列号。
然后点 ok 即可。
配置好后,你还需要添加内存信息,修改为你内存的真实数据(不带星号的字段可以留空),不然内存识别会有问题。都设置完成后关闭退出。
重启后,你的内存和CPU识别应该就也正常了。
最后,值得一提的是,音响插后面要插黑孔,也就是我们平时用的后置音响的那个插孔,输出选择为“线路输出”,插机箱前插口的话,则输出选为内置音箱。虽然有点麻烦,但至少是能用的。如果你使用外置声卡,那就随意了。
另:
网上盛传的两个修复重启问题的驱动(OpenHaltRestart.kext或EvOreboot.kext),都不要使用,不然就祈祷你没有格式化那个启动U盘吧。
至此,黑果顺利安装完成,后续如果有什么其他进展,我会继续更新这篇文章。 :)
祝开发愉快没有bug。