mac使用xposed超详细入门级教程Android Studio-20190930
工具
这里我使用的工具是Android Studio3.4.1,电脑环境mac os mojave 10.14.6(这个应该问题不大)
创建项目
1、打开Android Studio,看到这个界面,并点击红框中的内容创建一个项目。
2、创建一个空的项目选择"Empty Activity"
3、创建一个Java项目XposedHook
4、gradle的配置
Android视图模式下,选择build.gradle(Moudle:app)打开,在dependencies内部添加下面,这句
//compileOnly 'de.robv.android.xposed:api:82' 如果安卓版本太低比如4.4可能会出错
compileOnly 'de.robv.android.xposed:api:53'
版本号53适合安卓4.4的,用82可能报错。
最后点击右上角的Sync Now,具体过程看下图。
5、在main下面创建Hook.java文件
package com.example.xposedhook;
import android.util.Log;
import de.robv.android.xposed.IXposedHookLoadPackage;
import de.robv.android.xposed.callbacks.XC_LoadPackage;
public class Hook implements IXposedHookLoadPackage {
@Override
public void handleLoadPackage(final XC_LoadPackage.LoadPackageParam lppararm) throws Throwable {
Log.d("cxa", "hook");
if (!lppararm.packageName.equals("com.xxx.xxxx")) return; //填入要hook,app的packagename
Log.d("cxa", "hookend");
}
}
6、修改AndroidMainfest.xml文件
在application节点了添加下面内容最终内容看下面图。
<meta-data
android:name="xposedmodule"
android:value="true" />
<meta-data
android:name="xposeddescription"
android:value="Hook log test" />
<meta-data
android:name="xposedminversion"
android:value="53" />
7、main文件夹下创建assets目录
创建
xposed_init文件输入下面内容
com.example.xposedhook.Hook
7、编译app
8、编译成功
9、点击locate可以打开生成之后的app文件
网上看了很多教程都是使用jar包的,这里我要说明一点,我们采取的gradle配置方式是和它并行的,所以不需要jar了。
xposed软件使用
1、官网下载
注意版本的选择
地址
https://repo.xposed.info/module/de.robv.android.xposed.installer
2、一系列的操作
选择安装更新
选择永久记住
点击确定等待重启
3、把上面生成好的app文件也app-debug.apk也拖进模拟器进行安装。
然后打开Xposed选择模块,如果能看到我们的模块,就勾选就可以了向下面这样。(如果没有模块,就返回然后点击框架再点击软重启就有了)。
Android Studio操作安卓模拟器
1、连接安卓模拟器
💃🐍 CXAPython🌈/Users/chenxiangan> adb connect 127.0.0.1:62001
connected to 127.0.0.1:62001
💃🐍 CXAPython🌈/Users/chenxiangan> adb devices
List of devices attached
127.0.0.1:62001 device
2、打开logcat并配置
3、打开需要hook的app即可得到结果。
这里我hook的是ES文件浏览器,
代码部分
if (!lppararm.packageName.equals("com.estrongs.android.pop")) return; //填入要hook,app的packagename,这个是Es文件浏览器的
logcat的结果,这个logcat就是代码Log.d希望输出的内容。
09-30 11:54:11.453 7978-7978/? D/cxa: hook
09-30 11:54:12.533 7996-7996/? D/cxa: hook
09-30 11:54:45.963 8061-8061/com.estrongs.android.pop D/cxa: hook
09-30 11:54:45.963 8061-8061/com.estrongs.android.pop D/cxa: hookend
09-30 11:54:46.633 8146-8146/? D/cxa: hook
09-30 11:54:46.633 8146-8146/? D/cxa: hookend
到这里基本上结束了。