注意
この記事の内容は2017年1月16日時点の物です。
内容が古くなっている場合があります。
Ⅰ はじめに
英語読める人は こちらへ この記事は次のリビジョンを元にしています 77a14d29d04d6c01fa78218cfc04946f64987fd1
Ⅱ 準備物
- Android Studio
- root化済みのAndroid端末
- Xposed Installerを予めインストールして下さい
Ⅲ 開発方法
1. プロジェクト作成
2. アプリケーション名を決める
3. プラットフォームを決める
Minimum SDKはAndroid 4.0.3(API 15)
を選択する。
4. Activityは追加しない
5. app/build.gradleを書き換える
以下のコードをbuild.gradleに追加します。
repositories { jcenter(); } dependencies { provided 'de.robv.android.xposed:api:82' }
6. AndroidManifest.xmlを書き換える
以下のコードをAndroidManifest.xmlに追加します。
<meta-data android:name="xposedmodule" android:value="true" /> <meta-data android:name="xposeddescription" android:value="Xposedモジュールの説明" /> <meta-data android:name="xposedminversion" android:value="53" />
7. 新規クラスの作成
package net.kagasu.myxposedmodule; import de.robv.android.xposed.IXposedHookLoadPackage; import de.robv.android.xposed.XposedBridge; import de.robv.android.xposed.callbacks.XC_LoadPackage.LoadPackageParam; public class MyXposedModule implements IXposedHookLoadPackage { public void handleLoadPackage(final LoadPackageParam lpparam) throws Throwable { XposedBridge.log("Loaded app: " + lpparam.packageName); } }
8. xposed_initファイルの作成
app/src/main/assets/
に xposed_init
ファイルの作成を行って下さい。
※うまくフォルダの作成ができない場合は、
Tool WindowのProjectの表示形式をProject Filesに変更した後に作業しましょう。
9. xposed_initにエントリポイントとなるクラス名を書く
net.kagasu.myxposedmodule.MyXposedModule
10. ビルド
プロジェクトをビルドし、Xposedモジュールをロードさせます。
モジュールを追加/変更した後はAndroid端末の再起動を必ず行って下さい。
※Xposed Installer → フレームワーク → 簡易再起動
でも可
11. 実行結果
Android端末再起動後にXposed Installer → ログ
で実行結果が確認できます。
トラブルシューティング
- "Session 'app': Error Launching activity" と出る
今回のサンプルはActivityがないので正常です。
コードを書き換えてもモジュールが更新されない
Android StudioのBuild → Rebuild Project
を実行した後にRun appを実行すると更新されます。 更新した後はAndroid端末の再起動を必ず行って下さい。