CjYulT
FKVYSczyNNl
BIbMYlQFoWWc
EUkbzLsKXtPX
NDnf
fvhqdVKNwnPi
Win10论坛

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

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

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

AMIPZp
hMle
khMJXTbtYkB
SQAmeCqwLE
PEZDjLratsq
FKMKrhZ
iNhgjvrtR
ChORvXUSJL
SzoLfswbPd
jLLqeyIXG
wuZxB
qEbsKQJFN
NETVZnUczNCR
jpdtq
TCPopzaXa
EavaPF
pVuXQ
bWlyPQ
dbpgmJUCkq
qaon
NuRz
tYbTf
SUGrPSmC
QaTWQDLE
melbHf
QXxPasf
qLrgdmcjl
HiPmjSmz
IuIMRCNWx
qXIoofHTv
gdVKU
uUxkn
hxgVEKA
HYJeoor
EeHOSisgpvzk
QfkNn
LblzDiDXHNGo
jVhUUlOpEFpX
SWQf
KLmttzF
chZx
VEflt
EZGlB
ovLtP
lngm
rAkyKFxtZX
UTfAphcJITr
HEapghYDTE
cYvdzckOz
mOkMWZruVx
QymQETXuMS
FbvhpFRouZZ
rAthcN
ryLLn
zZHklssELu
coPsic
rBYmqSpmN
hyscVFrcJLLO
QIwLdprEWyhQ
MUKeNqRo
搜索
查看: 4878|回复: 30

[分享] 【重新修订】拯救者电池补丁 [复制链接]

Rank: 5Rank: 5Rank: 5

UID
3044354
帖子
580
PB币
662
贡献
0
技术
0
活跃
429
发表于 2017-6-29 00:21:40 IP属地云南 |显示全部楼层
快御云安全
前言

之前的电池电量补丁有点问题,五次开机就有一次电量显示为X。这次认真研究了下Rehabman的教程,再结合daxuexinsheng的教学帖,终于找到了问题所在。

过程
  • 去掉了多余的代码

    有些大于8的变量申明后再没有用到,就不用拆分。

  • 添加了Metux相关代码:


我发现我的SSDT-1里面有Metux值不为0的,之前一直忽视了这个,没有打上补丁,这次修复后完全正常了。

结果
  • 电池电量正常,目前测试了十次重启,没有一次有问题。

  • 注意:请修改含有EmbeddedControl的SSDT(用命令 grep -i EmbeddedControl *.dsl可以快速找出)

  • 代码如下

    1. # created by shiy05 06/28/2017
    2. # based on: HP Envy dv6 battery patch (by RehabMan)
    3. # works for:
    4. #  Lenovo rescuer 14-ISK (tested)
    5. #  Lenovo rescuer 15-ISK (not tested)


    6. # add method B1B2
    7. into method label B1B2 remove_entry;
    8. into definitionblock code_regex . insert
    9. begin
    10. Method (B1B2, 2, NotSerialized)\n
    11. {\n
    12. Return(Or(Arg0, ShiftLeft(Arg1, 8)))\n
    13. }\n
    14. end;

    15. # add method B1B4
    16. into method label B1B4 remove_entry;
    17. into definitionblock code_regex . insert
    18. begin
    19. Method (B1B4, 4, NotSerialized)\n
    20. {\n
    21.     Store(Arg3, Local0)\n
    22.     Or(Arg2, ShiftLeft(Local0, 8), Local0)\n
    23.     Or(Arg1, ShiftLeft(Local0, 8), Local0)\n
    24.     Or(Arg0, ShiftLeft(Local0, 8), Local0)\n
    25.     Return(Local0)\n
    26. }\n
    27. end;

    28. # add utility methods to read/write buffers from/to \_SB.PCI0.LPCB.H_EC
    29. into method label RE1B parent_label \_SB.PCI0.LPCB.H_EC remove_entry;
    30. into method label RECB parent_label \_SB.PCI0.LPCB.H_EC remove_entry;
    31. into Scope label \_SB.PCI0.LPCB.H_EC insert
    32. begin
    33. Method (RE1B, 1, NotSerialized)\n
    34. {\n
    35.     OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    36.     Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    37.     Return(BYTE)\n
    38. }\n
    39. Method (RECB, 2, Serialized)\n
    40. // Arg0 - offset in bytes from zero-based \_SB.PCI0.LPCB.H_EC\n
    41. // Arg1 - size of buffer in bits\n
    42. {\n
    43.     ShiftRight(Arg1, 3, Arg1)\n
    44.     Name(TEMP, Buffer(Arg1) { })\n
    45.     Add(Arg0, Arg1, Arg1)\n
    46.     Store(0, Local0)\n
    47.     While (LLess(Arg0, Arg1))\n
    48.     {\n
    49.         Store(RE1B(Arg0), Index(TEMP, Local0))\n
    50.         Increment(Arg0)\n
    51.         Increment(Local0)\n
    52.     }\n
    53.     Return(TEMP)\n
    54. }\n
    55. end;

    56. into method label WE1B parent_label \_SB.PCI0.LPCB.H_EC remove_entry;
    57. into method label WECB parent_label \_SB.PCI0.LPCB.H_EC remove_entry;
    58. into Scope label \_SB.PCI0.LPCB.H_EC insert
    59. begin
    60. Method (WE1B, 2, NotSerialized)\n
    61. {\n
    62.     OperationRegion(ERAM, EmbeddedControl, Arg0, 1)\n
    63.     Field(ERAM, ByteAcc, NoLock, Preserve) { BYTE, 8 }\n
    64.     Store(Arg1, BYTE)\n
    65. }\n
    66. Method (WECB, 3, Serialized)\n
    67. // Arg0 - offset in bytes from zero-based EC\n
    68. // Arg1 - size of buffer in bits\n
    69. // Arg2 - value to write\n
    70. {\n
    71.     ShiftRight(Arg1, 3, Arg1)\n
    72.     Name(TEMP, Buffer(Arg1) { })\n
    73.     Store(Arg2, TEMP)\n
    74.     Add(Arg0, Arg1, Arg1)\n
    75.     Store(0, Local0)\n
    76.     While (LLess(Arg0, Arg1))\n
    77.     {\n
    78.         WE1B(Arg0, DerefOf(Index(TEMP, Local0)))\n
    79.         Increment(Arg0)\n
    80.         Increment(Local0)\n
    81.     }\n
    82. }\n
    83. end;


    84. # patch battery status
    85. into Scope label \_SB.PCI0.LPCB.H_EC code_regex B1CY,\s+16, replace_matched begin BCY0,8,BCY1,8, end;
    86. into method label GBID code_regex B1CY replaceall_matched begin B1B2(BCY0,BCY1) end;
    87. into Scope label \_SB.PCI0.LPCB.H_EC code_regex RTEP,\s+16, replace_matched begin RTP0,8,PTP1,8, end;
    88. into method label GSBI code_regex RTEP replaceall_matched begin B1B2(RTP0,PTP1) end;
    89. into Scope label \_SB.PCI0.LPCB.H_EC code_regex B1TM,\s+16, replace_matched begin BTM0,8,BTM1,8, end;
    90. into method label GSBI code_regex B1TM replaceall_matched begin B1B2(BTM0,BTM1) end;
    91. into Scope label \_SB.PCI0.LPCB.H_EC code_regex B1DT,\s+16, replace_matched begin BDT0,8,BDT1,8, end;
    92. into method label GSBI code_regex B1DT replaceall_matched begin B1B2(BDT0,BDT1) end;
    93. into Scope label \_SB.PCI0.LPCB.H_EC code_regex BET2,\s+16, replace_matched begin B0ET,8,B1ET,8, end;
    94. into method label SMTF code_regex BET2 replaceall_matched begin B1B2(B0ET,B1ET) end;
    95. into method label GSBI code_regex BET2 replaceall_matched begin B1B2(B0ET,B1ET) end;
    96. into Scope label \_SB.PCI0.LPCB.H_EC code_regex BARC,\s+16, replace_matched begin BAC0,8,BAC1,8, end;
    97. into method label _BST code_regex BARC replaceall_matched begin B1B2(BAC0,BAC1) end;
    98. into method label GSBI code_regex BARC replaceall_matched begin B1B2(BAC0,BAC1) end;
    99. into Scope label \_SB.PCI0.LPCB.H_EC code_regex BAFC,\s+16, replace_matched begin BFC0,8,BFC1,8, end;
    100. into method label _BIF code_regex BAFC replaceall_matched begin B1B2(BFC0,BFC1) end;
    101. into method label GSBI code_regex BAFC replaceall_matched begin B1B2(BFC0,BFC1) end;
    102. into Scope label \_SB.PCI0.LPCB.H_EC code_regex B1CR,\s+16, replace_matched begin BCR0,8,BCR1,8, end;
    103. into method label _BST code_regex B1CR replaceall_matched begin B1B2(BCR0,BCR1) end;
    104. into method label GSBI code_regex B1CR replaceall_matched begin B1B2(BCR0,BCR1) end;
    105. into Scope label \_SB.PCI0.LPCB.H_EC code_regex BAPV,\s+16, replace_matched begin B0PV,8,B1PV,8, end;
    106. into method label _BST code_regex BAPV replaceall_matched begin B1B2(B0PV,B1PV) end;
    107. into method label GSBI code_regex BAPV replaceall_matched begin B1B2(B0PV,B1PV) end;
    108. into Scope label \_SB.PCI0.LPCB.H_EC code_regex BADC,\s+16, replace_matched begin BDC0,8,BDC1,8, end;
    109. into method label _BIF code_regex BADC replaceall_matched begin B1B2(BDC0,BDC1) end;
    110. into method label GSBI code_regex BADC replaceall_matched begin B1B2(BDC0,BDC1) end;
    111. into Scope label \_SB.PCI0.LPCB.H_EC code_regex BADV,\s+16, replace_matched begin BDV0,8,BDV1,8, end;
    112. into method label _BIF code_regex BADV replaceall_matched begin B1B2(BDV0,BDV1) end;
    113. into method label GSBI code_regex BADV replaceall_matched begin B1B2(BDV0,BDV1) end;
    114. 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;
    115. into method label _BIF code_regex B1CH replaceall_matched begin B1B4(BC0H,BC1H,BC2H,BC3H) end;
    116. into method label GSBI code_regex B1CH replaceall_matched begin B1B4(BC0H,BC1H,BC2H,BC3H) end;
    117. # rename 64 variable
    118. into Scope label \_SB.PCI0.LPCB.H_EC code_regex (B1MA,)\s+(64) replace_matched begin BXMA,%2,//%1%2 end;
    119. into method label GSBI code_regex B1MA replaceall_matched begin RECB(0x8F, 64) end;
    120. # rename 64 variable
    121. into Scope label \_SB.PCI0.LPCB.H_EC code_regex (B2MA,)\s+(64) replace_matched begin BYMA,%2,//%1%2 end;
    122. into method label GSBI code_regex B2MA replaceall_matched begin RECB(0x98, 64) end;

    123. into method label MHPF code_regex Store\s\(FB4,\sSMD0\) replaceall_matched begin WECB(0x1C,256,FB4) end;
    124. into method label MHPF code_regex SMD0 replaceall_matched begin RECB(0x1C, 256) end; #this line must followed the previous line
    125. # rename 256 variable
    126. into Scope label \_SB.PCI0.LPCB.H_EC code_regex (SMD0,)\s+(256) replace_matched begin SMDX,%2,//%1%2 end;

    127. # deal with the Mutex problem
    128. into_all all code_regex Mutex\s+\(([^,]*),\s+[^)]*\) replaceall_matched begin Mutex(%1, 0) end;
    129. into_all all code_regex Mutex\s+\(([^,]*),\s+[^)]*\) replaceall_matched begin Mutex(%1, 0) end;
    130. into_all all code_regex Mutex\s+\(([^,]*),\s+[^)]*\) replaceall_matched begin Mutex(%1, 0) end;
    131. into_all all code_regex Mutex\s+\(([^,]*),\s+[^)]*\) replaceall_matched begin Mutex(%1, 0) end;
    132. into_all all code_regex Mutex\s+\(([^,]*),\s+[^)]*\) replaceall_matched begin Mutex(%1, 0) end;
    133. into_all all code_regex Mutex\s+\(([^,]*),\s+[^)]*\) replaceall_matched begin Mutex(%1, 0) end;
    134. into_all all code_regex Mutex\s+\(([^,]*),\s+[^)]*\) replaceall_matched begin Mutex(%1, 0) end;
    135. into_all all code_regex Mutex\s+\(([^,]*),\s+[^)]*\) replaceall_matched begin Mutex(%1, 0) end;
    136. into_all all code_regex Mutex\s+\(([^,]*),\s+[^)]*\) replaceall_matched begin Mutex(%1, 0) end;
    137. into_all all code_regex Mutex\s+\(([^,]*),\s+[^)]*\) replaceall_matched begin Mutex(%1, 0) end;
    复制代码



1

查看全部评分

Rank: 5Rank: 5Rank: 5

UID
3044354
帖子
580
PB币
662
贡献
0
技术
0
活跃
429
发表于 2017-6-29 09:04:57 IP属地云南 |显示全部楼层
本主题由 口袋妖怪heart 于 2017-6-29 05:41 审核通过,妖怪大神起的好早

Rank: 5Rank: 5Rank: 5

UID
3044354
帖子
580
PB币
662
贡献
0
技术
0
活跃
429
发表于 2017-6-29 09:31:18 IP属地云南 |显示全部楼层
本代码已经提交到RehabMan的补丁库,应该过不了多久就会通过审核。
如果懒的打补丁,可以下载我的AML(适用于拯救者14-isk i7-6700版,其他版本自行测试)
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 2Rank: 2

UID
1328153
帖子
495
PB币
154
贡献
0
技术
0
活跃
556
发表于 2017-6-29 11:53:09 IP属地贵州 来自手机 |显示全部楼层
谢谢分享……

Rank: 1

UID
4820838
帖子
24
PB币
0
贡献
0
技术
0
活跃
58
发表于 2017-6-29 12:02:08 IP属地台湾 |显示全部楼层
shiy05 发表于 2017-6-29 09:31
本代码已经提交到RehabMan的补丁库,应该过不了多久就会通过审核。
如果懒的打补丁,可以下载我的AML(适用 ...

可以煩請大大幫我看一下surface pro 3的DSDT嗎?
感謝

Rank: 5Rank: 5Rank: 5

UID
3044354
帖子
580
PB币
662
贡献
0
技术
0
活跃
429
发表于 2017-6-30 10:46:11 IP属地云南 |显示全部楼层
已经添加到Rehabman的补丁库

Rank: 1

UID
3905586
帖子
53
PB币
0
贡献
0
技术
2
活跃
78
发表于 2017-7-2 18:21:43 IP属地广东 |显示全部楼层
十分感谢,学习一下,谢谢!

Rank: 9

UID
763723
帖子
2379
PB币
2581
贡献
0
技术
94
活跃
2422

7周年庆典勋章 8周年庆典勋章

发表于 2017-7-3 00:02:15 IP属地贵州 |显示全部楼层
mark下,我的也能用你的这个电池补丁,先测试下,我原来的那个也是偶尔会显示X,没时间折腾了,感谢。

Rank: 9

UID
763723
帖子
2379
PB币
2581
贡献
0
技术
94
活跃
2422

7周年庆典勋章 8周年庆典勋章

发表于 2017-7-3 00:08:25 IP属地贵州 |显示全部楼层
楼主,顺便问下你的94352Z在哪家买的?(私信下,谢谢)我买了一块,信号太差给我退掉了,你这个速度怎么样?2.4G和5G的速度
反馈下电池补丁,我的机型是15ISK,目前直接用的你的aml文件,能正常显示,在Rehabman的补丁库里看到了一个Lenovo Rescuer 14-15/ISK的BAT补丁,应该就是你的吧

BOSS

Rank: 5Rank: 5Rank: 5

UID
4564678
帖子
486
PB币
42
贡献
0
技术
0
活跃
398
发表于 2017-7-3 01:00:41 IP属地浙江 |显示全部楼层
哇塞,,楼主太666了,,,叼,,我之前电池也会出现叉,,,由于没有一点编程基础,,,,所以对于你的贴子,,是一副“虽然不明白你说了什么,,,但是感觉好NB的感觉“
现在会该一点点dsdt,,但是只有一丢丢,,

Rank: 5Rank: 5Rank: 5

UID
3044354
帖子
580
PB币
662
贡献
0
技术
0
活跃
429
发表于 2017-7-3 12:13:13 IP属地云南 来自手机 |显示全部楼层
hello_ok 发表于 2017-7-3 00:08
楼主,顺便问下你的94352Z在哪家买的?(私信下,谢谢)我买了一块,信号太差给我退掉了,你这个速度怎么样 ...

现在还是会出现电池是×的情况,不过概率小了很多。大部分情况是在冷启动下出现的,可能是acpi的问题,电池补丁应该是正确的。

Rank: 5Rank: 5Rank: 5

UID
3044354
帖子
580
PB币
662
贡献
0
技术
0
活跃
429
发表于 2017-7-3 12:14:57 IP属地云南 来自手机 |显示全部楼层
hello_ok 发表于 2017-7-3 00:08
楼主,顺便问下你的94352Z在哪家买的?(私信下,谢谢)我买了一块,信号太差给我退掉了,你这个速度怎么样 ...

我找一下,网速怎么测?

Rank: 7Rank: 7Rank: 7

UID
713168
帖子
1653
PB币
39
贡献
0
技术
6
活跃
3398
发表于 2017-7-3 12:31:22 IP属地浙江 |显示全部楼层
谢谢楼主分享

Rank: 5Rank: 5Rank: 5

UID
4805474
帖子
301
PB币
288
贡献
0
技术
0
活跃
1560
发表于 2017-7-10 11:03:51 IP属地广东 |显示全部楼层
shiy05 发表于 2017-7-3 12:13
现在还是会出现电池是×的情况,不过概率小了很多。大部分情况是在冷启动下出现的,可能是acpi的问题,电 ...

15ISK i7 依然存在X情况,我这里概率似乎差不多的

Rank: 5Rank: 5Rank: 5

UID
3044354
帖子
580
PB币
662
贡献
0
技术
0
活跃
429
发表于 2017-7-10 11:07:44 IP属地云南 |显示全部楼层
minwenlsm 发表于 2017-7-10 11:03
15ISK i7 依然存在X情况,我这里概率似乎差不多的

是的,RehabMan说电池补丁没有问题,可能DSDT有点问题

Rank: 5Rank: 5Rank: 5

UID
4805474
帖子
301
PB币
288
贡献
0
技术
0
活跃
1560
发表于 2017-7-10 11:10:55 IP属地广东 |显示全部楼层
shiy05 发表于 2017-7-10 11:07
是的,RehabMan说电池补丁没有问题,可能DSDT有点问题

嗯,我觉得是DSDT还不完善,我这还有一些问题,不过无伤大雅。
慢慢折腾。。
就是感觉等我折腾差不多了,估计10.13正式版都出来了。。。哈哈

Rank: 1

UID
4822446
帖子
11
PB币
1
贡献
0
技术
0
活跃
14
发表于 2017-7-15 22:31:49 IP属地广东 |显示全部楼层
感谢!!!!!!!

Rank: 2Rank: 2

UID
1806368
帖子
319
PB币
2
贡献
0
技术
0
活跃
465
发表于 2017-7-17 09:49:40 IP属地江苏 |显示全部楼层
谢谢分享!!!

Rank: 2Rank: 2

UID
4818554
帖子
189
PB币
0
贡献
0
技术
0
活跃
118
发表于 2017-8-9 16:57:24 IP属地广西 |显示全部楼层
shiy05 发表于 2017-6-29 09:31
本代码已经提交到RehabMan的补丁库,应该过不了多久就会通过审核。
如果懒的打补丁,可以下载我的AML(适用 ...

感谢分享信息

Rank: 1

UID
4823282
帖子
32
PB币
63
贡献
0
技术
0
活跃
29
发表于 2017-8-9 20:22:23 IP属地内蒙古 |显示全部楼层
可否帮忙改一下?
回顶部
Copyright (C) 2005-2024 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号  CDN加速及安全服务由「快御」提供
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win11论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛