项目结构
新建一个lib文件夹,然后将api-82.jar复制进去
新建一个lib文件夹,然后将api-82.jar复制进去
下载链接
下载如下两个文件:api-82-sources.jar和api-82.jar
在app的build.gradle中将添加如下语句
1 | provided files('lib/api-82.jar') |
作用:将libs中的Xposed框架API引用到项目中(构建依赖)
在AndroidManifest.xml将自己标识为一个Xposed模块,语句添加在如下位置
1 | <meta-data |
作用:
- xposedmodule:value为true,表示自己是一个xposed模块
- xposeddescription:value中的文字就是对模块的描述,这些能够在手机上的Xposed框架中看到
- xposedminversion:xposed最低版本
在类里编写hook代码
这里我新建了一个HookToast类,但是你可以在MainActivity里写,只要在后面写好xposed模块的入口点就好了。
之前在AndroidManifest.xml中标识了我们的项目是一个Xposed模块,可是我们可能会有许多Activity,
它怎么才能知道模块的入口在哪呢?
所以,下面要告诉Xposed框架,我们的应用中,Xposed模块的入口到底在哪。
具体代码不给出,我只是记录一下,应该怎么编辑项目而已。
标注Xposed模块入口
右键点击 main , 选择new –> Folder –>Assets Folder,然后确认即可。
在assets中new一个file,文件名为xposed_init(文件类型选text),并在其中写上入口类的完整路径(下面是我的类路径,你们填自己的,就是activity中packege后面的包名)
这样,xposed框架就能够读取xposed_init中的信息来找到模块的入口。
Run
请确保禁用Instant Run(File -> Settings -> Build, Execution, Deployment -> Instant Run),否则您的类不会直接包含在APK中,导致HOOK失败。