システム権限が必要なアプリのテストの備忘メモ
はじめに
androidのAPIによりシステム権限が無いよー =>Exception な物があり
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE" tools:ignore="ProtectedPermissions" />
みたいな権限が必要なAPIとか・・
sample自体が試せない事があるので調べて見たメモ
動作環境
下記を参考にしたのですが・・
この手順で遣ると、インストールトリガーが今一わからない。
pushしただけでは、installされないよな??
で、調べてみると
- /system/app/
- /system/priv-app/
- Kitkat以降
に置いたapkが、エミュレータ起動時に自動インストールされるみたい。
従って、公式エミュレータだと再起動時に消えるので、テストできなくね? とい状態
ちなみに
上記に一度配置すれば、以降は ASより実行ボタンで・・な記載もありましたが、それも動かなかったです
かならず
gradlew assembleDebug
で作成したapkを配置後、エミュレータを再起動する必要があり*1
genymotionでやってみる
- mysample.apk
- OS7.1のgenymotion image
# この状態で /system/ 以下が書込/削除できる。実機では不可(たぶんroot権限が必要?) adb -s 192.168.56.101:5555 remount adb -s 192.168.56.101:5555 shell mkdir /system/priv-app/mysample adb -s 192.168.56.101:5555 push mysample.apk /system/priv-app/mysample
apkと同じ名前のフォルダを作らないと、installが始まらない
この状態でimageの起動し直しを行う。エミュレータに再起動オプションって無いんだよな・・
で、一度終了し直して起動し直す必要があり
システム権限ありのアプリの作り方
下記読んでるんだけと、作るの難しそう
gemymotionやエミュレータで実行できないアプリの検証
rootチェックアプリとかの挙動を見る時、引っかかったのでメモ
Chariesあたりを入れて通信を観たい系
下記あたりのチェックを入れても、実機だと別の要因で動かないことが多々なんだよな・・。やっぱりエミュレータ系のほうが素直かも・・
Build Prop Editor ro.build.tags test-keys => dev-keys Hide Rooting Lite 実行 Superuser 設定>Superuser Access>無効化
参考
*1:installされる場所が違うからだと思われ・・