LoginSignup
14
13

More than 5 years have passed since last update.

Android Runtime Permission のデバッグ方法について

Posted at

Overview

現在開発している Android アプリで Runtime Permission を実装しています。
Runtime Permission は一度許可してしまうと、再現しなくなるのでアプリを再インストールしなくてはいけなく面倒だったのですが、adb コマンドで指定した Permission だけを削除する方法が 公式 で紹介されてたので備忘録。

Permission を操作したいアプリのパッケージ名を確認

確認というほどでもないですが(自分の作成したパッケージ名です)、adb コマンドでも確認できます。

$ adb shell pm list packages
WARNING: linker: /system/lib/libhoudini.so has text relocations. This is wasting memory and prevents security hardening. Please fix.
package:com.example.android.livecubes
package:com.android.providers.telephony
package:com.google.android.googlequicksearchbox
package:com.android.providers.calendar
・
・
・

アプリが所有している Permission を確認

$ adb shell pm list permissions -d -g
WARNING: linker: /system/lib/libhoudini.so has text relocations. This is wasting memory and prevents security hardening. Please fix.
Dangerous Permissions:

group:com.google.android.gms.permission.CAR_INFORMATION
  permission:com.google.android.gms.permission.CAR_VENDOR_EXTENSION
  permission:com.google.android.gms.permission.CAR_MILEAGE
  permission:com.google.android.gms.permission.CAR_FUEL

group:android.permission-group.CONTACTS
  permission:android.permission.WRITE_CONTACTS
  permission:android.permission.GET_ACCOUNTS
  permission:android.permission.READ_CONTACTS

group:android.permission-group.PHONE
  permission:android.permission.READ_CALL_LOG
  permission:android.permission.READ_PHONE_STATE
  permission:android.permission.CALL_PHONE
  permission:android.permission.WRITE_CALL_LOG
  permission:android.permission.USE_SIP
  permission:android.permission.PROCESS_OUTGOING_CALLS
  permission:com.android.voicemail.permission.ADD_VOICEMAIL

group:android.permission-group.CALENDAR
  permission:android.permission.READ_CALENDAR
  permission:android.permission.WRITE_CALENDAR

group:android.permission-group.CAMERA
  permission:android.permission.CAMERA

group:android.permission-group.SENSORS
  permission:android.permission.BODY_SENSORS

group:android.permission-group.LOCATION
  permission:android.permission.ACCESS_FINE_LOCATION
  permission:com.google.android.gms.permission.CAR_SPEED
  permission:android.permission.ACCESS_COARSE_LOCATION

group:android.permission-group.STORAGE
  permission:android.permission.READ_EXTERNAL_STORAGE
  permission:android.permission.WRITE_EXTERNAL_STORAGE

group:android.permission-group.MICROPHONE
  permission:android.permission.RECORD_AUDIO

group:android.permission-group.SMS
  permission:android.permission.READ_SMS
  permission:android.permission.RECEIVE_WAP_PUSH
  permission:android.permission.RECEIVE_MMS
  permission:android.permission.RECEIVE_SMS
  permission:android.permission.SEND_SMS
  permission:android.permission.READ_CELL_BROADCASTS

指定した Permission を削除

adb shell pm revoke <PackageName> <PermissionName>

以下は com.sampo02.libsearch に対して電話をかける Permission を削除する例です。

adb shell pm revoke com.sampo02.libsearch android.permission.CALL_PHONE

全ての Permission を削除

全ての Permission を削除するコマンドは以下です、アプリインストール時の Runtime Permission の動作を確認したい時などに。

adb shell pm reset-permissions
14
13
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
13