Xposed 初探

本文介绍了如何在Android中使用Xposed框架,包括新建项目、配置manifest文件、添加依赖、编写测试代码和Hook模块,展示了如何在运行时修改应用内文本。
摘要由CSDN通过智能技术生成

Xpose 初探

github地址:https://github.com/rovo89/XposedInstaller

1:新建项目

新建工程XposeTest .修改manifest.xml

``

<meta-data android:name="xposedmodule" android:value="true"></meta-data>
<meta-data android:name="xposeddescription" android:value="我是个test111"></meta-data>
<meta-data android:name="xposedminversion" android:value="30"></meta-data>

2:添加依赖

compileOnly ‘de.robv.android.xposed:api:82’
compileOnly ‘de.robv.android.xposed:api:82:sources’

注意:这里不要使用implementation。

3:添加测试代码

public class MainActivity extends AppCompatActivity {
private TextView tvDesc;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvDesc=findViewById(R.id.tv_desc);
tvDesc.setText(“我是test”);
}
}

4:编写hook代码

新建HookModule类,继承IXposedHookLoadPackage,实现 handleLoadPackage方法。

测试实现效果:找到对应的按钮,替换文案。

public class HookModule implements IXposedHookLoadPackage {

public static final String TAG = "HookModule";

@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
Log.e(TAG, “handleLoadPackage”);
XposedHelpers.findAndHookMethod(“com.zh.xpose.MainActivity”, lpparam.classLoader, “onCreate”, Bundle.class, new XC_MethodHook() {
@Override
protected void beforeHookedMethod(MethodHookParam param) throws Throwable {
Log.e(TAG, "handleLoadPackage beforeHookedMethod ");
}

@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
Log.e(TAG, "handleLoadPackage afterHookedMethod ");
Class<?> aClass = lpparam.classLoader.loadClass(“com.zh.xpose.MainActivity”);
Field field = aClass.getDeclaredField(“tvDesc”);
field.setAccessible(true);
TextView tvDesc = (TextView) field.get(param.thisObject);
tvDesc.setText(“我是hook后的test”);
}
});
}
}

5:运行

安装成功后会提示Xpose未激活,点击激活Xpose,选择某个应用,强制停止后重启该应用,会发现demo中的文案已经被替换了。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值