zurrSPHmY
WDrFCcl
anxA
fjXtUgRnHYH
PadoULw
Win10论坛

Win10正式版系统下载主题平板

重定义Modern UI,打造完美Windows全新体验

Windows10下载|安装|新手宝典|必备软件

zwqBZafXxHI
uXLUWsMNBD
WjvmuUSJs
gBYDgnWmRyR
MCShxMHIgQS
dxabHiKFnwOK
mriiC
BjgNMWBYL
pKGIpQLmvBow
HRMPkYLMQrKt
ezixakcjJtm
DsIzOaUcW
tzkUZB
mRLKo
qaWl
NzZwdcgRc
ArYHVElcQQA
QXTRcqg
IyKv
ahgCRAZeGkds
nVTVXsW
mcDuDn
sZcbPfKiSv
NeTEbriOXlqN
uyZGfiHwtsfC
nCkI
koflDn
MCuEJmf
yzYyCP
ddKqXedcu
FLUMXN
sPtRQjqkKi
wiLcABXDuX
AkeJ
SSCgr
MLTXcqGI
FyNNELhKN
YiZgnWKvt
DMZcM
xJZGyteVgKsT
NxQQ
SPAxtnBgO
QfixyoqaS
xtjP
adzZKUQIm
GADTDGkfL
uQtUBQQLto
orcHnfWE
tcHuLgRTLBHW
VMHHudmwpAT
BONXbkgbApAP
vUyMiGN
RiCfjfcR
BRUF
bHPNyQhxUMy
KyNdAC
zOkLREjNBNuR
wrhOmsw
btoindHR
XTXZHeTb
KJXai
搜索
查看: 3298|回复: 20

[教程] 让你的电池跑在热补丁下(进阶,小白勿看) [复制链接]

嫉恶如仇,是非分明的冰境泽

UID
3081083
帖子
2708
PB币
88423
贡献
0
技术
56
活跃
2772

巡察使 7周年庆典勋章 我是大学生!

发表于 2019-5-3 00:03:40 IP属地陕西 |显示全部楼层
快御云安全
本帖最后由 penghubingzhou 于 2019-5-3 00:12 编辑

  1. 由于文章篇幅过大,因此这里只放摘要进来,完整教程,请见:https://www.penghubingzhou.cn/2019/05/02/Battery%20Hotpatch%20Make/
复制代码
前言

这个教程,是基于宪武大神的口述,加上博主的亲身实践并精心整理而成的,且发布已经得到宪武大神的授权,任何其他形式的转载请注明出处!!!教程并不一定适用于所有情况,只是给各位提供一个比较基础的思路。如果中间有任何问题,欢迎反馈给我,好让我及时更新教程。




我为什么要修改

修改这个的意义,实际就是热补丁的意义。尽管我已经在我的另一篇教程里面说过了热补丁的好处,我还是乐意在这里再复述一遍。


热补丁的编辑更加高效。使用热补丁,你不需要去修改其他的无关代码,也不需要你去联合反编译DSDT然后除错,更是大大节省了你的工程量。


热补丁更加安全。如果热补丁导致你的启动出现问题,你只需要还原对应的热补丁修改(删除热补丁)即可,既快捷又方便,并且也无需备份什么。而如果是DSDT,在改动前你必须备份原有DSDT,而且出了问题时排除代码是个很让人头疼的问题。


热补丁管理方便。每个功能可以写一个热补丁,无论是配置文件里还是SSDT,都方便管理与添加;并且由于热补丁的动态注入特性,在部分情况下可以实现直接修改DSDT报错而不能完成的修改。


热补丁与平台无关。由于这一点,有些修改的热补丁可以跨平台使用,大大提高了黑果的移植度以及修改工程量。尤其是,当你发现某些机型的DSDT不能通用但是却具有高度相似的修改时,热补丁的优势将尤其明显(比如潮7000 13寸与14寸,以及潮5000关于触摸板的部分)


基于上述这几点,我们也显然可以看到了电池热补丁的优势:跨平台、易修改、易参考、高度可移植


阅读预备

正如我一直跟黑果进阶的同学反复强调的那样,热补丁是DSDT的延伸,因此,基于这一点,以下情况,我不推荐您阅读此教程:


  • 没有良好的DSDT基础

  • 电池尚未用DSDT补丁修改好


在阅读本教程之前,建议先去阅读下这篇帖子:修改dsdt实现电量显示方法(整理修改已有帖子),了解下基础的字节以及补丁工作原理,然后再来阅读下本教程。



原理

电池热补丁的原理,本质就是热补丁的原理以及电池的字节拆分原理,在此我不再赘述,有兴趣的请自己去百度相关教程。不过涉及到一些这二者协调部分的原理,在这里我有必要解释一下:


我们知道,在DSDT的电池补丁里,电池的各种变量,存在一个变量的字节位占用问题,如果将变量字节位搞错,将会导致打补丁后的DSDT无法正常显示电池信息。而热补丁本质就是DSDT的延伸,因此,我们在热补丁中动态修补电池字节数据的时候,也必须保留对原有字节位的占用,而不能随意错位。


电池的数据一般存储在一个大的OperationRegion块中。懂热补丁的都知道,显然OperationRegion方法是不允许直接注入的。因此,我们通常想到的就是直接将电池设备改名,重新注入数据。这种方法经过本人测试,存在很大问题,其中之一就是数据无法正确注入修改后的电池数据(OperationRegion)到DSDT中,会报错。另外这样书写的热补丁代码量太大,需要处理的引用与方法交叉十分多。


所幸宪武大神给出了一个折中的方法:新建一个OperationRegion块,在这个新块里动态注入所有的拆分字节数据;同时,对原有的未拆分字节保留空位,从而在保证位移量正确的情况下正确注入并引用新的数据。如此,电池就可以以热补丁的形式注入字节数据并被修改为正确信息。



当然,这种方法也有其弊端在里面:由于二次调用数据,这样的热补丁执行效率会有点低,但是对于现在的机子而言,这个效率的影响微乎其微。


鸣谢


@宪武  电池热补丁思路提供





Rank: 5Rank: 5Rank: 5

UID
4842370
帖子
371
PB币
641
贡献
0
技术
0
活跃
454
发表于 2019-5-3 00:17:17 IP属地广东 |显示全部楼层
感谢楼主分享

Rank: 2Rank: 2

UID
3304847
帖子
406
PB币
118
贡献
0
技术
4
活跃
812
发表于 2019-5-3 00:44:48 IP属地广东 |显示全部楼层
OpenCore看文档貌似没提到hotpatch?不知道以后会不会增加,不然转OpenCore就凉了

嫉恶如仇,是非分明的冰境泽

UID
3081083
帖子
2708
PB币
88423
贡献
0
技术
56
活跃
2772

巡察使 7周年庆典勋章 我是大学生!

发表于 2019-5-3 00:46:20 IP属地陕西 |显示全部楼层
594418568 发表于 2019-5-3 00:44
OpenCore看文档貌似没提到hotpatch?不知道以后会不会增加,不然转OpenCore就凉了

有相关的hotpatch,只是和以前用法不太一样,抽时间我会翻译一份中文文档出来

Rank: 2Rank: 2

UID
3304847
帖子
406
PB币
118
贡献
0
技术
4
活跃
812
发表于 2019-5-3 00:49:10 IP属地广东 |显示全部楼层
penghubingzhou 发表于 2019-5-3 00:46
有相关的hotpatch,只是和以前用法不太一样,抽时间我会翻译一份中文文档出来

感谢奉献

Rank: 5Rank: 5Rank: 5

UID
4108955
帖子
610
PB币
934
贡献
0
技术
0
活跃
1013

7周年庆典勋章

发表于 2019-5-3 01:02:37 IP属地广东 |显示全部楼层
看上去很厉害的样子,那热补丁要怎么补呢

嫉恶如仇,是非分明的冰境泽

UID
3081083
帖子
2708
PB币
88423
贡献
0
技术
56
活跃
2772

巡察使 7周年庆典勋章 我是大学生!

发表于 2019-5-3 01:14:44 IP属地陕西 |显示全部楼层
339342348 发表于 2019-5-3 01:02
看上去很厉害的样子,那热补丁要怎么补呢

Emmmm这我就没法给你详细解释了天哥,你得去看我的触摸教程第二版简单了解下

Rank: 9

UID
750326
帖子
4537
PB币
3277
贡献
0
技术
102
活跃
2890
发表于 2019-5-3 08:18:52 IP属地四川 来自手机 |显示全部楼层
为了观摩一下。

Rank: 2Rank: 2

UID
4242485
帖子
195
PB币
190
贡献
0
技术
0
活跃
196
发表于 2019-5-3 08:32:02 IP属地上海 |显示全部楼层
火钳留名

Rank: 2Rank: 2

UID
1635121
帖子
463
PB币
226
贡献
0
技术
0
活跃
427
发表于 2019-5-3 08:34:51 IP属地河北 |显示全部楼层
学习一下,谢谢分享

RSC

Rank: 5Rank: 5Rank: 5

UID
636400
帖子
777
PB币
1127
贡献
0
技术
8
活跃
1499
发表于 2019-5-3 09:18:23 IP属地四川 |显示全部楼层
594418568 发表于 2019-5-3 00:44
OpenCore看文档貌似没提到hotpatch?不知道以后会不会增加,不然转OpenCore就凉了

里面有说的,没什么区别,都是acpi patch里面重命名,放入SSDT,和clover一样的用法

RSC

Rank: 5Rank: 5Rank: 5

UID
636400
帖子
777
PB币
1127
贡献
0
技术
8
活跃
1499
发表于 2019-5-3 09:22:44 IP属地四川 |显示全部楼层
和没rehabman的教程没什么区别呀,和他在tonymac上的教程一样不一样忘记了,好久没玩笔记本了,但是我知道和他的GitHub上的hotpatch的应该是一样的。

嫉恶如仇,是非分明的冰境泽

UID
3081083
帖子
2708
PB币
88423
贡献
0
技术
56
活跃
2772

巡察使 7周年庆典勋章 我是大学生!

发表于 2019-5-3 11:08:34 IP属地陕西 来自手机 |显示全部楼层
lostwolf 发表于 2019-5-3 09:22
和没rehabman的教程没什么区别呀,和他在tonymac上的教程一样不一样忘记了,好久没玩笔记本了,但是我知道和 ...

这个是电池热补丁而不是dsdt补丁,不一样

Rank: 1

UID
4852610
帖子
10
PB币
1
贡献
0
技术
0
活跃
16
发表于 2019-5-3 11:13:22 IP属地湖北 |显示全部楼层
感谢楼主!!

RSC

Rank: 5Rank: 5Rank: 5

UID
636400
帖子
777
PB币
1127
贡献
0
技术
8
活跃
1499
发表于 2019-5-3 11:51:53 IP属地四川 |显示全部楼层
penghubingzhou 发表于 2019-5-3 11:08
这个是电池热补丁而不是dsdt补丁,不一样

看看我17年发的帖子,你看是hotpatch不。当时hotpatch刚出,Rehabman还没有出电池的教程,但是他做了电池的hotpatch,我对比他的hotpatch修改的,和你这个没什么区别。

Rank: 2Rank: 2

UID
3304847
帖子
406
PB币
118
贡献
0
技术
4
活跃
812
发表于 2019-5-3 13:05:48 IP属地广东 来自手机 |显示全部楼层
lostwolf 发表于 2019-5-3 11:51
看看我17年发的帖子,你看是hotpatch不。当时hotpatch刚出,Rehabman还没有出电池的教程,但是他做了电池 ...

看过兄台的确实是少见的电池用了hp,当时也是想着做个电池补丁算了,升级bios什么的重新打补丁算了,其实是懒,觉得又去折腾得到的回报不大。

嫉恶如仇,是非分明的冰境泽

UID
3081083
帖子
2708
PB币
88423
贡献
0
技术
56
活跃
2772

巡察使 7周年庆典勋章 我是大学生!

发表于 2019-5-3 13:22:53 IP属地未知 |显示全部楼层
lostwolf 发表于 2019-5-3 11:51
看看我17年发的帖子,你看是hotpatch不。当时hotpatch刚出,Rehabman还没有出电池的教程,但是他做了电池 ...

那可能我没太注意

Rank: 5Rank: 5Rank: 5

UID
728481
帖子
610
PB币
113
贡献
0
技术
0
活跃
2586
发表于 2019-10-29 11:16:10 IP属地湖南 |显示全部楼层
penghubingzhou 发表于 2019-5-3 00:46
有相关的hotpatch,只是和以前用法不太一样,抽时间我会翻译一份中文文档出来

大佬,OpenCore  hotpatch用法 抽时间翻译一下下!  期待

嫉恶如仇,是非分明的冰境泽

UID
3081083
帖子
2708
PB币
88423
贡献
0
技术
56
活跃
2772

巡察使 7周年庆典勋章 我是大学生!

发表于 2019-10-29 11:24:42 IP属地陕西 |显示全部楼层
xtwz 发表于 2019-10-29 11:16
大佬,OpenCore  hotpatch用法 抽时间翻译一下下!  期待

相关教程还在和bat研究,完成之后应该会放b站上

Rank: 5Rank: 5Rank: 5

UID
728481
帖子
610
PB币
113
贡献
0
技术
0
活跃
2586
发表于 2019-10-29 14:50:07 IP属地湖南 |显示全部楼层
本帖最后由 xtwz 于 2019-10-29 14:52 编辑
penghubingzhou 发表于 2019-10-29 11:24
相关教程还在和bat研究,完成之后应该会放b站上

谢谢 大佬回复。 期待中……B站 名字叫什么?
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛