返回列表 发新帖

Xposed模块注入资源原理以及思路

  [复制链接]

52

主题

1902

回帖

8522

积分

版主

Rank: 7Rank: 7Rank: 7

金币
2222
好评
84
信誉
134

MT论坛最佳新人MT论坛活跃会员考神MT论坛新人MT论坛帅哥MT论坛侠客

发表于 2025-3-25 14:27:41 | 显示全部楼层 | 阅读模式  来自 河北
在使用xposed进行hook宿主App的时候,有时候需要调用模块内的Resources
默认下访问的是宿主App的进程也就是宿主App的资源
知识储备:

Lsposed原理
android插件化技术
在android的插件化技术中得知,android资源是通过AssetManager类的addAssetPath函数去加载的
在loadAssets函数中通过资源管理器加载APK资源

并在nativeSetApkAssets去解析apk中的资源
那么思路很简单我们主动调用addAssetPath函数去吧模块的资源加载到宿主App
需要用到xposed的IXposedHookZygoteInit接口
重写initZygote函数
  1. @Override
  2. public void initZygote(StartupParam startupParam) throws Throwable {  
  3.     modulePath=startupParam.modulePath;
  4. }
复制代码
这个函数用来获取模块apk路径(/data/app/.....)
在handleLoadPackage函数里,通过去hook获取到宿主App的Context去主动调用addAssetPath
  1. @Override
  2. public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {  
  3.     XposedHelpers.findAndHookMethod(Application.class, "attach", Context.class, new XC_MethodHook() {  
  4.         @Override
  5.         protected void afterHookedMethod(MethodHookParam param) throws Throwable {  
  6.             super.afterHookedMethod(param);  
  7.             Context context = (Context) param.args[0];  
  8.             ClassLoader classLoader = context.getClassLoader();  
  9.             XposedHelpers.callMethod(context.getResources().getAssets(),"addAssetPath",modulePath);  
  10.         }  
  11.     });  
  12. }
复制代码
然后后面我们可以随意去使用我们的资源(drawable,mipmap,values,layout....)
注意使用的时候,调用的context是使用的宿主App的


(initZygote是怎么获取的模块路径)


可以看到是通过SELinuxHelper.getAppDataFileService服务读取了/data/data/de.robv.android.xposed.installer/conf/modules.list路径的文件读取

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
已有2人评分好评 金币 理由
Crash_ + 1 + 1
青春向上 + 1 给自己画大饼。

查看全部评分 总评分:好评 +1  金币 +2 

回复

使用道具 举报

1

主题

3040

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
4536
好评
1
信誉
103
发表于 2025-3-25 14:31:25 来自手机  | 显示全部楼层  来自 浙江
看看隐藏
回复

使用道具 举报

8

主题

1万

回帖

2万

积分

博士后

Rank: 8Rank: 8

金币
5353
好评
1
信誉
100
发表于 2025-3-25 14:31:43 来自手机  | 显示全部楼层  来自 山东
看看隐藏
回复

使用道具 举报

2

主题

2117

回帖

5526

积分

硕士生

逆向新手

Rank: 6Rank: 6

金币
1772
好评
0
信誉
93
发表于 2025-3-25 14:33:14 来自手机  | 显示全部楼层  来自 海南
看看
回复

使用道具 举报

14

主题

2413

回帖

9503

积分

硕士生

Rank: 6Rank: 6

金币
6057
好评
6
信誉
102

考神MT论坛帅哥MT论坛新人MT论坛最佳新人MT论坛活跃会员

发表于 2025-3-25 14:33:36 来自手机  | 显示全部楼层  来自 山东
跟大佬学习学习
回复

使用道具 举报

6

主题

674

回帖

3720

积分

大学生

Rank: 5Rank: 5

金币
1198
好评
3
信誉
100
发表于 2025-3-25 14:35:48 来自手机  | 显示全部楼层  来自 四川
回复看看
回复

使用道具 举报

40

主题

1498

回帖

5957

积分

硕士生

首脑

Rank: 6Rank: 6

金币
855
好评
2
信誉
98

考神

发表于 2025-3-25 14:39:05 来自手机  | 显示全部楼层  来自 江苏
回复看看
回复

使用道具 举报

14

主题

2099

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
4270
好评
3
信誉
100

MT论坛最佳新人MT论坛新人

发表于 2025-3-25 14:39:15 来自手机  | 显示全部楼层  来自 广东
看看隐藏
回复

使用道具 举报

0

主题

2242

回帖

7148

积分

硕士生

Rank: 6Rank: 6

金币
5928
好评
0
信誉
100
发表于 2025-3-25 14:48:08 | 显示全部楼层  来自 河南
看看看看
回复

使用道具 举报

43

主题

4362

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
4649
好评
1
信誉
100

MT论坛帅哥考神MT论坛新人

发表于 2025-3-25 14:49:42 来自手机  | 显示全部楼层  来自 广东
看看教程
回复

使用道具 举报

4

主题

4898

回帖

1万

积分

博士生

喜乐无常

Rank: 7Rank: 7Rank: 7

金币
4545
好评
0
信誉
100

MT论坛最佳新人考神MT论坛新人MT论坛帅哥

发表于 2025-3-25 14:50:36 来自手机  | 显示全部楼层  来自 广东
看看隐藏
回复

使用道具 举报

36

主题

6110

回帖

1万

积分

博士生

水博士

Rank: 7Rank: 7Rank: 7

金币
4996
好评
7
信誉
97
发表于 2025-3-25 14:51:41 来自手机  | 显示全部楼层  来自 北京
学习学习,感谢大佬分享
回复

使用道具 举报

2

主题

4503

回帖

1万

积分

禁止访问

iKUN

金币
1214
好评
16
信誉
111
发表于 2025-3-25 14:53:36 来自手机  | 显示全部楼层  来自 广西
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

20

主题

3804

回帖

9704

积分

硕士生

Rank: 6Rank: 6

金币
1683
好评
22
信誉
143
发表于 2025-3-25 14:55:05 来自手机  | 显示全部楼层  来自 广西
感谢分享
回复

使用道具 举报

55

主题

3666

回帖

1万

积分

博士生

Rank: 7Rank: 7Rank: 7

金币
983
好评
190
信誉
181

MT论坛新人MT论坛最佳新人MT论坛帅哥考神MT论坛活跃会员挂机大佬

发表于 2025-3-25 14:56:56 来自手机  | 显示全部楼层  来自 陕西
学习一下
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表