Win10论坛

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

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

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

搜索
查看: 1970|回复: 14

[DSDT] 跳出MaciASL的约束,制作电池电量补丁 [复制链接]

Rank: 1

UID
3304600
帖子
95
PB币
59
贡献
0
技术
0
活跃
121
发表于 2017-12-4 18:05:01 |显示全部楼层
1、使用iasl反编译aml文件,得到dsl文件;
2、对于dsl的修改过程无需拘泥于MaciASL,这完全有可能!因为dsl文件其实就是一个文本文件。
3、改好的dsl文件再用iasl编译,得到aml文件。

对于第2步,可以使用你擅长的编程语言进行字符替换。由于不再拘泥于MaciASL,我们可以使用PHP、C++或java等高级程序甚至是脚本程序对asl文件进行读写操作。

以电池电量补丁为例,粗略说明一下这个过程。

1、不管三七二十一,我们首先在特定位置添加 B1B2函数、B1B4函数、RE1B函数、RECB函数、WE1B函数及WECB函数。这一步不难。
2、正则表达式匹配 Field (.+, ByteAcc, NoLock, Preserve){*+},我们把多组大括号{}里的信息保存在一个数组里,之后循环处理此数组。
3、对于数组的每个元素,我们首先把它按换行符 \n 进行拆分,这样又得到每一行,之后对于每一行再进行循环处理。
4、该行如果类似于【abcd 16】,我们就将其替换成【bcd0,8,bcd1,8,】
   该行如果类似于【abcd 32】,我们就将其替换成【bcd0,8,bcd1,8,bcd2,8,bcd3,8,】
   该行如果类似于【abcd 64】,我们就将其替换成【RECB(偏移量,64)】的形式。这里应该需要一枚计数器自动统计偏移量。
   该行如果类似于【abcd 128】【abcd 256】等等,都与上面一行同理。
   该行如果类似于【……】,我们就将其替换成【…………】
5、退出多层嵌套的循环后,程序自动保存修改后的文件为一个副本。这就是我们打好的补丁!

当然,实际程序远比这个复杂百千倍。如此一来,电池补丁就闭着眼睛打了,管它是华硕、戴尔、宏碁或神舟啥的,品牌无需考虑,一个程序就搞定了电池补丁。

此文实属闲聊,亦可看成抛砖引玉,期待高人的实现。

套大大

UID
157829
帖子
977
PB币
10183
贡献
0
技术
20
活跃
1705
发表于 2017-12-4 19:24:44 |显示全部楼层
跳的出吗,补丁的制作只能按照acpi的官方文档来吧,虽然是文本但是不按照官方来打上也会出错

Rank: 2Rank: 2

UID
35502
帖子
256
PB币
1403
贡献
0
技术
0
活跃
636
发表于 2017-12-4 19:36:22 |显示全部楼层
看懂了,我可以用c#尝试。  不过感觉没什么必要,需求少。

Rank: 5Rank: 5Rank: 5

UID
4245055
帖子
1174
PB币
356
贡献
0
技术
4
活跃
1069
发表于 2017-12-4 20:20:01 |显示全部楼层
好思想 不错的思路

Rank: 1

UID
3304600
帖子
95
PB币
59
贡献
0
技术
0
活跃
121
发表于 2017-12-4 20:20:54 |显示全部楼层
花田错 发表于 2017-12-4 19:36
看懂了,我可以用c#尝试。  不过感觉没什么必要,需求少。

我哪天有空的时候,用PHP实现这个功能。到时候,谁要打电池补丁都可以:
1、直接点击我提供的链接;
2、把DSDT.dsl文件上传到我的站点,启动PHP自动打补丁;
3、点击下载按钮就OK了!

如果我想赚钱,那就不提供免费的。打一次补丁收1块钱也算价格优惠,对吧?

Rank: 2Rank: 2

UID
4739549
帖子
135
PB币
161
贡献
0
技术
0
活跃
197
发表于 2017-12-6 08:22:14 |显示全部楼层
zhaiduting 发表于 2017-12-4 20:20
我哪天有空的时候,用PHP实现这个功能。到时候,谁要打电池补丁都可以:
1、直接点击我提供的链接;
2、 ...

加油,支持你。

Rank: 5Rank: 5Rank: 5

UID
4806575
帖子
547
PB币
209
贡献
0
技术
1
活跃
899
发表于 2017-12-6 09:08:52 |显示全部楼层
zhaiduting 发表于 2017-12-4 20:20
我哪天有空的时候,用PHP实现这个功能。到时候,谁要打电池补丁都可以:
1、直接点击我提供的链接;
2、 ...

PHP是世界上最好的语言!

Rank: 5Rank: 5Rank: 5

UID
2473621
帖子
749
PB币
131
贡献
0
技术
0
活跃
1123
发表于 2017-12-13 19:05:55 |显示全部楼层
zhaiduting 发表于 2017-12-4 20:20
我哪天有空的时候,用PHP实现这个功能。到时候,谁要打电池补丁都可以:
1、直接点击我提供的链接;
2、 ...

发了的话@我一下,帮顶

Rank: 5Rank: 5Rank: 5

UID
2473621
帖子
749
PB币
131
贡献
0
技术
0
活跃
1123
发表于 2017-12-13 19:06:26 |显示全部楼层
作者写的简单明了,点赞

Rank: 1

UID
910595
帖子
113
PB币
198
贡献
0
技术
1
活跃
166
发表于 2018-1-20 13:49:36 |显示全部楼层
看了半天都是理论

Rank: 7Rank: 7Rank: 7

UID
713168
帖子
1378
PB币
5
贡献
0
技术
6
活跃
1908
发表于 2018-1-20 14:43:57 |显示全部楼层
楼主有行动了吗
头像被屏蔽

UID
4805871
帖子
3474
PB币
3838
贡献
0
技术
8
活跃
529
发表于 2018-1-20 14:48:21 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

Rank: 2Rank: 2

UID
4149419
帖子
251
PB币
57
贡献
0
技术
0
活跃
352
发表于 2018-2-2 10:54:33 |显示全部楼层
楼主 是神舟 哪款机器,我也遇到你同样的问题,安装卡8个苹果

Rank: 5Rank: 5Rank: 5

UID
4555068
帖子
670
PB币
121
贡献
0
技术
0
活跃
814
发表于 2018-2-2 21:56:23 |显示全部楼层
老铁666 , 下次我写个java代码搞一下

Rank: 7Rank: 7Rank: 7

UID
1607526
帖子
2149
PB币
59
贡献
0
技术
43
活跃
1233

十一周年 我是大学生!

发表于 2018-2-3 12:08:59 |显示全部楼层
感觉不如直接兼容一下 maciasl 补丁语法? 毕竟人家官方 patch 那么多
回顶部
Copyright (C) 2005-2019 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件