アプリの権限を1か所で簡単に監査しますか?


28

とにかく、お使いの携帯電話にインストールされているすべてのアプリケーションとそれらが必要とするアクセス許可をすべて1つのページに一覧表示するか、リストをエクスポートして簡単に監査できるようにしますか?

回答:


14

Permission WatchdogPermissionsなどの市場アプリケーションを使用します。また、他にもいくつかあります。


残念ながら、アプリケーションのインストール時にすべての権限がリストされていない場合、Marketアプリケーションにはバグ(または意図した機能?)があります。これは、古いAndroidリリース用に設計されたソフトウェアとの互換性の問題である可能性があります... code.google.com/p/android/issues/detail?id=9365
Denis Nikolaenko

2
回答にコメントを含める方が簡単かもしれません。
bbaja42

@Nikolaenko、どうやらそれが目的であり、現在は変更: android.stackexchange.com/questions/605/...
BlackShift

@BlackShift、「今変わった」とはどういう意味ですか?Androidデベロッパーによって変更されました。チーム?
デニスニコラエンコ

@ニコラエンコ、私には不明瞭だったので、私は不明瞭だったと思う。cyanogenmod 6、android 2.2を実行していますが、ほとんどすべてのアプリが、リンクが暗黙的に許可している許可を求めています。だから、誰がこれを変更したのかわかりません(シアンまたはアンドロイドチーム)。
ブラックシフト



0

Permission Friendly Appsは、最も要求の厳しいアクセス要件から最も要求の少ないアクセス許可要件の順にインストールされたアプリをリストします。(ただし、実際に動作を追跡、監査、調整することはありません。)


0

質問にはAndroidバージョンが記載されていないため、Androidバージョン4.2.1以降に関連するコマンドラインベースの回答を提案しています。これは、理想的には、OSに依存しないソリューション、つまりPC上のOSです。

依存関係

  • をPCでセットアップする必要があります。
  • busyboxバイナリが必要です。デバイスがルート化されている場合は、Busyboxアプリをインストールします。それ以外の場合は、公式ソースからbusyboxバイナリをダウンロードし、バイナリの名前をbusyboxに変更し、すべてのユーザーに対してそのバイナリにLinux互換の実行可能権限を設定し、それを使用してデバイスに移動します

    adb push LOCAL_FILE /data/local/tmp/   # LOCAL_FILE is the file path where busybox binary is located in PC
    
  • aaptバイナリが必要です。CMまたはその派生ROMを実行している場合、この要件は無視してください。それ以外の場合、Android 4.xでは、ここからバイナリをダウンロードすることを検討し、バイナリの名前をaaptに変更し、すべてのユーザーに対してそのバイナリにLinux互換の実行可能権限を設定し、

    adb push LOCAL_FILE /data/local/tmp/   # LOCAL_FILE is the file path where busybox binary is located in PC . 
    

    Android 5.xユーザーの場合は、Googleにサポートを依頼してください。

これが魔法のような小さなスクリプトです:

#!/ system / bin / sh

#busyboxバイナリが/ data / local / tmp /または/ system / xbinに存在するかどうかを確認します。検出されたバイナリのパスを変数busyboxに設定するか、ファイルが存在しないか実行可能権限が設定されていない場合は終了します
[[-x / data / local / tmp / busybox]] && busybox = / data / local / tmp / busybox || {[[-x / system / xbin / busybox]] && busybox = / system / xbin / busybox || {printf "busyboxバイナリが見つからないか、実行権限が設定されていません。終了中\ n" && exit; }; }
#aaptバイナリが/ data / local / tmpまたは/ system / binまたは/ system / xbinに存在するかどうかを確認します。検出されたバイナリのパスを変数aaptに設定するか、ファイルが存在しないか、実行許可が設定されていない場合に終了します
[[-x / data / local / tmp / aapt]] && aapt = / data / local / tmp / aapt || {[[-x / system / bin / aapt]] && aapt = / system / bin / aapt || {[[-x / system / xbin / aapt]] && aapt = / system / xbin / aapt || {printf "aaptバイナリが見つからないか、実行権限が設定されていません。終了\ n" && exit; }; }; }

#インストールされているすべてのアプリのパッケージ名をリストし、/ sdcardの下のファイルpackages.txtに保存します
pmリストパッケージ| $ busybox sed 's / ^ package:// g' | $ busybox sort -o /sdcard/packages.txt

#保存したばかりの出力の各パッケージ名について、$ pathと$ labelを使用してアプリのラベルを取得し、行を印刷して、最後にアプリに付与された権限をリストします 
行を読み取り中; 行う
    path = $(pm path $ line | $ busybox sed 's / ^ package:// g'); 
    label = $($ aapt d badging $ path | $ busybox grep 'application:label =' | $ busybox cut -d "'" -f2);  
    $ busybox printf "パッケージ名$ line \ nを持つアプリ$ labelの許可"; 
    dumpsysパッケージ$ line | $ busybox sed -e '1、/ grantedPermissions:/ d' -e '/ ^ \ s * $ /、$ d' | $ busybox sort;
    $ busybox printf "\ n"; 
完了</sdcard/packages.txt

デモ出力:

パッケージ名がcn.wq.disableserviceのアプリDisableServiceの権限
      android.permission.READ_EXTERNAL_STORAGE
      android.permission.WRITE_EXTERNAL_STORAGE

パッケージ名co.vanir.indecentxposureを持つアプリIndecent Xposureの権限
      android.permission.RECEIVE_BOOT_COMPLETED

パッケージ名がcom.android.apps.tagのアプリタグの権限
      android.permission.CALL_PHONE
      android.permission.NFC
      android.permission.READ_CONTACTS
      android.permission.WAKE_LOCK
      android.permission.WRITE_SECURE_SETTINGS
...
...
パッケージ名がorg.cyanogenmod.themes.providerのアプリテーマプロバイダーの権限
      android.permission.ACCESS_NOTIFICATIONS
      android.permission.ACCESS_THEME_MANAGER
      android.permission.INTERNET
      android.permission.READ_THEMES
      android.permission.WRITE_SECURE_SETTINGS
      android.permission.WRITE_SETTINGS
      android.permission.WRITE_THEMES

PCでスクリプトを名前のファイルに保存し、perm_script.sh/ sdcardに移動します

adb push LOCAL_FILE /sdcard/   # LOCAL_FILE is the  path where you saved that file into PC

そのファイルを実行する

adb shell sh /sdcard/perm_script.sh > OUTPUT_FILE   # OUTPUT_FILE is the path where you want to save the final output

システムにインストールされているアプリが多いほど、コマンドの実行が完了するまでの時間が長くなります。私のデバイスでは、約3分かかりました。

関連:電話機能にアクセスできるすべてのインストール済みアプリを見つけるネイティブな方法はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.