0.前期准备
Xposed是一个已经被玩得很熟的套路了,这里不敢说有什么特别的见解,本质就是反射。
反射的学习
https://www.jianshu.com/p/9f392c46e670
如果是第一次接触Xposed,那么你需要一个装上Xposed框架的机器。安装过程不表,我是直接刷了一个自带Xposed框架的第三方Rom。
那么安装请参考
https://www.jianshu.com/p/655a07b687ec
如果不想刷机的,VirtualXposed了解一下
http://xposed.appkg.com/2799.html
扫盲,想吃快餐的
请参考
https://www.52pojie.cn/thread-677215-1-1.html
1.导入jar
请注意不要用compile!不要用compile!不要用compile!
推荐用gradle方式引入
https://github.com/rovo89/XposedBridge/wiki/Using-the-Xposed-Framework-API
如果要本地包的话,放的位置是lib而不是libs
2.注册到清单
<meta-data
android:name="xposedmodule"
android:value="true"/> <!--表示是xpose模块,因此xpose框架能识别它-->
<meta-data
android:name="xposeddescription"
android:value="module test"/> <!--对模块功能的描述信息-->
<meta-data
android:name="xposedminversion"
android:value="54"/><!--jar包的最低版本,包是54,你这里写30也没问题的-->
3.新建类,实现框架接口和方法
此处就贴api吧,
http://api.xposed.info/reference/packages.html
网上太多例子了
see
1.Xposed________给微信加个按钮
5.Android中Xposed框架篇—利用Xposed框架实现拦截系统方法
4.注册指明实现框架的类
新建asset文件夹,新建一个无后缀的文件,文件名 xposed_init,并将该类的全包名写进去。
5.打包
因为实际上这些是作为一个模块,有点像插件化的意思,
什么打包不会?Build-Generate Signed Apk
6.重启
Xposed框架监听了使用该接口的模块,安装上模块,就可以在模块列表里找到它。 adb reboot即可。
难点有几个:安装Xposed框架[允悲],因为这个就是个门槛,装上 才能玩。现在有virtualXposed了
再然后是分析需被hook的app,只有分析出需要被hook的点,这个框架才能发挥出最大的威力,这就引出了另一个话题,反编译拿到明文代码,无论混淆还是加固,你搞不到点子上,hook个啥?
最后才是写hook代码。
附上我的反Xposed学习笔记
https://www.jianshu.com/p/ee0062468251
一定要看的!!
Xposed API文档
稍晚附上给伸手党的hook微信步数的模块代码
https://github.com/lamster2018/XposedExample
新增PreferenceFragment设置倍率
刚好踩了这个坑
https://www.jianshu.com/p/c0e9a1baaa05
而更巧的是
MODE_WORLD_READABLE因为安全问题在N之后弃用,否则报
java.lang.SecurityException: MODE_WORLD_READABLE no longer supported