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