吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1055|回复: 20
上一主题 下一主题
收起左侧

[Android 原创] Xposed模块注入资源原理以及思路

  [复制链接]
跳转到指定楼层
楼主
KillLog 发表于 2025-3-25 14:22 回帖奖励
本帖最后由 KillLog 于 2025-3-25 14:23 编辑

在使用xposed进行hook宿主App的时候,有时候需要调用模块内的Resources
默认下访问的是宿主App的进程也就是宿主App的资源
知识储备:
Lsposed原理
android插件化技术
在android的插件化技术中得知,android资源是通过AssetManager类的addAssetPath函数去加载的


在loadAssets函数中通过资源管理器加载APK资源

并在nativeSetApkAssets去解析apk中的资源
那么思路很简单我们主动调用addAssetPath函数去吧模块的资源加载到宿主App
需要用到xposed的IXposedHookZygoteInit接口
重写initZygote函数
[Java] 纯文本查看 复制代码
1
2
3
4
@Override
public void initZygote(StartupParam startupParam) throws Throwable { 
    modulePath=startupParam.modulePath;
}

这个函数用来获取模块apk路径(/data/app/.....)
在handleLoadPackage函数里,通过去hook获取到宿主App的Context去主动调用addAssetPath
[Java] 纯文本查看 复制代码
01
02
03
04
05
06
07
08
09
10
11
12
@Override 
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable { 
    XposedHelpers.findAndHookMethod(Application.class, "attach", Context.class, new XC_MethodHook() { 
        @Override 
        protected void afterHookedMethod(MethodHookParam param) throws Throwable { 
            super.afterHookedMethod(param); 
            Context context = (Context) param.args[0]; 
            ClassLoader classLoader = context.getClassLoader(); 
            XposedHelpers.callMethod(context.getResources().getAssets(),"addAssetPath",modulePath); 
        
    }); 
}

然后后面我们可以随意去使用我们的资源(drawable,mipmap,values,layout....)
注意使用的时候,调用的context是使用的宿主App的

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


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

免费评分

参与人数 6吾爱币 +11 热心值 +6 收起 理由
Carinx + 1 + 1 用心讨论,共获提升!
allspark + 1 + 1 用心讨论,共获提升!
study1024 + 1 + 1 谢谢@Thanks!
正己 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
wyff123 + 1 用心讨论,共获提升!
yhu123 + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

沙发
Cloud4n 发表于 2025-3-25 14:34
请问现在对于安卓10的机型有什么更好的rt建议吗
3#
lyajkl 发表于 2025-3-25 14:53
4#
fredchen 发表于 2025-3-25 15:06
5#
wapjyh1 发表于 2025-3-25 15:07
感谢分享
6#
zaihulhf 发表于 2025-3-25 15:27
感谢分享 是个不错的东西
7#
gaoyanggnay 发表于 2025-3-25 15:28
大佬求个源码学习下
8#
 楼主| KillLog 发表于 2025-3-25 15:38 |楼主
gaoyanggnay 发表于 2025-3-25 15:28
大佬求个源码学习下

https://wwij.lanzout.com/iKr8N2rky92f
9#
tomchil 发表于 2025-3-25 15:42
感谢分享
10#
cijide 发表于 2025-3-25 15:59
谢谢,最近在学习,正好收藏
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2025-3-27 06:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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