問題の説明:
事前定義されたパラメーターを使用して、特定の Android イメージで droidmon を動作させる必要があります。Xposed フレームワークは、インストール時に root アクセスが必要であるというエラーを表示します。
環境:
カーネルバージョン3.4.67+でカスタムルート化されたAndroid 4.4.2 x86イメージを実行しているGoogle Android Emulator(ただし、3.10以降でも同じ問題があります)
- -avd
- -カーネル
- -ラムディスク
- -キャッシュなし
- -selinux 寛容
- -no-snapstorage
- -詳細
- -ショーカーネル
SDK-ツール-バージョン: 25.2.2
SDK-プラットフォーム-ツール: 24.0.3
Android は、apk の不明なソースを許可するように構成されています
すでに試しました:
- /system RW の再マウント
- -selinux の使用が無効になっています (xposed ただし、-selinux permissive が必要です)。
- xposed から update-binary を抽出し、su でスクリプトを実行する
現在のステータス:
Xposed をインストールしようとすると、エミュレーターから次のログ メッセージが表示されます。
[ 355.372965] type=1400 audit(1477138733.355:23): avc: denied { execute } for pid=2796 comm="posed.installer" name="app_process" dev="mtdblock1" ino=7847 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:app_data_file:s0 tclass=file permissive=1
[ 355.372984] type=1400 audit(1477138733.355:24): avc: denied { execute_no_trans } for pid=2796 comm="posed.installer" path="/data/data/de.robv.android.xposed.installer/cache/app_process" dev="mtdblock1" ino=7847 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:app_data_file:s0 tclass=file permissive=1
[ 355.440354] type=1400 audit(1477138733.415:25): avc: denied { read } for pid=2769 comm="posed.installer" name="app_process" dev="mtdblock0" ino=96 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:zygote_exec:s0 tclass=file permissive=1
[ 355.440410] type=1400 audit(1477138733.415:26): avc: denied { open } for pid=2769 comm="posed.installer" name="app_process" dev="mtdblock0" ino=96 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:zygote_exec:s0 tclass=file permissive=1
[ 355.440450] type=1400 audit(1477138733.415:27): avc: denied { getattr } for pid=2769 comm="posed.installer" path="/system/bin/app_process" dev="mtdblock0" ino=96 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:zygote_exec:s0 tclass=file permissive=1
[ 365.476143] type=1400 audit(1477138743.455:28): avc: denied { execute } for pid=2805 comm="Thread-110" name="su" dev="mtdblock0" ino=972 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:su_exec:s0 tclass=file permissive=1
[ 365.476280] type=1400 audit(1477138743.455:29): avc: denied { read open } for pid=2805 comm="Thread-110" name="su" dev="mtdblock0" ino=972 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:su_exec:s0 tclass=file permissive=1
[ 365.476371] type=1400 audit(1477138743.455:30): avc: denied { execute_no_trans } for pid=2805 comm="Thread-110" path="/system/xbin/su" dev="mtdblock0" ino=972 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:su_exec:s0 tclass=file permissive=1
ステータスアップデート:
私が今知っているように、イメージは適切にルート化されていませんでした。SuperSU-2.78 のパッケージ化された su バイナリを使用してイメージを再ルートしました。system.img を Linux マシンのフォルダーにマウントして操作し、su と daemonsu (基本的に su をコピーして名前を変更) を /system/xbin/ に追加し、両方のファイルのアクセス許可を 6755 に変更しました。さらに、今のところ、/etc/init.goldfish.sh の最後に 2 行追加しました。
#remount /system rw
mount -o rw,remount /system
#start daemonsu as auto-daemon
/system/xbin/daemonsu --auto-daemon
SuperSU の Superuser.apk と適切な Xposed-Version の両方をインストールした後、Xposed は最初にインストールされますが、再起動後に libdvm.so で segfaults が発生します。