前言
Xposed是一款強大的hook框架,是時候該學(xué)習(xí)一下如何開發(fā)它的模塊了。剛開始也是比較懵,因此記錄一下盅粪。Xposed相關(guān)的鏈接
我的開發(fā)環(huán)境如下:
- 已Root并且安裝了Xposed Installer的Nexus 5柜与, Android版本4.4.4
- Android Studio巧勤,API Level 25
- XposedBridgeApi-54.jar
開發(fā)流程
- 新建Android Studio工程,選擇no Activity
2.把XposedBridgeApi-54.jar加到 libs 文件夾弄匕,然后修改build.gradle中的一個地方颅悉。
compile fileTree(dir: 'libs', include: ['.jar']) 改為 provided fileTree(dir: 'libs', include: ['.jar'])
3.在AndroidManifest.xml文件的application標(biāo)簽中增加下面的內(nèi)容
<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模塊的相關(guān)描述,xposedminversion下面的value是我們使用XposedBridge jar包的版本號迁匠。
4.新建一個java文件剩瓶,寫一個簡單的example
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目錄
6.在assets目錄新建一個文件 xposed_init ,里面寫上hook類的完整路徑城丧。比如我的包名是com.seven.xposedtest延曙,類名是XModule,那么就寫上com.seven.xposedtest.XModule
7.Build Apk亡哄,然后install到手機枝缔。在Xposed installer的模塊里找到這個模塊,勾選上蚊惯,接著重啟手機愿卸。就可以在logcat看到效果啦。如果能看到有Seven Loaded app:的text拣挪,說明我們的模塊安裝成功了擦酌。