黑苹果

Posted 小猴子日常

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了黑苹果相关的知识,希望对你有一定的参考价值。

黑苹果

由于 Linux 系统下企鹅软件的糟糕体验,于是决定转战 macOS。经过一番折腾,成功将 macOS 最新版本 Catalina 10.15.5 安装到 Acer TraveMate P249 笔记本,除 WIFI 之外各项功能基本完美(由于 Apple 使用的都是 Broadcom 无线网卡,机器自带的 Intel 无线网卡无法驱动,目前已有大神移植了驱动,基本可以使用。苹果拆机卡及可以黑苹果的其他 Broadcom 卡价格被 js 炒的太高,不建议购买。如果想要使用 Airdrop、接力和随航,就必须更换无线网卡了)。

工作状态

 CPU 变频、原生电源管理 核显黑苹果 以太网黑苹果 WIFI黑苹果 蓝牙黑苹果 声卡黑苹果 触控板黑苹果 摄像头黑苹果 USB黑苹果 HDMI 输出黑苹果 关机、重启、睡眠黑苹果

桌面:

黑苹果

系统版本:

黑苹果

Apple ID:

黑苹果

App Store:

系统安装

网上教程很多,这里就不多说了,系统下载及安装推荐参考黑果小兵的教程[1]

ACPI 调整

想要在普通 PC 上运行 macOS 就需要对 ACPI 进行调整,特别是笔记本需要大量调整。具体可参考黑果小兵的补丁库 OC-little[2] 。需要了解的知识如下:

ACPI (Advanced Configuration and Power Management Interface) 高级配置和电源管理接口,是操作系统与 Bios 的中间层,提供上层操作系统对主板上设备的配置以及包含设备在内的整个系统的电源管理进行控制。Apple 对 ACPI 进行了定制,因此普通 PC 安装 macOS 后部分设备是无法识别驱动的。DSDT (Differentiated System Description Table) 差异系统描述表,是 ACPI 的一张表,包含了除基本系统以外所有不同设备的信息。DSDT 就是我们修改的主角。Clover 引导界面按 F4 键提取 PC 原始 DSDT,保存路径为EFICLOVERACPIorigin 。ASL (ACPI Source Language) ACPI 的编程语言,新版本的 ASL 语法有点像 C 语言。具体的编码规范可以参考黑果小兵补丁库 OC-little 中的总结。

操作系统补丁

操作系统补丁用于解除系统对某些部件的限制。当系统加载时,ACPI 的 _OSI 函数会接收到一个参数,不同的系统,接收的参数不同,ACPI 执行的处理也不同。当加载 macOS 时,_OSI 函数接受的参数 ACPI 无法识别,于是OSYS 被赋予了默认值,而这个默认值通常小于 Win8 要求的值,导致 I2C 设备(触控板、触摸屏等设备)无法工作(Win8 开始才支持 I2C 设备)。

补丁列表:

SSDT-XOSI.aml

设备仿冒补丁

EC 设备仿冒补丁

EC (embeded Controller) 嵌入式控制器,是笔记本电脑特有的设备,担负着笔记本内置键盘、触摸板、电池智能充放电管理以及温度监控等任务。如果笔记本原始 DSDT 的中的 EC 设备名称不为 EC ,就需要进行仿冒。而台式机则需要禁用 EC 设备。

补丁列表:

SSDT-EC.aml

环境光传感器仿冒补丁

从 macOS Catalina 开始,笔记本设备需要仿冒环境光传感器 ALS0 来实现屏幕亮度保存。

补丁列表:

SSDT-ALS0.aml

注入设备

注入 x86

注入 X86,实现 CPU 原生电源管理。

补丁列表:

SSDT-PLUG-_PR.CPU0.aml

亮度调节补丁

注入 PNLF,实现屏幕亮度调节。同时需搭配环境光传感器仿冒补丁(必须使用,否则亮度调节之后无法保存)、亮度调节快捷键映射补丁,才能完美使用。

补丁列表:

SSDT-PNLF.aml

二进制更名与预置变量

禁用 AWAC 启用 RTC

较新的主板启用了 AWAC system clock 功能,而 macOS 无法与 AWAC system clock 进行通信,因此我们需要强制使用旧版 Legacy RTC clock。经过尝试发现,只需要禁用 AWAC 就会自动启用 RTC。

补丁列表:

SSDT-RTC_Y-AWAC_N.aml

键盘按键映射补丁

由于普通 PC 键盘键位与 Apple 键盘不一样,我们需要进行键盘按键映射调整。

补丁列表:

SSDT-RMCF-PS2Map.aml (屏蔽F12、PrtSc SysRq、Pause Break键)SSDT-BKeyQ8EQ8F.aml (亮度快捷键映射调整)

电池补丁

为了让 macOS 读取笔记本电池电量,需要对电池进行调整。幸运的是我的本子自动识别了电池电量,因此没有打补丁。

0D6D补丁

设备的_PRW 函数定义了设备的唤醒方法。其 Return 2 个或者 2 个以上字节组成的数据包。有这么一些设备,由于 _PRW 和 macOS 发生了冲突从而导致机器刚刚睡眠就被立即唤醒。为了解决问题,必须对这些设备实施补丁。这些设备 _PRW 函数 Return 的第 1 个字节是 0D 或者 6D。因此,这种补丁被称为 0D/6D 补丁,也叫秒醒补丁,也叫睡了即醒补丁。搜索原始 DSDT 发现电脑 USB 设备的 _PRW 存在问题,需要调整。

补丁列表:

SSDT-GPRW.aml

I2C设备补丁

为了让 macOS 识别并驱动触控板(只有部分老设备的触控板为 PS2 协议),需要对触控板进行调整。这是我遇到的最难的补丁,没有之一,困扰了我至少一周时间。具体教程参见 enghubingzhou 的博客[3]

补丁列表:

SSDT-GPI0-GPEN.aml(打开 GPI 中断)SSDT-TPDE.aml

驱动

需要额外安装的驱动:

序号 驱动 说明
1 Lilu 核心驱动
2 WhateverGreen 显卡驱动
3 RealtekRTL8111 以太网卡驱动
4 VirtualSMC 虚拟 SMC 设备驱动
5 USBInjectAll、USBPower USB 驱动
6 SMCBatteryManager、SMCLightSensor、SMCProcessor、SMCSuperIO 各类传感器驱动
7 VoodooPS2Controller 键盘驱动
8 VoodooI2C、VoodooI2CHID 触控板驱动
9 AppleALC 声卡驱动
10
IntelBluetoothFirmware、IntelBluetoothInjector 蓝牙驱动
11 itlwm 无线网卡驱动

总结

macOS 也是基于 Unix 的,跟 Linux 算是同宗同源吧,用惯了 Linux 很快也就上手了 macOS。不得不说 macOS 的生态比 Linux 好太多了。最后给大家献上调试好的 EFI[4] 。

References

[1] 黑果小兵的教程: https://blog.daliansky.net/
[2] OC-little: https://github.com/daliansky/OC-little/
[3] enghubingzhou 的博客: https://www.penghubingzhou.cn/tags/I2C/
[4] EFI: https://github.com/217heidai/Acer_TraveMate_P249_hackintosh

以上是关于黑苹果的主要内容,如果未能解决你的问题,请参考以下文章

黑苹果安装

黑苹果输入-v -f卡住求解

13代英特尔出来黑苹果的路还有多久

x1 2015carbon 黑苹果安装进度条黑屏

这个是虚拟机安装的黑苹果,然后开机这个提示怎么回事。谢谢大家了!

电脑安装黑苹果出现问题:Thread 0 crashed.咋回事呀?