【Android 插件化】Hook 插件化框架 ( 合并 “插件包“ 与 “宿主“ 中的 Element[] dexElements | 设置合并后的 Element[] 数组 )(二)

简介: 【Android 插件化】Hook 插件化框架 ( 合并 “插件包“ 与 “宿主“ 中的 Element[] dexElements | 设置合并后的 Element[] 数组 )(二)

二、设置 “宿主“ 中的 Element[] dexElements


将之前 合并 “插件包“ 与 “宿主“ 中的 Element[] dexElements 数组 , 设置到 宿主 PathClassLoader 中的 DexPathList pathList 成员的 Element[] dexElements 属性值中 ;


先获取 Element[] dexElements 字段 Field 对象 ;


Field elementsFiled = null;
try {
    elementsFiled = host_pathListObject.getClass().getDeclaredField("dexElements");
} catch (NoSuchFieldException e) {
    e.printStackTrace();
}
elementsFiled.setAccessible(true);

然后调用 Field 的 set 方法 , 设置该属性值 , 其中 host_pathListObject 是原来的属性值 , newElementsArray 是新的合并后的 Element[] dexElements 数组 ;


elementsFiled.set(host_pathListObject, newElementsArray);



完整代码 :


// 4. 重新设置 PathClassLoader 中的 DexPathList pathList 成员的 Element[] dexElements 属性值
Field elementsFiled = null;
try {
    elementsFiled = host_pathListObject.getClass().getDeclaredField("dexElements");
} catch (NoSuchFieldException e) {
    e.printStackTrace();
}
elementsFiled.setAccessible(true);
//  设置 DexPathList pathList 的 Element[] dexElements 属性值
//      host_pathListObject 是原来的属性值
//      newElementsArray 是新的合并后的 Element[] dexElements 数组
//  注意 : 这里也可以使用 host_dexElementsField 字段进行设置
try {
    elementsFiled.set(host_pathListObject, newElementsArray);
} catch (IllegalAccessException e) {
    e.printStackTrace();
}


目录
相关文章
|
SQL 人工智能 Dart
Android Studio的插件生态非常丰富
Android Studio的插件生态非常丰富
1138 1
|
JavaScript Linux 网络安全
Termux安卓终端美化与开发实战:从下载到插件优化,小白也能玩转Linux
Termux是一款安卓平台上的开源终端模拟器,支持apt包管理、SSH连接及Python/Node.js/C++开发环境搭建,被誉为“手机上的Linux系统”。其特点包括零ROOT权限、跨平台开发和强大扩展性。本文详细介绍其安装准备、基础与高级环境配置、必备插件推荐、常见问题解决方法以及延伸学习资源,帮助用户充分利用Termux进行开发与学习。适用于Android 7+设备,原创内容转载请注明来源。
6437 77
|
Java Android开发
安卓虚拟摄像头过人脸,免root虚拟hook相机,虚拟相机hook版【jar】
两种Hook Android相机的方法:Xposed模块和Frida脚本。Xposed模块需要安装在已root的设备
|
监控 Android开发 数据安全/隐私保护
批量发送短信的平台,安卓群发短信工具插件脚本,批量群发短信软件【autojs版】
这个Auto.js脚本实现了完整的批量短信发送功能,包含联系人管理、短信内容编辑、发送状态监控等功能
|
API Android开发
微信虚拟摄像头模块,微信虚拟视频聊天,安卓虚拟摄像头插件
该实现包含虚拟摄像头服务核心、视频流生成和Android配置三个关键模块,使用Camera2
|
Android开发
我是一位Android工程师,用通义灵码的AS插件做开发工作助手,对比之前没有灵码,现在提效了60%
我是一位Android工程师,用通义灵码的AS插件做开发工作助手,对比之前没有灵码,现在提效了60%
1358 0
|
Java Linux API
微信API:探究Android平台下Hook技术的比较与应用场景分析
微信API:探究Android平台下Hook技术的比较与应用场景分析
|
存储 Android开发
Android插件化-Broadcast篇,2024年最新安卓面试自我介绍
Android插件化-Broadcast篇,2024年最新安卓面试自我介绍
|
Android开发 Kotlin API
Android插件化探索与发现,kotlin协程切换线程
Android插件化探索与发现,kotlin协程切换线程
|
缓存 Android开发
Android插件化——高手必备的Hook技术,零基础开发android
Android插件化——高手必备的Hook技术,零基础开发android

热门文章

最新文章