2014-01-13 22 views

答えて

45

私はちょうど一緒にジェイソンさんとJuusoの答えを組み合わせて、た後者リストの権限は(許可されたものを含む)を要求しながらは、を付与された元のリストの権限ことに気づくしたかったです。

は(要求されたが、許可されなかったが、省略するもの)を付与されたのみの権限を参照してください

adb shell dumpsys package packagename 

を使用し、出力の下部にgrantedPermissionsセクションを確認します。

  1. お知らせパッケージのAPK:すべての権限を(要求されたが付与されていない+要求と許可された)一覧表示するには

    。あなたは

    adb shell dumpsys package packagename 
    

    同じコマンドを実行し、その出力のcodePath要素からAPKのパスを取得することができます。

  2. (あなたのデバイス/エミュレータにはaaptがない場合)Juuso Ohtonenが答えて指摘しているように、デバイス/エミュレータからapkをプルする必要があります。だからあなたのデスクトップからこのような何かを実行します。パッケージの

    adb pull /data/app/com.your.package.apk 
    
  3. 一覧すべての権限

    をデバイスから欠落/エミュレータaaptは、あなたのAndroid SDKにbuild-tools/<version>/の下に見つけることができます。

    その後

    aapt d permissions /path/to/com.your.package.apk 
    
+0

言っておきますが、私は "adb shell dumpsys package"コマンドがアプリに関する多くの種類の情報を表示していることに気付きました。外部ストレージ(端末の「/ storage/emulated/0/Android/data/PACKAGE_NAME」など)など、アプリが正式に使用するすべてのフォルダも表示できますか? –

13
  1. 一覧そのインストール・パス(サードパーティ製のアプリでのみ興味があるなら-3フラグを使用)と一緒に、すべてのアプリケーション。たとえば、YouTubeアプリの権限を調べてみましょう。
    adb shell pm list packages -f

    出力:

    ...
    パッケージ:
    /data/app/com.google.android.youtube-1.apk=com.google.android.youtube ...

  2. デバイスから選択APKプル:

    adb pull /data/app/com.google.android.youtube-1.apk
  3. 一覧
    aapt d permissions com.google.android.youtube-1.apk

出力付き権限:

uses-permission: android.permission.BROADCAST_STICKY 
    uses-permission: android.permission.CALL_PHONE 
    uses-permission: android.permission.CALL_PRIVILEGED 
    uses-permission: android.permission.WRITE_SETTINGS 
    uses-permission: android.permission.WRITE_SECURE_SETTINGS 
    uses-permission: android.permission.READ_CONTACTS 
    uses-permission: android.permission.READ_CALL_LOG 
    uses-permission: android.permission.WRITE_CONTACTS 
    uses-permission: android.permission.WRITE_CALL_LOG 
    uses-permission: android.permission.SYSTEM_ALERT_WINDOW 
    uses-permission: android.permission.INTERNAL_SYSTEM_WINDOW 
    uses-permission: android.permission.ADD_SYSTEM_SERVICE 
    uses-permission: android.permission.VIBRATE 
    uses-permission: android.permission.BLUETOOTH 
    uses-permission: android.permission.BLUETOOTH_ADMIN 
    uses-permission: android.permission.REORDER_TASKS 
    uses-permission: android.permission.CHANGE_CONFIGURATION 
    ... 

...

+0

ニースの答えを実行しますが、なぜあなたは、ステップ2が必要なのでしょうか?それはそれなしでうまく動作します。 –

+0

@DenisKniazhev 'aapt'ツールはadbシェルで提供されていません –

+0

@coco_そうです、' aapt'をプリインストールしたエミュレータを使用していたに違いありません。 –

9

高速な方法: adbのシェルdumpsysパッケージのパッケージ名を| grepの許可

+0

これは、付与されたアクセス許可のみを一覧表示します。下の回答を参照してください。 –

+0

"pemission"という単語が含まれているアクセス許可のみが含まれていませんか? –

関連する問題