41

アクセス許可 [Mainfest.xml で要求された] が Android アプリで削除する目的でどのように、どこで使用されたかを調査したい場合、これを行う簡単な方法はありますか? lint または findbugs は、プロジェクトで使用/悪用されたパーミッションを追跡するための何らかのサポートを提供しますか?

4

7 に答える 7

11

私はあなたの命を救うために未来から来ました。

ここで (将来的に)、LINT は、 LINTのチェックでわかるように、不足しているアクセス許可をチェックします。

  • そのため、Android パーミッションを使用しAndroidManifest.xmlてすべてのタグを削除します(つまり、やなどのアプリに属する​​パーミッションは削除しないでください)。<uses-permission> UA_DATAC2D_MESSAGE
  • 次に、LINT 分析を実行します。クリックしてAnalyzeからInspect Code...
  • 下を見てAndroid -> Constant and Resource Type Mismatches
  • 不足している権限がすべて表示されます。
  • 次に、それらを右クリックして選択しますApply fix "Add Permission"。このオプションを選択すると、Android Studio にはエラーごとに 1 つの権限が含まれます。そのため、マニフェスト ファイルに同じアクセス許可の複数のコピーが作成されることになります。重複を削除するだけです。手動でもできます。

LINT ルールの説明は次のとおりです。

 ID リソースタイプ

 説明

このインスペクションは、さまざまなサポート アノテーション (RequiresPermission や UiThread など) でアノテーションが付けられた Android API 呼び出しを調べ、アノテーションで指定されたとおりに API を正しく使用していない呼び出しにフラグを立てます。このインスペクションによってフラグが立てられるエラーの例:

  • 別のタイプ (R.dimen など) を予期する API に、間違ったタイプのリソース整数 (R.string など) を渡す。
  • オーバーライドされたメソッドを必要とするメソッドで (スーパー経由で) 呼び出すのを忘れる
  • マニフェストでパーミッションを宣言せずにパーミッションを必要とするメソッドを呼び出す
  • RGB 整数値を期待するメソッドにリソース カラー参照を渡します。

...などなど。詳細については、http://developer.android.com/tools/debugging/annotations.html のドキュメントを参照してください


Android Studio 2.1.2 を使用しています。

于 2016-07-06T15:38:32.137 に答える
0

コードを記述していないアプリに対して行う方法は、アクセス許可を 1 つずつ削除し、毎回アプリをエンドツーエンドでテストすることです。失敗したら絞り込む。そうでない場合、その許可は使用されない可能性があります。

于 2014-07-01T06:04:19.067 に答える
0

それらを 1 つずつ削除して、アプリがまだ正常に動作するかどうかを確認する必要があります。これは lint によってチェックされません (そうあるべきです)。

彼らが戻ってきたら (彼らは現在ダウンしています)、あなたの apk をこのウェブサイトにアップロードして (それでよければ)、あなたが使用しているパーミッションを彼らに静的に分析させることができます: http://www.android-permissions.org/

于 2014-07-19T20:13:30.313 に答える
0

最善の方法は、 may が実際に何をするかを理解することです。カメラを使用する場合は、カメラの許可が必要であることがわかります。

于 2016-03-27T16:05:40.443 に答える