-
-
最新雷电模拟器的xposed框架配置及模块编写
-
2022-10-31 13:27 19602
-
前文
之前搭xposed框架的时候,发现网上的很多教程现在已经不适用了,所以就有了写这篇教程的想法,希望能给你们搭xposed框架的时候提供一点帮助。如果对你有帮助的话,给个赞吧。(- v -)
环境
雷电模拟器4.0.82(x86框架)
Android studio
配置
框架安装
首先在雷电模拟器中搜索xposed框架下载,点开xposed框架是未安装的,我以前搭的时候可以直接通过在雷电模拟器开代理,直接在xposed框架里面下载,现在官网不能访问了,只能通过推送安装包到模拟器里面实现框架安装(安装包我会放在文章尾)
具体流程如下
将我提供的89版本的xposed框架包(已包含 scrapy.sh ),然后执行以下命令以下命令
1 2 3 4 5 6 7 | adb remount adb push xposed / system adb shell su cd / system / xposed mount - o remount - w / system sh script.sh |
这个时候重启一下,再打开xposed框架,就发现已经激活成功了
图床配置出问题,上传不了图片,我就不放图了
编写模块配置
首先在Android studio中新建一个工程,在新建工程的app/lib目录中导入XposedBridgeAPI-89.jar(直接复制粘贴就行),然后就是最关键的一点了,我之前就是在这个地方卡了很久,网上很多的现在不适用了,首先右键这个jar包,选择最后一个选项add as library,然后打开src文件夹下的build.gradle文件
1 2 | 将 implementation files( 'libs\\XposedBridgeAPI-89.jar' ) 改成 compileOnly files( 'libs\\XposedBridgeAPI-89.jar' ) |
后面就跟网上的一些教程没什么区别了,接着修改AndroidManifest.xml文件,在Application标签下增加内容如下:
1 2 3 4 5 6 7 8 9 | <meta - data android:name = "xposedmodule" / / 是否配置为Xposed插件,设置为true android:value = "true" / > <meta - data android:name = "xposeddescription" / / 模块的名称 android:value = "模块描述" / > <meta - data android:name = "xposedminversion" / / 最低版本号 android:value = "54" / > |
然后基本的配置就完成了。
模块编写实例
最后给小白提供一个简单的模块编写范本,对于一些简单的xposed模块编写可以直接套壳编写
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | package xx.xx.xx; #自己的包名 import de.robv.android.xposed. IXposedHookLoadPackage; import de.robv.android.xposed.xC_MethodHook; import de.robv.android.xposed.XposedBridge; import de.robv.android.xposed.XposedHelpers; import de.robv.android.xposed.callbacks.xC_LoadPackage; public class HookTest implements IXposedHookLoadPackage { public void handleLoadPackage(xc_LoadPackage.LoadPackageParam loadPackageParam) throws Throwable{ if (loadPackageParam.packageName.equals( "xx.xx.xx" )) { #目标包名,过滤包名 class clazz = loadPackageParam.classLoader.loadClass( "xx.xx.xx.xx" ) ; #目标包名+类名 XposedHelpers.findAndHookMethod(clazz, "hook的方法" ,new XC_MethodHook() { protected void beforeHookedMethod(MethodHookParam param) throws Throwable { super .beforeHookedMethod(param); #方法执行前调用,可以获取参数,更改参数 } protected void afterHookedMethod(MethodHookParam param) throws Throwable { super .afterHookedMethod(param); #方法执行后调用,可以获取返回值,更改返回值 } } |
更多的一些xposed模块编写的方法,网上教程很多,我就不过多叙述了。
参考链接
https://bbs.pediy.com/thread-272870.htm
https://blog.csdn.net/weixin_44183483/article/details/118931351