xc233 发表于 2019-1-14 19:27

黑苹果笔记本电池型号信息修复教程

本帖最后由 xc233 于 2019-1-14 20:25 编辑

                        
   很多小伙伴发现自己笔记本安装完黑苹果后,关于本机里电池的型号信息是错误的,比如想我这台联想潮5000(下图)。制造商SMP是什么鬼?序列号和设备名称也不对,很显然这不是我们想要的结果。那么有什么方法可以修正这些错误信息呢?或者说想我们想自定义一下这些信息,当然了,解决问题的方法非常简单,我们可以通过修改DSDT或者做成hotpatch来修正信息。本文主要讲解修改DSDT,hotpatch文件我也会在文末贴上,大家可以按照模版自己制作自己的hotpatch文件。 需要准备的东西:      本机原始的DSDT文件(这里以我的DSDT为例)和 MaciASL(修改DSDT文件必备工具)下载:      准备工作完成后,下面就来修改DSDT完成教程。
首先我们查询ACPI参考手册后发现电池的型号信息是由电池Device下的_BIF(Battery Information )方法来控制的,ACPI手册描述如下图:

从图上我们可以得知:
1. _BIF方法的返回值是一个Package,里面包含了电池的信息,长度为0x0D, 即从上往下依次为0x00~0x0C。
2. Package中前面是7个Integer类型的值,双字节,大概是电池容量的单位、采用的技术、设计电压、警告容量、等等信息,而最后面的4个String类型的值看起来是我们需要的,他们依次为:
0x09:设备型号
0x0A:设备序列号
0x0B:电池类型(一般为Li电池)
0x0C:厂商信息
OK,看来我们需要修改的就是后面这四个的值,好,我们打开DSDT搜索下_BIF,发现方法最后返回的是一个PBIF,很显然PBIF是一个Package,那么我们就搜索一下PBIF,发现如图:

最后的四个值果然是一些字符串类型的电池信息,按道理说关于本机里显示的应该和这上面的一样,但是为什么显示的是SMP而不是LENOVO?我们回头再仔细看下_BIF方法,看看它动了什么手脚,如图:

果然,在返回PBIF之前,方法内部修改了PBIF中0x09~0x0C里的值,仔细看代码,好像是经过一些运算之后再把值存入PBIF对应位置里面去,0x00~0x08这些值是变化的,我们不需要理会,而对于基本的型号信息我们希望是固定的、正确的,所以我们现在就着手修改这些代码:删除这些对0x09~0x0C修改的相关代码,手动将信息存储到对应位置里去,如图:(如果你的BIF没有对0x09~0x0C做修改,那么你只需要修改PBIF里的值即可)

很好,我们修改好了对应位置的值,编译一下看有没有错误,发现没有错误,好,保存为aml,扔进ACPI/patched里,重启,再次查看电源信息,如图:
OK,信息显示正确!收工。

注意:1.1. 自己操作本机的DSDT前请备份好自己的DSDT文件!2.2. 0x0B位置的电池类型在Mac下是不显示的,所以可写可不写,不影响。3.显示的序列号部分是由 0x0C(设备名称)+0x0B(序列号)组成,如果序列号不填写,默认显示为0x0C(设备名称)+Unknown,如图    关于更多值的修改大家可自行去研究研究,有的小伙伴可能想弄成hotpatch的方式,这里也贴上hotpatch版本,大家可对照着自行编写自己的电池信息hotpatch文件,编写hotpatch的教程论坛也非常多。   SSDT-BIMY.aml:   ACPI手册:http://uefi.org/sites/default/files/resources/ACPI_6_2.pdf

xc233 发表于 2019-1-14 20:18

。。。重新传一下图片吧

chenpengstar 发表于 2019-1-14 20:36

我的电池型号那些都是对的,但容量也是显示只有3000多,这个好修正吗?

mengbanfu 发表于 2019-1-14 20:36

谢谢分享~{:5_283:}

linguicai2017 发表于 2019-1-14 20:43

xc233 发表于 2019-1-14 20:44

chenpengstar 发表于 2019-1-14 20:36 https://www.pcbeta.com/static/image/common/back.gif
我的电池型号那些都是对的,但容量也是显示只有3000多,这个好修正吗?

这个貌似是计算得出来的,不太好修正吧。有兴趣你查查ACPI手册研究下

hello_ok 发表于 2019-1-14 21:29

终于看到你的教学帖了,顶一下再慢慢看,出个USB的DSDT教程吧,正好学习学习,我的黑锅现在不能睡眠了,直接是断电

xc233 发表于 2019-1-14 21:36

hello_ok 发表于 2019-1-14 21:29 https://www.pcbeta.com/static/image/common/back.gif
终于看到你的教学帖了,顶一下再慢慢看,出个USB的DSDT教程吧,正好学习学习,我的黑锅现在不能睡眠了,直接 ...

USB 的教程用FBpatcher就行。但是我一般用定制端口的usbinjectall.kext。
直接断电什么意思

hello_ok 发表于 2019-1-14 21:57

楼主,有空时帮我修复下错误吧,有些错误能力不足,改不了,多谢了

ltsxs 发表于 2019-1-14 22:11

学习了,谢谢楼主分享

zhaiman 发表于 2019-1-14 22:38

感谢楼主分享

hello_ok 发表于 2019-1-14 22:42

xc233 发表于 2019-1-14 21:36 https://www.pcbeta.com/static/image/common/back.gif
USB 的教程用FBpatcher就行。但是我一般用定制端口的usbinjectall.kext。
直接断电什么意思

断电就像关机了一样,但是按电源键开机后引导出错,重启会直接进入win,再次重启才会出现clover的界面

hello_ok 发表于 2019-1-14 22:45

xc233 发表于 2019-1-14 21:36 https://www.pcbeta.com/static/image/common/back.gif
USB 的教程用FBpatcher就行。但是我一般用定制端口的usbinjectall.kext。
直接断电什么意思

USB按FBpatcher修正过,拔插和使用都正常的,我本本前段时间折腾HDMI音频的问题,现在HDMI输出基本正常,也有声音了,但是睡眠和触摸屏不行了

aumyshow 发表于 2019-1-15 00:30

学习了,感谢分享。

fangf2018 发表于 2019-1-15 05:20

hello_ok 发表于 2019-1-14 21:57 https://www.pcbeta.com/static/image/common/back.gif
楼主,有空时帮我修复下错误吧,有些错误能力不足,改不了,多谢了

dsdt.dsl已除错

wp128 发表于 2019-1-15 09:01

学习了,谢谢

wxaqua 发表于 2019-1-15 10:20

学习学习,看看能不能自己动手把电池改出来

5066764 发表于 2019-1-15 11:43

这个只能修改型号么?如果没有识别呢?我的笔记本不能充电

xc233 发表于 2019-1-15 12:51

5066764 发表于 2019-1-15 11:43 https://www.pcbeta.com/static/image/common/back.gif
这个只能修改型号么?如果没有识别呢?我的笔记本不能充电

那就先把电池修复好

xc233 发表于 2019-1-15 12:51

wxaqua 发表于 2019-1-15 10:20 https://www.pcbeta.com/static/image/common/back.gif
学习学习,看看能不能自己动手把电池改出来

加油,你行的
页: [1] 2 3
查看完整版本: 黑苹果笔记本电池型号信息修复教程