概述
本文主要记录这几天研究oc引导所遇到的问题,以及分享EFI链接
晒个笔记本全身照
为什么买它
因为他长得和苹果很像,应该至今为止也是最像苹果的,当初买它就是为了装个苹果系统,因为他感觉就是仿照macbookAir做的,但是性能和屏幕都要比air好很多,屏幕是2560x1440的,并且色彩很饱满,当初感觉4000多还是很有性价比的
机器配置
- cpu:intel i5 6200u
- 内存:16g镁光单条
- 硬盘:256g
- wifi: 博通dw1560
- 屏幕: 夏普屏 2560x1440
为什么自己研究黑苹果
虽然我已经购入了白苹果,但是一直没有放弃对于黑苹果的折腾,可能一方面是为了玩,一方面是对于完美的不懈追求吧。开始总是想省事,直接tb买个安装服务,或者网上找现成的,可惜我的电脑太非主流,小公司已经倒闭了,没有多少人黑它,网上的服务不太靠谱,技术人员就连怎么用u盘引导进入系统都不知道,果断退钱,只能自己搞了,无奈啊~
为什么升级OC
之前用的clover,感觉弄得有些地方不是很完善,有时候会出现睡眠直接重启了,亮度也不能自动保存,总是最大亮度。心里总是不舒服,看着最近oc发布0.7,心里觉得基本稳定了,是时候升级到oc了,虽然没有搞过,好在有文档,撸起袖子开干!
配置OC
参照官网配置 config文件
总的来说这个配置不麻烦,照着oc官方文档的流程一步步配置就好了 我的是skylake版笔记本的cpu,所以文档就选择下面这个
文档地址:官方文档安装指引
文档全是英文的,但是很好理解,基本四级水平就足够了 需要准备的工具是propTree,这个是个python写的工具,很直接,照着文档的标识去配就好了,所有文档中所需要的SSDT我都先选用人家预先编译好的,就是那个easyway的方式
验证配置好的 config
- 验证config的网站:opencore.slowgeek.com/
注意:这个网站的oc只到了0.6.6,不支持oc0.7 有一些他报缺少的属性或者错误,可能是新版本中已经去掉了,所以不用理会
- 使用occ编辑工具:这个工具支持最新的oc
如果全部都显示对钩的话,已经基本可以引导进入系统了
完善细节
虽然可以引导进入系统,有些功能还是需要完善的,开始进入完善阶段,逐渐向完美度99%进发
定制usb
使用hackintool工具,点击usb
保留绿色的部分,其余删除,点击导出,桌面生成SSDT-UIAC.aml
,SSDT-EC-USBX.aml,USBports.kext
,将aml文件放到oc/acpi,kext文件放到kexts目录
显卡id注入
这个环节就是需要尝试,我的显卡是hd520,但是文档推荐注入id有两个,我的还是笔记本,所以自然就会选择第一个00001619
但是经过测试,如果注入第一个在睡眠唤醒之后会出现屏幕闪屏,尝试第二个02001619
就不会出现,即使文档上写着这个id适用于nuc,但是没有办法就这个好用
内外放音量调节
注入alcid,也就是音频接口的id,注入的地方如下图
这个id的值也是需要挨个尝试才最终确定的,从1开始试, 如果注入的不正确有可能出现奇怪的问题,比如之前我注入了一个5,就会导致开始外放可以,但是插上耳机,再拔掉,外放就放不了了
我的音频型号是alc269vb
所以找到对应的id是这些,从这里开头一个个尝试
alcid查询地址:github.com/acidanthera…
电池驱动
在clover的时代,需要通过拆分字节实现,修改ssdt或者dsdt,但是现在有一种更加简单的方式可以实现,就是ECEnabler.kext+ACPIBatteryManager.kext + LIDPatch.aml
- ECEnabler.kext:它允许读取长度超过 1 个字节(8bit)的嵌入式控制器(Embedded Controller)字段,从而大大减少了工作电池状态所需的 ACPI 修改量(如果需要)
- ACPIBatteryManager.kext:负责显示电池信息,经过测试这个驱动并不是最新的就最好,我尝试过最新的,结果电池不会显示闪电符号,所以我选择的版本是1.81.4,这个经过测试是刚刚好完美展示电池信息,挨个版本尝试,也是个体力活
- LIDpatch.aml: 主要解决了插拔电池可以立即生效的问题
appleALC原生电源管理
加载原生电源管理,主要为了解决睡眠不唤醒, 查看是否开启:
开启方法:www.bilibili.com/read/cv6353…
解决睡眠睡死问题和睡了就醒
经过测试,短时间睡眠正常,但是长时间休眠就会出现睡死的情况,上述方法经过测试还是没能管用,尝试使用新的方法解决,我的解决方案是:
hibernateFixup.kext + RTCMemoryFixup + SSDT-PTSWAKTTS.aml + SSDT-GPRW.aml
- SSDT-PTSWAKTTS.aml:这个是解决睡眠综合补丁,要配合重命名使用,这个有四种重命名分别是:
_PTS
toZPTS(1,N)
_WAK
toZWAK(1,N)
_PTS
toZPTS(1,S)
_WAK
toZWAK(1,S)
我们要到DSDT的描述文件中查找_PTS
和_WAK
这俩关键字,看看方法对应的参数名是N还是S,选择对应的重命名, 更名如下:
- SSDT-GPRW.aml:这个补丁解决睡眠就醒的问题,要配合重命名使用
开始我直接用了oc-little这个库提供的重命名plist,应该是开始没有写对,acpi总是有报错,没有成功加载补丁,后来经过合适,是查找值和替换值写错了,导致没有更名成功,还是需要自己手动进行转换
手动转换方式:打开occ进制转换 文本输入要替换的文本,转换成16进制就可以了
定制主题
经过如上定制可以基本完美运行,就是界面太难看,全是跑代码,开始美化
教程:
注意:
-
默认开机的放大比例是01,对于高分屏幕存在黑边的情况,需要在如下的位置改成02即可
Config.plist → NVRAM → 4D1EDE05-38C7-4A6A-9CC6-4BCCA8B38C14 → UIScale → 02
-
定制背景则涉及到使用Icnpack-Builder这个工具,可以将png转换为icns的图标文件,我直接转换了一个4k的图片
-
Config.plist → NVRAM → 7C436110-AB2A-4BBB-A880-FE41995C9F82 → boot-args → 去掉-v跑码
定制完的效果:
待完善
- 盒盖睡眠和开盖唤醒
- sd卡识别
成果演示
EFI下载地址
耗时
- 照着官网定制config文件花了一天 (0~95%)
- 后续各种完善 花了一周~~~~~ (95%~99%)
参考文档:
- opencore官方文档 安装指引
- opencore 官方下载链接
- oc-little补丁库
- xjn大佬的blog
- 黑果小兵-精解opencore
- 黑苹果星球--下载驱动,软件和各种入门教程文档很齐全
结语
在arm兴起的年代,黑苹果逐渐走向没落,且黑且珍惜,这是一个耗时费力又折磨人的事儿,没有极高的耐心和兴趣不建议折腾了,其实有时候即使折腾的很完美不见得硬件就ok,比如我之前折腾的台式机,8100处理器,显卡uhd630,安装的bigsur,外接个4k,神奇效果就掉帧,换回10.15就丝滑顺畅。越升级越卡,和ios一个样,我的黑苹果台式机停在10.15.7养老,笔记本就停在10.14.6养老,ios就停在14.4.2养老。欢迎大佬给我指点一下,盒盖睡眠应该怎么搞,打什么补丁好使。还有sd卡怎么才能识别,网上的两个sd卡驱动试过不管用。
更新
2020-08-24:
- 可无脑平滑升级到bigsur 11.5.2 2021-08-11:
- 更新支持最新bigsur 11.5.1系统,oc升级到 0.7.2 稳定版
- 睡眠完美了,盒盖睡眠和随航都可以,电池也完美驱动~
- 下载地址: bigsur 11.5.1版本EFI