Permission checker

Download

You can download our app at Google play.

Why you need a permission checker?

We belive the current (2018/08) android permission management system (later than android 6.0)is deeply flawed for several reasons.

  • Runtime permission can be bypassed by changing target sdk version. Starting from Android 6.0, Google has introduced run time permissions in Android operating system. And there is the google official best practice here. However, in the real world, if you set target sdk < 23, which is before Android 6.0, the permissions will be granted automaticly when the app is installed. Very few people will manage to change the permissions through android permission manager since they are not aware of it!
  • Permissions are granted by category, which may include more permissions than we want to grant. There are more permissions than what you expect in one group. For example, Phone permission group includes 9 permissions, including reading user’s call logs and get phone unique device IDs. For another example, READ and WRITE CALENDAR permissions are managed at the same time. If I want add one event to calender from the mail app, I have to grant calendar permission to this app, which might cause the details of my calendar to “known” to the app. More fine-grained permission control will satisfy my need more.

  • Several important permissions can not be managed at runtime, since Google thinks they are not “dangerous”. There are 10 categories of dangerous permissions, as shown in appendix 1. However, many important permissions, like network and bluetooth, can not be managed at runtime; it means as long as the app declared these permissions in the Android Manifest, the permissions will be granted to the app after it is installed. These permissions only show up at install time. As a result, many apps take advantage of this feature and abuses these permissions. To address this issue, we classify these abused permissions into several categories as shown in appendix 2. We also show these permissions in Warning permissions category.

How do we design Permission Checker to address these issues.?

  • We provide a list of apps with classified detailed permissions, in order to assist you manage permissions.
  • We present the dangerous permissions with list of apps with statistics, which covers not only the granted apps, but all apps who declared it in the manifest.
  • Unfortunately, due to the limitation of current android permission management system, we can only help you make changes to the default dangerous permissions. If you want to toggle these automaticly granted permissions, you have to root your phone.

Screenshots
















Appendix

Dangerous permission categories and detailed permissions

  1. Calendar
    • android.permission.READ_CALENDAR
    • android.permission.WRITE_CALENDAR
  2. Camera
    • android.permission.CAMERA
  3. Contact
    • android.permission.READ_CONTACTS
    • android.permission.WRITE_CONTACTS
  4. Account
    • android.permission.GET_ACCOUNTS
  5. Location
    • android.permission.ACCESS_FINE_LOCATION
    • android.permission.ACCESS_COARSE_LOCATION
  6. Audio
    • android.permission.RECORD_AUDIO
  7. Phone
    • android.permission.READ_PHONE_STATE - this will reveal phone’s identity, like IMEI
    • android.permission.READ_PHONE_NUMBERS
    • android.permission.CALL_PHONE
    • android.permission.ANSWER_PHONE_CALLS
    • android.permission.READ_CALL_LOG
    • android.permission.WRITE_CALL_LOG
    • android.permission.ADD_VOICEMAIL
    • android.permission.USE_SIP
    • android.permission.PROCESS_OUTGOING_CALLS
  8. Body sensor
    • android.permission.BODY_SENSORS
  9. SMS
    • android.permission.SEND_SMS
    • android.permission.RECEIVE_SMS
    • android.permission.READ_SMS
    • android.permission.RECEIVE_WAP_PUSH
    • android.permission.RECEIVE_MMS
  10. SD card (External storage or USB)
    • android.permission.READ_EXTERNAL_STORAGE
    • android.permission.WRITE_EXTERNAL_STORAGE

Non-official dangerous permission categories and detailed permissions

  1. Run at start up
    • android.permission.RECEIVE_BOOT_COMPLETED
  2. Prevent phone from sleep
    • android.permission.WAKE_LOCK
  3. Network
    • android.permission.INTERNET
    • android.permission.ACCESS_NETWORK_STATE
    • android.permission.CHANGE_NETWORK_STATE
  4. WiFi
    • android.permission.CHANGE_WIFI_MULTICAST_STATE
    • android.permission.ACCESS_WIFI_STATE
    • android.permission.CHANGE_WIFI_STATE
  5. Settings (This permission might be different for differnet ROMs.)
    • android.permission.WRITE_SETTINGS
  6. Bluetooth
    • android.permission.BLUETOOTH
    • android.permission.BLUETOOTH_ADMIN
  7. Device and app histroy
    • android.permission.READ_LOGS
    • android.permission.GET_TASKS - retrieve running apps
    • com.android.browser.permission.READ_HISTORY_BOOKMARKS - browser history, scary
    • android.permission.DUMP
  8. Close other apps
    • android.permission.KILL_BACKGROUND_PROCESSES
    • android.permission.FORCE_STOP_PACKAGES
  9. Vibrate
    • android.permission.VIBRATE