2016年11月28日月曜日

Android 4.1 (Jelly Bean) 以降でも、logcat表示アプリを使えるようにする。(「android.permission.READ_LOGS」権限の有効化)

まとめ

Android 4.1 (Jelly Bean) 以降で logcat表示アプリ を機能させるためには、adb shell (pm) を使って、「android.permission.READ_LOGS」権限を有効化する必要あり。(root化は不要)

  • adb shell pm grant <PACKAGE> android.permission.READ_LOGS

たとえば、aLogcat を Jelly Bean 以降でも機能させたい場合には、adb shell で下記のコマンドを実行する。

  • adb shell pm grant org.jtb.alogcat android.permission.READ_LOGS

背景

android.permission.READ_LOGS」権限の protectionLevel が、Jelly Bean から変更になった。

Android 4.0.3 (Ice Cream Sandwich MR1) 以前の READ_LOGS
android:protectionLevel="dangerous"
Android 4.1 (Jelly Bean) 以降の READ_LOGS
android:protectionLevel="signature|system|development"

その結果、通常のアプリでは、AndroidManifest.xml で「android.permission.READ_LOGS」権限を要求するだけでは、権限が有効にならなくなった。
AndroidManifest.xml での権限要求に加えて、パッケージマネージャ (pm) での権限有効化 (grant) が必要となった。

つまり、「android.permission.READ_LOGS」権限を有効化されていないアプリは、Android 4.1 (Jelly Bean) 以降では、他アプリの出力したログを取得 (表示) できない。(できなくなった)


参考

0 件のコメント :

コメントを投稿