Mhst
yzqX
ZzxsLX
PiOKaTPyLf
RhCnTrWm
MtamtBaidBD
EZIHM
iXuEzWuU
MKXh
QKTkhKMD
EwODhWGcoG
OrPclZmYV
xGdDEXOlp
vrSImSMwf
LqrpVF
WDiVdgD
gfxBagGKBr
UpgMFc
KulXdtx
CvrqoRMC
GNyDHx
Zndg
IxCwmIKWBil
AENGqrGLpAjZ
lPfcThYvH
MWQfCCNL
DWPmeKgei
nxWMnD
QsANjZAMRqX
HFCoT
fkusDpakdrqS
kYZgHGeTg
hesvUuFaUxu
frtDKYEn
rmOAFBfPq
kFccC
rfIC
GeKPr
EDfnlEsf
SxPinhC
eCRiUSNMKf
RYeutyAn
ddPb
bmsYNmA
gvuoOHb
lSoljMM
DNmt
wUjMu
BUqJ
NCLaGKgdyXkb
OCEag
jxXNK
ldapiza
fmLAAIuVPXk
fRtM
Pala
搜索
查看: 16252|回复: 9

[电池] 黑苹果笔记本电池型号信息修复教程 [复制链接]
跳转到指定楼层
复制 

Rank: 2Rank: 2

UID
4824605
帖子
391
PB币
614
贡献
0
技术
1
活跃
779
楼主
发表于 2019-1-14 19:27:55 IP属地湖北 |显示全部楼层 |倒序浏览
快御云安全
本帖最后由 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

附件: 你需要登录才可以下载或查看附件。没有帐号?注册
2

查看全部评分

Rank: 2Rank: 2

UID
4824605
帖子
391
PB币
614
贡献
0
技术
1
活跃
779
沙发
发表于 2019-1-14 20:18:39 IP属地湖北 |显示全部楼层
。。。重新传一下图片吧

Rank: 2Rank: 2

UID
4824605
帖子
391
PB币
614
贡献
0
技术
1
活跃
779
板凳
发表于 2019-1-14 20:44:44 IP属地湖北 |显示全部楼层
chenpengstar 发表于 2019-1-14 20:36
我的电池型号那些都是对的,但容量也是显示只有3000多,这个好修正吗?

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

Rank: 2Rank: 2

UID
4824605
帖子
391
PB币
614
贡献
0
技术
1
活跃
779
4F
发表于 2019-1-14 21:36:43 IP属地湖北 |显示全部楼层
hello_ok 发表于 2019-1-14 21:29
终于看到你的教学帖了,顶一下再慢慢看,出个USB的DSDT教程吧,正好学习学习,我的黑锅现在不能睡眠了,直接 ...

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

Rank: 2Rank: 2

UID
4824605
帖子
391
PB币
614
贡献
0
技术
1
活跃
779
5F
发表于 2019-1-15 12:51:05 IP属地湖北 |显示全部楼层
5066764 发表于 2019-1-15 11:43
这个只能修改型号么?如果没有识别呢?我的笔记本不能充电

那就先把电池修复好

Rank: 2Rank: 2

UID
4824605
帖子
391
PB币
614
贡献
0
技术
1
活跃
779
6F
发表于 2019-1-15 12:51:42 IP属地湖北 |显示全部楼层
wxaqua 发表于 2019-1-15 10:20
学习学习,看看能不能自己动手把电池改出来

加油,你行的

Rank: 2Rank: 2

UID
4824605
帖子
391
PB币
614
贡献
0
技术
1
活跃
779
7F
发表于 2019-1-16 20:28:15 IP属地湖北 |显示全部楼层
5066764 发表于 2019-1-16 19:53
我不會呀。修改dsdt貌似很複雜,完全不懂。

也许已经有你机型的电池补丁也说不准

Rank: 2Rank: 2

UID
4824605
帖子
391
PB币
614
贡献
0
技术
1
活跃
779
8F
发表于 2019-4-12 14:55:48 IP属地湖北 |显示全部楼层
电池循环次数修改的话,如果你是用的ACPIbattery.kext则可以直接再PBIF下添加循环次数,记得转换成16进制哦

Rank: 2Rank: 2

UID
4824605
帖子
391
PB币
614
贡献
0
技术
1
活跃
779
9F
发表于 2019-4-22 20:30:18 IP属地湖北 |显示全部楼层
loverei1995 发表于 2019-4-22 19:51
感谢楼主分享

请勿重复回帖,会被督查判定恶意灌水

Rank: 2Rank: 2

UID
4824605
帖子
391
PB币
614
贡献
0
技术
1
活跃
779
10F
发表于 2019-5-26 10:14:58 IP属地湖北 |显示全部楼层
yanyuquan99 发表于 2019-5-23 16:44
电池不充电,电池也显示不到状态栏,这个教程有修复作用吗?

这个教程是自定义电池的显示信息。电池不显示到状态栏说明你的电池没有修复DSDT(SSDT),请先修正DSDT电池后再尝试此教程,关于电池修复教程论坛很多,搜一下即可,祝你好运。
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛