文章目录
  1. 1. 前言
  2. 2. 开发流程

前言

Xposed是一款强大的hook框架,是时候该学习一下如何开发它的模块了。刚开始也是比较懵,因此记录一下。Xposed相关的链接

我的开发环境如下:

  • 已Root并且安装了Xposed Installer的Nexus 5, Android版本4.4.4
  • Android Studio,API Level 25
  • XposedBridgeApi-54.jar

开发流程

  1. 新建Android Studio工程,选择no Activity
    2.把XposedBridgeApi-54.jar加到 libs 文件夹,然后修改build.gradle中的一个地方。
    compile fileTree(dir: ‘libs’, include: [‘.jar’]) 改为 provided fileTree(dir: ‘libs’, include: [‘.jar’])

build.gradle

3.在AndroidManifest.xml文件的application标签中增加下面的内容

1
2
3
4
5
6
7
8
9
<meta-data
android:name="xposedmodule"
android:value="true" />
<meta-data
android:name="xposeddescription"
android:value="First Xpoesd Module Test" />
<meta-data
android:name="xposedminversion"
android:value="54" />

xposeddescription下面的value填写xposed模块的相关描述,xposedminversion下面的value是我们使用XposedBridge jar包的版本号。

4.新建一个java文件,写一个简单的example

1
2
3
4
5
6
7
8
9
10
11
package com.seven.xposedtest;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
public class XModule implements IXposedHookLoadPackage {
public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
XposedBridge.log("Seven Loaded app:" + lpparam.packageName);
}
}

5.新建一个assets目录

assets

6.在assets目录新建一个文件 xposed_init ,里面写上hook类的完整路径。比如我的包名是com.seven.xposedtest,类名是XModule,那么就写上com.seven.xposedtest.XModule

7.Build Apk,然后install到手机。在Xposed installer的模块里找到这个模块,勾选上,接着重启手机。就可以在logcat看到效果啦。如果能看到有Seven Loaded app:的text,说明我们的模块安装成功了。

文章目录
  1. 1. 前言
  2. 2. 开发流程