根据个人的理解,Xposed模块本身是不需要运行的,只有当hook被调用时,Xposed会主动去唤醒对应的assets/xposed_init中指定的类,但唤醒本身不会让Active激活,所以hook本身不要直接调用本模块定义的Active
1.Android Studio创建项目
2.编辑AndroidMainifest.xml
新创建的内容是
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="lsiding.com.wechattools"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
给标签application增加代码
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="lsiding.com.wechattools" > <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <!--增加xposed模块配置--> <meta-data android:name="xposedmodule" android:value="true" /> <!--描述--> <meta-data android:name="xposeddescription" android:value="Easy example which makes the status bar clock red and adds a smiley" /> <!--xposed api最低版本要求--> <meta-data android:name="xposedminversion" android:value="54" /> </application> </manifest>
---------------------------------------------------------------------
3.增加依赖包到lib目录 (注意这里不能使用libs目录,该目录在android studio中会以另外一个编译机制运行)
这里添加完依赖包后,需要修改依赖范围,(右击项目 Open Module Settings)改成Provided(编译时依赖,但是这个包不会直接打入apk,因为xposed 框架本身已经有这个包了,在唤起这个hook时,会把依赖包加入classpath运行)。
---------------------------------------------------------------------
4.增加一个新类(这个新类最好不要直接使用MainActivity,因为xposed无法初始化Activity的上下文,会造成这个类运行失败)
package lsiding.com.wechattools; /** * hook 工具 * Created by Administrator on 2017-11-11. */ import de.robv.android.xposed.IXposedHookLoadPackage; import de.robv.android.xposed.XposedBridge; import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam; public class WechatHook implements IXposedHookLoadPackage { public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable { XposedBridge.log("Loaded app: " + lpparam.packageName); } }
---------------------------------------------------------------------
5.编辑assets/xposed_init
增加assets目录
增加文件
xposed_init
内容
lsiding.com.wechattools.WechatHook
这个是唤起hook需要调用的class