前言
对于一个黑苹果笔记本来说,电池的驱动是必不可少的一环,尤其如果之后要搞定睡眠的话,那前面这个电池就是必选项目。而随着各路大神的开发,现在电池的驱动也比从前容易了很多很多。这里主要用到两个工具SSDDTTime 和 ECEnabler.kext
用前者生成 SSDT -EC.aml 和重命名补丁; 用后者显示电池电量; 文件放到合适位置后配置好 config.plist 即可
驱动电池具体步骤
下载SSDTTime 并解压缩,如果是在windows下的话,运行SSDTTime.bat ,如果在 macOS 下,当然就运行 SSDTTime.command 。建议在 windows 下运行,各方面都比较容易,而且 windows 下可以用 SSDTTime 获取 DSDT 表,也方便后续的工作。
⚠️ SSDTTime 需要python,如果系统中没有 python,需要提前安装好
⚠️ 在 macOS 下 SSDTTime.command 需要先给与运行权限 ,否则会提醒没有权限,如下

解决方案其实很简单,打开terminal 工具,即终端工具,输入命令
sudo chmod +x
然后鼠标拖动 SSDTTime.command 到终端中,回车就给与了权限

双击 SSDTTime.command ,界面如下,输入 3 , 意味着 FakeEC laptop,即为笔记本创建仿冒内部控制器EC (embed controller),这个时候其会提出需要一个 DSDT 表


拖动DSDT.aml 文件到窗口内,回车

打开DDSTTime 目录下的 Results 文件夹,如下图所示,patches_OC.plist 和 SSDT-EC.aml 这两个文件需要使用。

使用 maciASL 打开 aml 文件,如下, 其实就是增加了一个名为 EC 的仿冒设备,看看就行了,这里不用改,只是满足好奇心。
DefinitionBlock ("", "SSDT", 2, "CORP ", "SsdtEC", 0x00001000)
{
External (_SB_.PCI0.LPCB, DeviceObj)
Scope (\_SB.PCI0.LPCB)
{
Device (EC)
{
Name (_HID, "ACID0001") // _HID: Hardware ID
Method (_STA, 0, NotSerialized) // _STA: Status
{
If (_OSI ("Darwin"))
{
Return (0x0F)
}
Else
{
Return (Zero)
}
}
}
}
}
将 patches_OC.plist 中的补丁内容复制到 config.plist 同样的位置,

然后在 Kernel 内核中增加ECEnabler.kext 驱动

完成效果


如果电量图标还没有出现,请在 config 中重命名 EC0 到 EC,Opencore Configurator 自带

最后如果需要 SSDTTime 文件,请关注公众号后发送 SSDTTime
如果需要 ECEnabler.kext,请关注公众号后发送 EC