本帖最后由 xanian 于 2022-10-31 17:20 编辑
前文
之前搭xposed框架的时候,发现网上的很多教程现在已经不适用了,所以就有了写这篇教程的想法,希望能给你们搭xposed框架的时候提供一点帮助。如果对你有帮助的话,给个赞吧。(- v -) ps:因为图床出了点问题,我就不贴图了
环境
雷电模拟器4.0.82(x86框架)
Android studio
配置框架安装
首先在雷电模拟器中搜索xposed框架下载,点开xposed框架是未安装的,我以前搭的时候可以直接通过在雷电模拟器开代{过}{滤}理,直接在xposed框架里面下载,现在官网不能访问了,只能通过推送安装包到模拟器里面实现框架安装(安装包我会放在文章尾)具体流程如下将我提供的89版本的xposed框架包(已包含 scrapy.sh ),然后执行以下命令以下命令
[Shell] 纯文本查看 复制代码 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文件
[Plain Text] 纯文本查看 复制代码 将 implementation files('libs\\XposedBridgeAPI-89.jar')改成 compileOnly files('libs\\XposedBridgeAPI-89.jar')
后面就跟网上的一些教程没什么区别了,接着修改AndroidManifest.xml文件,在Application标签下增加内容如下:
[Java] 纯文本查看 复制代码 <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模块编写可以直接套壳编写
[Java] 纯文本查看 复制代码 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://pan.baidu.com/s/16DIsKdiJUolOW7hGSab8Hg 提取码:xana
89的jar包和xposed文件夹都在里面了
参考链接https://bbs.pediy.com/thread-272870.htm https://blog.csdn.net/weixin_44183483/article/details/118931351 |