1. 程式人生 > >android 改機,抹機工具開發 二

android 改機,抹機工具開發 二

上篇貼出了工具介面,此篇主要總敘架構以及xposed環境搭建。

一 :先貼出專案結構圖,以便有個大概印象。

libs 目錄:   

              存放第三方jar包

              XposedBridgeApi-52.jar 使用xposed框架所必須的,是應用與xposed框架之前的橋樑。 

             AMap_Location_V3.5.0_20170731.jar 是第三方地圖服務包,用來檢測模擬定位功能是否正確。

hook 目錄:  

xposed 模組的hook 函式,通過這裡的hook函式實現改機。

xpose目錄:

主要是實現IXposedHookLoadPackage介面


 

DevicesActivity.java :裝置資訊的顯示與修改頁面。

GPSActivity.java :  gps 模擬定位修改與顯示頁面。

TelephoneActivity.java  : 電話卡,運營商資訊的顯示與修改頁面

WifiActivity.java  :  wifi 相關資訊,藍芽相關資訊的顯示與修改。

二  環境搭建

 1,root安卓手機

   2,Xposed 框架安裝器

    相關資源:

   Xposed 框架安裝器和其他安卓軟體一樣,將安裝包安裝到手機。安裝完成後顯示如圖所示圖示:

由於Android系統5.0以上預設採用了ART模式,Android系統5.0 以下預設採用Davik模式。所以目前Xposed框架主要有兩個版本:一個是Android 4.0.3 to Android 4.4版本,一個是Android 5.0 以上版本, 根據自己手機型號,選擇合適的版本安裝。

點選進入Xposed installer:

選擇 框架,開始安裝框架,然後重啟。重啟後再次開啟Xposed Installer,點選框架,

表示框架安裝成功。

三,專案配置

 1.下載 XposedBridgeApi jar包,並放在libs目錄下。

        本專案使用的是XposedBridgeApi-52.jar

 2,修改AndroidManifest.xml檔案

         <meta-data
            android:name="xposedmodule"
            android:value="true" />
        <meta-data
            android:name="xposeddescription"
            android:value="varxposed" />
        <meta-data
            android:name="xposedminversion"
            android:value="52+" />

    xposedmodule代表的是Android程式作為Xposed中的一個模組,值為true;

    xposeddescription代表的是對本模組的功能的描述,可以自己簡單敘述下就可以了;

   xposedminversion代表的是本模組開發時用到的xposed的jar包的最低版本號,這裡是52,本專案使用的是XposedBridgeApi-52.jar包。

 3,實現繼承IXposedHookLoadPackage的子類

   程式碼片段如下:

public class XposedMod implements  IXposedHookLoadPackage {
	@Override
	public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {

覆寫handleLoadPackage方法,xposed的該方法在任何應用啟動時都會被呼叫,故可以進入任何應用程式的程序,對某個特定的應用,啟用相應的hook函式, 如果對某個應用不需要hook,直接從handleLoadPackage返回。

4,指定模組的入口

   繼承IXposedHookLoadPackage的子類都可以作為xposed的入口,一個專案中可以有多個繼承IXposedHookLoadPackage的子類,因此需要指定xposed的入口。方法如下:

    1)、在assets目錄下新建一個名為xposed_init的檔案。 

    2)、在xposed_init中寫入某個IXposedHookLoadPackage子類的完整類名,本專案xposed_init檔案內容如下:

 com.wutong.var.xpose.XposedMod

XposedMod 類目錄結構如下 

  

XposedMod 是繼承IXposedHookLoadPackage的子類

XposedMod implements  IXposedHookLoadPackage

經過以上幾步,XposedMod 的配置基本完成。

以上的配置操作相當於實現了一個沒有任何hook功能的XposedMod 模組,後續就是根據具體的業務場景,實現hook。

最後,為了讓XposedMod 模組生效, 需要進入Xposed installer ,選擇模組”,可以看到已經有了本模組,勾選本模組後,重啟手機生效。

qq交流群 620276892