黑苹果EFI定制——Airbook 升级OC-0.7

3,378 阅读7分钟

概述

本文主要记录这几天研究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

  1. 验证config的网站:opencore.slowgeek.com/

注意:这个网站的oc只到了0.6.6,不支持oc0.7 有一些他报缺少的属性或者错误,可能是新版本中已经去掉了,所以不用理会

  1. 使用occ编辑工具:这个工具支持最新的oc

如果全部都显示对钩的话,已经基本可以引导进入系统了

完善细节

虽然可以引导进入系统,有些功能还是需要完善的,开始进入完善阶段,逐渐向完美度99%进发

定制usb

使用hackintool工具,点击usb

保留绿色的部分,其余删除,点击导出,桌面生成SSDT-UIAC.amlSSDT-EC-USBX.aml,USBports.kext,将aml文件放到oc/acpi,kext文件放到kexts目录

显卡id注入

这个环节就是需要尝试,我的显卡是hd520,但是文档推荐注入id有两个,我的还是笔记本,所以自然就会选择第一个00001619

链接地址:https://dortania.github.io/OpenCore-Install-Guide/config-laptop.plist/skylake.html#deviceproperties

但是经过测试,如果注入第一个在睡眠唤醒之后会出现屏幕闪屏,尝试第二个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 to ZPTS(1,N)
  • _WAK to ZWAK(1,N)
  • _PTS to ZPTS(1,S)
  • _WAK to ZWAK(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卡识别

成果演示

Airbook 基于OC0.7定制EFI 黑苹果完美度展示

EFI下载地址

Airbook oc版EFI下载

耗时

  • 照着官网定制config文件花了一天 (0~95%)
  • 后续各种完善 花了一周~~~~~ (95%~99%)

参考文档:

结语

在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