EdXposed例子

背景

"纸上得来终觉浅,绝知此事要躬行",尤其看代码的时候经常觉得都懂了,自己写得时候全忘了。所以最好的记忆还是自己写个例子。所以学习EdXposed的时候写了个例子把整个流程走一遍。

依赖

需要完成安装Magisk和EdXposed

例子说明

EdXposed完全Follow Xposed的API,所以整个开发流程完全一致。 从本质上来讲,EdXposed 模块也是一个 Android 程序。但与普通程序不同的是,想要让写出的Android程序成为一个Xposed 模块,要额外多完成以下四个硬性任务:

  1. 让手机上的xposed框架知道我们安装的这个程序是个xposed模块。

  2. 模块里要包含有xposed的API的jar包,以实现下一步的hook操作。

  3. 这个模块里面要有对目标程序进行hook操作的方法。

  4. 要让手机上的xposed框架知道,我们编写的xposed模块中,哪一个方法是实现hook操作的。

对应上面的四个步骤我们需要做的修改有:

  1. AndroidManifest.xml

  2. XposedBridgeApi-xx.jar 与 build.gradle

  3. 实现hook操作的具体代码

  4. xposed_Init

目标APP

首先我们实现一个目标App, App的功能很简单,只有一个button,点击button返回一个字符串

目标APP Hook前

Hook App

另外实现一个Hook App用于替换点击按钮后的返回值,我们按照上面说的四步一步一步修改:

AndroidManifest.xml

当修改完AndroidManifest.xml后, EdXposedManager就会显示当前模块

EdXposed Manager

Xposed API build.gradle修改

Xposed API说明

实现Hook具体实现代码

xposed_init指定Hook模块

Hook 结果

目标APP Hook后

上面的例子可以在Github上找到

Last updated

Was this helpful?