Part 2. Xposed Module 開發教學技巧篇 - 以 MoPTT 為例
Part 3. Xposed Module 技巧教學 - 偵測模組啟用
Xposed Module 在安裝之後,需要在 Installer 中勾選啟用並重新開機後才能運作。
有的 Module 在沒啟用的狀態下開啟 UI,會顯示訊息表示尚未啟用該 Module:
不過上網搜尋資料或者查看 XposedBridgeApi.jar 都看不到取得模組是否被啟
用的方法,而此篇就是介紹該如何偵測模組在 Installer 中的啟用狀態。
PS:這裡指的是我們自己開發的這個 Module
方法其實很的簡單,也很具有 Xposed 的感覺。
也就是先在 UI (Activity)的地方建立一個 Method,假設 UI 叫做 MainActivity
而該 Method 稱作 isModuleEnabled:
private boolean isModuleEnabled(){ return false; }
接著,我們在 handleLoadPackage 中,加入一個要 Hook 的 Method:
看得出其中的奧妙了嗎? 沒錯,就是讓我們的 Module Hook 自己 Activity 的
該 Method,將原本傳回的 false 改成 true。
如此一來,我們只需要在 Activity 的 onCreate 或者 onResume 呼叫
isModuleEnabled 判斷 Module 是否被啟用就可以了。
=========== 補充說明 ===========
上面程式碼處看到的 XC_MethodReplacement 是另一種形式的 Callback,
其功能相當於底下的程式碼:
可以查看 XposedBridgeApi.jar 中 XC_MethodReplacement 的原始碼,
會更有感覺。
==============================
沒有留言:
張貼留言