Win10论坛

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

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

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

搜索
查看: 296|回复: 8

[config] 【技术解答】关于hotpatch技术的思考【已经解决】 [复制链接]

Rank: 2Rank: 2

UID
3476938
帖子
189
PB币
179
贡献
0
技术
0
活跃
172
发表于 2018-7-12 15:27:27 |显示全部楼层
本帖最后由 eastlhu 于 2018-7-13 18:02 编辑



如图:
在config的acpi中,重命名了xwak为zwak,然后ssdt-xwak.aml中的注释说,
// In DSDT, native XWAK is renamed ZWAK
    // As a result, calls to it land here.

在acpi中将xwak重新命名了为zwak了,所以会调用到这里。

这个地方不是很理解,既然都重命名为zwak了,那系统里面所有调用xwak的地方都会去找
zwak的实现,但是这个ssdt-xwak.aml却没有实现zwak,而是简单的把xwak方法置空,
相当于屏蔽xwak方法,那我的疑问是既然直接在aml中将xwak方法替换置空,那acpi中的重命名
有什么用?不知道我的理解是否有误,望大神帮忙解惑。

这个问题已经解决,今天顺便把USBInjectAll的注入也解决!现在发现一个FakePCIID不加载的问题
稍后再讨论,后续所有完美黑果过程中遇到的问题和解决方法都会在这里更新。之前还解决了AppleALC自定义结点问题,有空一起更上来。
附件: 你需要登录才可以下载或查看附件。没有帐号?注册

Rank: 2Rank: 2

UID
3476938
帖子
189
PB币
179
贡献
0
技术
0
活跃
172
发表于 2018-7-13 10:10:16 |显示全部楼层
自己顶一下,谢谢

Rank: 2Rank: 2

UID
164806
帖子
167
PB币
1269
贡献
0
技术
4
活跃
318
发表于 2018-7-13 10:51:49 |显示全部楼层
估计是方便以后发现出问题好在patched中加代码修正吧~

Rank: 2Rank: 2

UID
4824605
帖子
238
PB币
392
贡献
0
技术
0
活跃
340
发表于 2018-7-13 11:09:12 |显示全部楼层
config中的重命名是为了让原先的XWAK失效(注意所有的方法名为4个字符!而不是XWAKE),此时acpi中要求必须有XWAK方法存在,否则就会出现某种不可预知的错误(个人猜测),所以我们用第三方的ssdt来实现一个XWAK,方法体为空。当系统加载ACPI时,会先加载DSDT(当然不是第一个加载它,只是相对SSDT来说),此时重命名生效后的ZWAK无效,等到加载了SSDT-XWAK后,整个的acpi树就完整了,从而达到了我们想要的目的。而不是仅仅把XWAK方法删掉或者重命名使其失效。

Rank: 2Rank: 2

UID
3397252
帖子
251
PB币
204
贡献
0
技术
8
活跃
455
发表于 2018-7-13 11:11:03 |显示全部楼层
按照我的理解呀,不一定对. 系统调用xwake的时候,是根据名字调用的,你把原系统的方法名字改了,系统就不会调用他了,而是去找你自己新建的xwake这个方法了.有些hotpatch,还会在新方法里面,处理一些东西,然后再去调用被改名的老方法;有些方法应该是由系统自己调用,像是规范好的接口,这些方法名字是固定的,系统要干什么就会去找相关的方法,而有些方法只是用来其实方法调用的,

Rank: 2Rank: 2

UID
2834109
帖子
52
PB币
36
贡献
0
技术
0
活跃
74
发表于 2018-7-13 11:12:00 |显示全部楼层
重命名大概是因为acpi中了xwake不只被调用一次,很多地方都调用了。所以需要重命名替换修改。
猜测 我也是小白 哈哈

Rank: 2Rank: 2

UID
3476938
帖子
189
PB币
179
贡献
0
技术
0
活跃
172
发表于 2018-7-13 11:39:14 |显示全部楼层
我大概理解了,就是把原来的xwak方法变成zwak方法,这样系统里面没有地方会调用到它。然后原先所有调用xwak的方法的地方会调用这个补丁里面的空方法,实现了屏蔽xwak。

Rank: 2Rank: 2

UID
3476938
帖子
189
PB币
179
贡献
0
技术
0
活跃
172
发表于 2018-7-13 15:07:47 |显示全部楼层
回答一下我主题中的提问,既然这里用空方法实现了xwak,那为什么还要在acpi中重命名xwak为zwak,如不重命名,那不就有2个zwak方法了嘛,所以change name是将原来的方法改名,废弃掉。昨晚我也是看这个看的很晚,头昏了。

好吧,我投降

Rank: 5Rank: 5Rank: 5

UID
178245
帖子
831
PB币
2135
贡献
0
技术
0
活跃
532
发表于 2018-7-13 16:18:20 |显示全部楼层
我记得:hotpatch应该是修改ACPI下origin下的(如果没有应该是内存中的),然后再调用patched下的来启动我们要添加的,所以你如果把你那个文件放origin下面是没作用的。
关闭

站长推荐

推荐好友加入远景可拿奖励
推荐好友进远景,可以拿3重奖励,PBB,威望,勋章,通通有~ 本帖只限回复推荐用
回顶部
Copyright (C) 2005-2018 pcbeta.com, All rights reserved
Powered by Discuz!  苏ICP备17027154号
请勿发布违反中华人民共和国法律法规的言论,会员观点不代表远景论坛官方立场。
远景在线 | 远景论坛 | 苹果论坛 | Win10论坛 | Win8论坛 | Win7论坛 | WP论坛 | Office论坛 | 电脑硬件 | 安卓软件