Xposed從安裝到寫代碼

手機安裝Xposed

之前是在電腦模擬器上安裝的,使用的是網易mumu模擬器,這個模擬器已經被root,安裝XposedInstaller後點擊框架-安裝或更新-重啓,就可用了,而且重啓十分快速,用於開發前期的工作十分方便,但一些問題在真機上會 暴露出來,所以還是需要一個真機的。

華爲手機

官網申請解鎖,有了解鎖碼,下載華爲手機助手和Google adb(包含fastboot),根據華爲官網上的解鎖步驟進行解鎖

解鎖後於花粉論壇上找的教程,刷入第三方rec,使用第三方rec安裝第三方ROM包,需要專門找版本、手機型號都對應的包,不然會出不少問題,我就因爲沒刷補丁,死活打不開開發者模式,刷入補丁就好了。

安裝Xposed

[官方安裝器下載地址](http://repo.xposed.info/module/de.robv.android.xposed.installer)

XposedInstaller官網下載頁面

第一個適用於android5及以上的,第二個是5以下的。

下載XposedInstaller.apk並安裝到手機

打開app,點擊安裝框架,重啓生效

工程

引入jar包

https://bintray.com/rovo89/de.robv.android.xposed/api

版本選擇

我的測試手機是Android 7的,下載最新的82就好,之前用的模擬器,下載的53的。

jar包選擇

可以看到有兩個jar包,帶sources的是源碼包,不帶的是api引用包,如果不用源碼,只要引入能使用的話,不用下載sources包。

引入

在app目錄下新建lib目錄,複製進去,注意lib與libs區分開,是爲了避免與libs裏面的其他jar包衝突。

在build.gradle中通過以下代碼來引入,provided只參與編譯,不打包,因爲xposed中有源碼,避免衝突。

provided files('lib/api-82.jar')

Android studio較高版本中provided已過時,可以用compileOnly來替代。編譯通過後就可以寫代碼了。

新建一個class類

public class HookData implements IXposedHookLoadPackage {



    @Override
    public void handleLoadPackage(final LoadPackageParam loadPackageParam) throws Throwable {
        
    }



}

這個類就是我們hook的執行類了,我們想要監控哪個app的哪個動作,就可以在handleLoadPackage 方法中寫了。

還有兩點需要注意

1.清單文件AndroidManifest

在標籤application中需要寫入

       <meta-data
            android:name="xposedmodule"
            android:value="true"/>

        <meta-data
            android:name="xposeddescription"
            android:value="Hook Test!"/>

        <meta-data
            android:name="xposedminversion"
            android:value="82"/>

第一個是代表本項目作爲xposed模塊,第二個代表你的模塊介紹,第三個代表模塊最低版本

2.xposed_init文件

在assets包下新增xposed_init文件,裏面寫剛纔新建的class類HookData的全路徑,包名.類名

這是xposed的入口,告訴Xposed哪個是模塊的入口。

注意:寫好的項目是可以沒有MainActivity的,代表它只是Xposed的模塊,並不是app,所以在桌面上也是沒有這個項目的icon的,當然,也可以寫activity,這樣它就是個攜帶模塊的app而已。

這只是個開頭,用Xposed還是有很多要學習的,比如怎麼用Toast,怎麼Hook其他app,怎麼用數據庫,等等,。

當然與之相關的也還有反編譯,so文件等多個知識點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章