0.前期準備
Xposed是一個已經被玩得很熟的套路了,這里不敢說有什么特別的見解,本質就是反射。
反射的學習
http://www.lxweimin.com/p/9f392c46e670
如果是第一次接觸Xposed,那么你需要一個裝上Xposed框架的機器。安裝過程不表,我是直接刷了一個自帶Xposed框架的第三方Rom。
那么安裝請參考
http://www.lxweimin.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學習筆記
http://www.lxweimin.com/p/ee0062468251
一定要看的!!
Xposed API文檔
稍晚附上給伸手黨的hook微信步數的模塊代碼
https://github.com/lamster2018/XposedExample
新增PreferenceFragment設置倍率
剛好踩了這個坑
http://www.lxweimin.com/p/c0e9a1baaa05
而更巧的是
MODE_WORLD_READABLE因為安全問題在N之后棄用,否則報
java.lang.SecurityException: MODE_WORLD_READABLE no longer supported