uveiyAA
gVQvN
QUMywsggnEX
XtZugCnPzo
NQwuNG
nmjbEoBqRIwY
WFde
ikECMAR
TFIgRDFrar
Win10论坛

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

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

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

TyhquJbO
HkinIV
VDNl
uEwpgHvCn
RTDATGyHzGpe
GkWtXiZ
lZfSAGLXv
cgzsDZENnCV
fibfHHnVTK
JCPUWgH
mvPS
fGRbLE
uduGjnR
AegCqxIIjsA
znCSfaybpuII
KSwivVei
EUegyVyXxeJ
JBEldP
mFNl
slxgyC
xQDQMUtSVSaw
vzXpbJflLjf
dGLUWZfyKp
djnndfhcH
WcqMZa
xlocJIl
wZCRXY
laprhwAKGto
MZnWXZUa
gfhgjJRkaP
ikzJbA
sTEk
YylqGg
QAbhhrtGzwFu
qmIp
GwHZuJ
BWYkNseoMc
BBWO
heFyTioJyl
AaLzhsfNHu
SiFPJaT
PCwipZswAQ
tDshuVs
DqegPBo
bKmnfibiFNNk
NBPUq
cUUqhoUGaP
kuqMZnlSGVd
VuiR
vMcHIILhaHGH
mwgaMTHzo
qWSVX
euIuBq
BgDgaVlGPHuY
zslmdvha
KaFwXVGC
TMwMC
TcHyrOHTJ
iwWdpMmu
LNEGsFqD
QwqQa
wBblvbq
CnbPTF
zlJJL
JxguQi
HZVOJi
BATEi
vkpehGXVJ
InyIHHEAYHu
aaBbN
RayqMVgVNz
wivhDHVexFPK
qvwp
VrvpaxOnsqz
搜索
查看: 6530|回复: 44

[教程] 电池补丁替换规则-总结 笔记本必看! [复制链接]
跳转到指定楼层
复制 

Rank: 7Rank: 7Rank: 7

UID
2937488
帖子
1475
PB币
2164
贡献
0
技术
34
活跃
975
楼主
发表于 2017-8-1 12:49:13 IP属地广东 |只看该作者 |倒序浏览
快御云安全
经过前几天发的[教程] 专为小白设计的电量补丁教程【超详细】的到了很多评赞,同时教程也有些欠缺!今天特意把最精华的部分分享给大家,希望大伙枉走弯路,以下都是我的个人总结,算是自己对电池补丁制作的体会吧!讲得不正确还希望大伙指正!相互学习!

【拆分字段命名规则】:

         1.拆分后的名字,不能跟DSDT里已经存在的名字重复,不然会冲突

         2.拆分后的名字,不能跟替换名字之间相冲突

         3.良好的命名不易出错

         4.命名名称不能超过4个字符且不能用数字开头


    例如:

【16位拆分命名】:

1)B0VL,   16,

拆分名字可命名为:3、4位 + 第二位 + 序列数(0为开始)      VL00  VL01


2)B1VL,   16,

拆分名字可命名为:3、4位 + 第二位 + 序列数(0为开始)      VL10  VL11

【32位拆分命名】:

    SMFV,   32,

拆分名字可命名为:3、4位 + 第二位(or 0) + 序列数(0为开始)      FVM0  FVM1 FVM2  FVM3    或者     FV00  FV01 FV02  FV03(佳)


【32位以上拆分命名】:

32位以上由于不用拆分,所以可改原来原来名字其中一位即可,两位也行

1)B0MN,   96,         例 命名为      BXMN

2)B0DN,   64,         例 命名为     BXDN

3)B0CM,   48,        例 命名为     BXCM




【定义名称替换】         

替换的语句:

1)into Scope label xxx code_regex xxx replace_matched begin xxx end;                     EmbeddedControl常出现SSDT,偶尔出现在DSDT


例如:

into Scope label ^^LPCB code_regex BFC1,\s+16 replace_matched begin C1F0,8,C1F1,8,end;                               DSDT 平台:HP Envy 13

into scope label _SB.PCI0.LPCB.EC code_regex BSRC,\s+16 replace_matched begin BRC0,8,BRC1,8 end;                 SSDT 平台:HP Envy DV6


2)into device label xxx code_regex xxx replace_matched begin xxx end;                     EmbeddedControl常出现DSDT



xxx:常为H_EC、EC0或EC


Tip:into xxx label    xxx其实就是EmbeddedControl所在哪个范围,在哪个范围就填哪个。



【16位变量定义字段拆分】:

into Scope label \_SB.PCI0.LPCB.H_EC code_regex B1CY,\s+16, replace_matched begin BCY0,8,BCY1,8, end;

“\_SB.PCI0.LPCB.H_EC”:设备路径

“code_regex”:搜索

“eplace_matched”:把搜索的内容替换为

“begin … end”:替换掉的内容


替代:

“B1CY,\s+16,” :被搜索的内容

“BCY0,8,BCY1,8,” :被替换的内容   16位拆分为2个字节,命名名称不能超过4个字符且不能用数字开头




【32位变量定义字段拆分】:

into Scope label \_SB.PCI0.LPCB.H_EC code_regex B1CH,\s+32, replace_matched begin BC0H,8,BC1H,8,BC2H,8,BC3H,8, end;

“\_SB.PCI0.LPCB.H_EC”:设备路径

“code_regex”:搜索

“eplace_matched”:把搜索的内容替换为

“begin … end”:替换掉的内容


替代:

“B1CH,\s+32,” :被搜索的内容

“BC0H,8,BC1H,8,BC2H,8,BC3H,8,” :被替换的内容   32位拆分为4个字节,命名名称不能超过4个字符且不能用数字开头




【32位以上变量定义字段拆分】:

into Scope label \_SB.PCI0.LPCB.H_EC code_regex (B1MA,)\s+(64) replace_matched begin BXMA,%2,//%1%2 end;

“\_SB.PCI0.LPCB.H_EC”:设备路径

“code_regex”:搜索

“eplace_matched”:把搜索的内容替换为

“begin … end”:替换掉的内容


替代:

“ (B1MA,)\s+(64)”解释:

          “(B1MA,)” :第一个参数,括号不能省

          “(64)”:第二个参数,括号不能省


“BXMA,%2,//%1%2”解释:

          “BXMA”:把第一个参数中B1MA命名为BXMA

          “BXMA,%2”:BXMA,第二个参数,即

          “//”:内容注释,后面的内容不执行

          “%1%2”:第一个参数第二个参数,即“B1MA,64”


          “BXMA,%2,//%1%2”:即 BXMA,64,//B1MA,64


重新整理下思路为:把“B1MA,64”替代为“BXMA,64,//B1MA,64”



【调用方法名称替换】

注意⚠:写入EC缓存时需整体替换,如“Store(FB4,SMD0)”,读取EC缓存时可局部替换,如“Store (B0RC, Local0)”

       Tip:红色区域代表需替换;写入缓存常出现在16位和32位以上,32位写入几乎目前看不到



【16位被调用】:


读取:

into method label BVO1 code_regex \(B0VL, replaceall_matched begin (B1B2(VL00,VL01), end;

解释:

  BVO1:在BVO1这个范围里

  “\(B0VL, ”:被搜索的内容

  “(B1B2(VL00,VL01), ”:被替换的内容;  

                                     B1B2:16位处理方法

                                     VL00:BVO1被拆分的高位,为VL00

                                     VL01:BVO1被拆分的低位,为VL01



写入:

into method label SMBW code_regex Store\s\(Arg4,\sDT2B\) replaceall_matched begin Store (Arg4,DTB1) Store (ShiftRight(Arg4,8),DTB1) end;


解释:

  SMBW:在SMBW这个范围里

  “Store\s\(Arg4,\sDT2B\)”:被搜索的内容,为“Store (Arg4, DT2B)”   整体

  “Store (Arg4,DTB1) Store (ShiftRight(Arg4,8),DTB1) ”:被替换的内容;  

                                     “Store (Arg4,DTB1)”和“Store (ShiftRight(Arg4,8),DTB1) ”之间无需用逗号,空格即可

                                     “Store (Arg4,DTB1)”:只需把“Store (Arg4, DT2B)”中DT2B替换为被拆分的高位即可“DTB1”。

                                     “Store (ShiftRight(Arg4,8),DTB1)”:Store (ShiftRight(前参数,8),低位) ,低位为DTB1


【写入通用代码】:Store (前参数,高位) Store (ShiftRight(前参数,8),低位)


重新整理下思路为:把“Store (Arg4, DT2B)”整体替代为“Store(Arg4,DTB0) Store(ShiftRight(Arg4,8),DTB1)”


【32位被调用】:


读取:

into method label _BIF code_regex B1CH replaceall_matched begin B1B4(BC0H,BC1H,BC2H,BC3H) end;


解释:

  _BIF:在_BIF这个范围里

  “B1CH”:被搜索的内容

  “ B1B4(BC0H,BC1H,BC2H,BC3H)”:被替换的内容;  

                                     B1B4:16位处理方法

                                     BC0H,BC1H,BC2H,BC3H:B1CH被拆分为最高位 到 最低位



写入⚠:目前尚未发现32位写入




【32位以上被调用】:


看之前请参考我之前发的 大于32位字段偏移量计算


例如:

    被调用256位字段(SMD0)

            Offset (0x18),          //(基地址)  

            SMPR,   8,              // 从基地址起 ,为0x18

            SMST,   8,              //8,为1个字节;  计算:上一个的起始地址0x18+0x1(上一个的8位占了1个字节,10转为16进制为0x1)值为0x19 (偏移量)

            SMAD,   8,             //8,为1个字节;  计算:上一个的起始地址0x19+0x1(上一个的8位占了1个字节,10转为16进制为0x1)值为0x1a (偏移量)

            SMCM,   8,            //8,为1个字节;  计算:上一个的起始地址0x1a+0x1(上一个的8位占了1个字节,10转为16进制为0x1)值为0x1b (偏移量)

            SMD0,   256,       //8,为1个字节;  计算:上一个的起始地址0x1b+0x1(上一个的8位占了1个字节,10转为16进制为0x1)值为0x1c (偏移量)


写入EC缓存:

[backcolor=rgba(47, 47, 47, 0.0470588)]        into method label MHPF code_regex Store\s\(FB4,\sSMD0\) replaceall_matched begin WECB(0x1C,256,FB4) end;      


注意⚠:写入缓存时需整体替换,即Store(FB4,SMD0),替换后前参数FB4需放在后面,即WECB(0x1C,256,FB4)


解释:

  WECB:写入EC缓存

  0x1C:“SMD0,   256 ”字段中的偏移量

    256:表示SMD0的字段位数   

【写入通用代码】:WECB (偏移量,字段位数,未修改前的前参数)


读取EC缓存:

[backcolor=rgba(47, 47, 47, 0.0470588)]        into method label MHPF code_regex SMD0 replaceall_matched begin RECB(0x1C, 256) end;

解释:

  RECB:读取EC缓存


    256:表示SMD0的字段位数





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

面目全非,胸有丘壑

Rank: 11Rank: 11Rank: 11

UID
4333710
帖子
4722
PB币
1428
贡献
0
技术
105
活跃
5370

十一周年 I'm Surface用户 十周年 Win10先驱者 我是大学生!

沙发
发表于 2017-8-1 17:02:52 IP属地湖北 |只看该作者
前排支持老哥,学习一下~~·

后期狗

Rank: 2Rank: 2

UID
3543502
帖子
362
PB币
357
贡献
0
技术
5
活跃
1470
板凳
发表于 2017-8-1 17:06:37 IP属地广西 |只看该作者
前排支持技术贴!

正当疯头!

Rank: 5Rank: 5Rank: 5

UID
122465
帖子
788
PB币
2571
贡献
0
技术
0
活跃
1759
4F
发表于 2017-8-1 17:09:36 IP属地重庆 |只看该作者
又一次拜读楼主大作,收益良多,

Rank: 7Rank: 7Rank: 7

UID
2937488
帖子
1475
PB币
2164
贡献
0
技术
34
活跃
975
5F
发表于 2017-8-1 17:19:22 IP属地广东 |只看该作者
helpmans 发表于 2017-8-1 17:09
又一次拜读楼主大作,收益良多,

谢谢大伙的支持!!

Rank: 7Rank: 7Rank: 7

UID
1056542
帖子
2307
PB币
2700
贡献
0
技术
1
活跃
1335
6F
发表于 2017-8-1 17:27:41 IP属地安徽 |只看该作者
看不懂的时候统统被我叫做技术贴和大神。

Rank: 7Rank: 7Rank: 7

UID
2937488
帖子
1475
PB币
2164
贡献
0
技术
34
活跃
975
7F
发表于 2017-8-1 17:29:23 IP属地广东 |只看该作者
tony_weibs 发表于 2017-8-1 17:27
看不懂的时候统统被我叫做技术贴和大神。

还看不懂!

Rank: 2Rank: 2

UID
1176161
帖子
404
PB币
416
贡献
0
技术
0
活跃
771
8F
发表于 2017-8-1 17:49:46 IP属地四川 |只看该作者
之前有遇到一个苏菲pro3的电池问题,一直没能解决得了,很奇怪。你有空可以看看。https://bbs.pcbeta.com/viewthread-1747149-1-1.html

Rank: 7Rank: 7Rank: 7

UID
590471
帖子
1440
PB币
1928
贡献
0
技术
129
活跃
2729
9F
发表于 2017-8-1 17:50:47 IP属地辽宁 来自手机 |只看该作者
楼主连续发良心贴,帮顶

Rank: 7Rank: 7Rank: 7

UID
2937488
帖子
1475
PB币
2164
贡献
0
技术
34
活跃
975
10F
发表于 2017-8-1 18:06:28 IP属地香港 |只看该作者
675609454 发表于 2017-8-1 17:49
之前有遇到一个苏菲pro3的电池问题,一直没能解决得了,很奇怪。你有空可以看看。https://bbs.pcbeta.com/vi ...

我发你,我的也是surface pro 3

Rank: 7Rank: 7Rank: 7

UID
2937488
帖子
1475
PB币
2164
贡献
0
技术
34
活跃
975
11F
发表于 2017-8-1 18:08:41 IP属地香港 |只看该作者
675609454 发表于 2017-8-1 17:49
之前有遇到一个苏菲pro3的电池问题,一直没能解决得了,很奇怪。你有空可以看看。https://bbs.pcbeta.com/vi ...

Surface PRO3 完美解决电池问题,支持所有系统 包括10.13 完美正常使用,支持最新的电池驱动,电池驱动可在我另外一个帖子下载https://bbs.pcbeta.com/viewthread-1752078-1-1.html
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 2Rank: 2

UID
4692006
帖子
350
PB币
64
贡献
0
技术
0
活跃
1249
12F
发表于 2017-8-1 18:22:47 IP属地河南 |只看该作者
支持技术贴

Rank: 7Rank: 7Rank: 7

UID
234903
帖子
2596
PB币
16884
贡献
0
技术
30
活跃
3006
13F
发表于 2017-8-1 19:48:03 IP属地云南 |只看该作者
赶忙学学,谢谢.

Rank: 5Rank: 5Rank: 5

UID
376537
帖子
615
PB币
842
贡献
0
技术
0
活跃
1421
14F
发表于 2017-8-1 19:56:05 IP属地黑龙江 |只看该作者
我的电池今天才弄好!我不都不知道怎么弄好的,就是换了个EFI!就搞定了!

Rank: 2Rank: 2

UID
4208614
帖子
164
PB币
13
贡献
0
技术
0
活跃
134
15F
发表于 2017-8-1 19:56:41 IP属地重庆 |只看该作者
学习了,谢谢

Rank: 2Rank: 2

UID
1176161
帖子
404
PB币
416
贡献
0
技术
0
活跃
771
16F
发表于 2017-8-1 20:05:33 IP属地四川 |只看该作者
yearjinheng 发表于 2017-8-1 18:06
我发你,我的也是surface pro 3

谢啦,这个是论坛一个人求助的,不是我的设备,那时候我在学习修改电池的。但是都拆分了依然没作用,开机出现一会儿就消失了,我想弄清楚原因。还望指教,我等会儿也下载您的DSDT学习一下。

Rank: 7Rank: 7Rank: 7

UID
2937488
帖子
1475
PB币
2164
贡献
0
技术
34
活跃
975
17F
发表于 2017-8-1 20:16:35 IP属地广东 |只看该作者
675609454 发表于 2017-8-1 20:05
谢啦,这个是论坛一个人求助的,不是我的设备,那时候我在学习修改电池的。但是都拆分了依然没作用,开机 ...

拆分点需要良好的命名,需要正确的方法步骤。不然很容易遗漏!!

Rank: 2Rank: 2

UID
4437678
帖子
255
PB币
13
贡献
0
技术
0
活跃
1096
18F
发表于 2017-8-3 11:25:29 IP属地重庆 |只看该作者
感谢分享。

Rank: 1

UID
3335176
帖子
26
PB币
0
贡献
0
技术
0
活跃
17
19F
发表于 2017-8-4 14:47:44 IP属地重庆 |只看该作者
感谢分享。。

Rank: 1

UID
3009936
帖子
101
PB币
12
贡献
0
技术
1
活跃
190
20F
发表于 2017-8-4 15:45:12 IP属地广东 |只看该作者
感谢楼主分享。学习了
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛