添加依赖
settings.gradle
在dependencyResolutionManagement添加
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
google()
mavenCentral()
// **
maven { url 'https://maven.aliyun.com/nexus/content/groups/public/' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/jcenter' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/google' }
maven { url 'https://maven.aliyun.com/nexus/content/repositories/gradle-plugin' }
maven { url 'https://api.xposed.info/' }
}
}
app:build.gradle
dependencies {
...
// **
compileOnly 'de.robv.android.xposed:api:82'
compileOnly 'de.robv.android.xposed:api:82:sources'
}
修改配置
AndroidManifest.xml在application标签中
<application ...>
...
<!-- ** -->
<meta-data
android:name="xposedmodule"
android:value="true" />
<meta-data
android:name="xposeddescription"
android:value="xposed desc" />
<meta-data
android:name="xposedminversion"
android:value="82" />
</application>
编写类
package com.example.xx;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.XC_MethodHook;
import de.robv.android.xposed.XposedBridge;
import de.robv.android.xposed.XposedHelpers;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
public class Xxx implements IXposedHookLoadPackage {
@Override
public void handleLoadPackage(XC_LoadPackage.LoadPackageParam lpparam) throws Throwable {
Log.i(TAG, lpparam.packageName);
if (lpparam.packageName.startsWith("com.tencent.mm")) {
hook(lpparam.classLoader);
}
}
private void hook(final ClassLoader appClassLoader) {
}
}
编写xposed_init
在main文件夹下创建assets文件夹
创建xposed_init
com.example.xx.Xxx