Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Android M-Preview 2 - Permissions + Groups + Protection Level
(android.permission-group.CONTACTS) android.permission.READ_CONTACTS dangerous
(android.permission-group.CONTACTS) android.permission.WRITE_CONTACTS dangerous
(android.permission-group.CONTACTS) android.permission.READ_PROFILE dangerous
(android.permission-group.CONTACTS) android.permission.WRITE_PROFILE dangerous
(android.permission-group.CALENDAR) android.permission.READ_CALENDAR dangerous
(android.permission-group.CALENDAR) android.permission.WRITE_CALENDAR dangerous
(android.permission-group.SMS) android.permission.SEND_SMS dangerous
(android.permission-group.SMS) android.permission.RECEIVE_SMS dangerous
(android.permission-group.SMS) android.permission.READ_SMS dangerous
(android.permission-group.SMS) android.permission.RECEIVE_WAP_PUSH dangerous
(android.permission-group.SMS) android.permission.RECEIVE_MMS dangerous
(android.permission-group.SMS) android.permission.READ_CELL_BROADCASTS dangerous
(android.permission-group.STORAGE) android.permission.READ_EXTERNAL_STORAGE normal
(android.permission-group.STORAGE) android.permission.WRITE_EXTERNAL_STORAGE dangerous
(android.permission-group.SOCIAL_INFO) android.permission.READ_SOCIAL_STREAM dangerous
(android.permission-group.SOCIAL_INFO) android.permission.WRITE_SOCIAL_STREAM dangerous
(android.permission-group.LOCATION) android.permission.ACCESS_FINE_LOCATION dangerous
(android.permission-group.LOCATION) android.permission.ACCESS_COARSE_LOCATION dangerous
(android.permission-group.PHONE) android.permission.READ_PHONE_STATE dangerous
(android.permission-group.PHONE) android.permission.CALL_PHONE dangerous
(android.permission-group.PHONE) android.permission.READ_CALL_LOG dangerous
(android.permission-group.PHONE) android.permission.WRITE_CALL_LOG dangerous
(android.permission-group.PHONE) com.android.voicemail.permission.ADD_VOICEMAIL dangerous
(android.permission-group.PHONE) android.permission.USE_SIP dangerous
(android.permission-group.PHONE) android.permission.PROCESS_OUTGOING_CALLS dangerous
(android.permission-group.MICROPHONE) android.permission.RECORD_AUDIO dangerous
(android.permission-group.CAMERA) android.permission.CAMERA dangerous
(android.permission-group.SENSORS) android.permission.BODY_SENSORS dangerous
(android.permission-group.SENSORS) android.permission.USE_FINGERPRINT normal
(null) android.permission.SEND_RESPOND_VIA_MESSAGE <unknown>
(null) android.permission.CARRIER_FILTER_SMS <unknown>
(null) android.permission.RECEIVE_EMERGENCY_BROADCAST <unknown>
(null) android.permission.RECEIVE_BLUETOOTH_MAP <unknown>
(null) android.permission.BIND_DIRECTORY_SEARCH <unknown>
(android.permission-group.USER_DICTIONARY) android.permission.READ_USER_DICTIONARY dangerous
(android.permission-group.USER_DICTIONARY) android.permission.WRITE_USER_DICTIONARY normal
(null) com.android.alarm.permission.SET_ALARM normal
(null) com.android.voicemail.permission.WRITE_VOICEMAIL <unknown>
(null) com.android.voicemail.permission.READ_VOICEMAIL <unknown>
(null) android.permission.ACCESS_LOCATION_EXTRA_COMMANDS normal
(null) android.permission.INSTALL_LOCATION_PROVIDER <unknown>
(null) android.permission.HDMI_CEC <unknown>
(null) android.permission.LOCATION_HARDWARE <unknown>
(null) android.permission.ACCESS_MOCK_LOCATION signature
(null) android.permission.INTERNET normal
(null) android.permission.ACCESS_NETWORK_STATE normal
(null) android.permission.ACCESS_WIFI_STATE normal
(null) android.permission.CHANGE_WIFI_STATE normal
(null) android.permission.READ_WIFI_CREDENTIAL <unknown>
(null) android.permission.RECEIVE_WIFI_CREDENTIAL_CHANGE <unknown>
(null) android.permission.OVERRIDE_WIFI_CONFIG <unknown>
(null) android.permission.ACCESS_WIMAX_STATE normal
(null) android.permission.CHANGE_WIMAX_STATE normal
(null) android.permission.SCORE_NETWORKS <unknown>
(null) android.permission.BLUETOOTH normal
(null) android.permission.BLUETOOTH_ADMIN normal
(null) android.permission.BLUETOOTH_PRIVILEGED <unknown>
(null) android.permission.BLUETOOTH_MAP signature
(null) android.permission.BLUETOOTH_STACK signature
(null) android.permission.NFC normal
(null) android.permission.CONNECTIVITY_INTERNAL <unknown>
(null) android.permission.RECEIVE_DATA_ACTIVITY_CHANGE <unknown>
(null) android.permission.LOOP_RADIO <unknown>
(null) android.permission.NFC_HANDOVER_STATUS <unknown>
(android.permission-group.CONTACTS) android.permission.GET_ACCOUNTS normal
(android.permission-group.ACCOUNTS) android.permission.ACCOUNT_MANAGER signature
(null) android.permission.CHANGE_WIFI_MULTICAST_STATE normal
(null) android.permission.VIBRATE normal
(null) android.permission.FLASHLIGHT normal
(null) android.permission.WAKE_LOCK normal
(null) android.permission.TRANSMIT_IR normal
(null) android.permission.MODIFY_AUDIO_SETTINGS normal
(null) android.permission.MANAGE_USB <unknown>
(null) android.permission.ACCESS_MTP <unknown>
(null) android.permission.HARDWARE_TEST signature
(null) android.permission.ACCESS_FM_RADIO <unknown>
(null) android.permission.NET_ADMIN signature
(null) android.permission.REMOTE_AUDIO_PLAYBACK signature
(null) android.permission.TV_INPUT_HARDWARE <unknown>
(null) android.permission.CAPTURE_TV_INPUT <unknown>
(null) android.permission.DVB_DEVICE <unknown>
(null) android.permission.OEM_UNLOCK_STATE signature
(null) android.permission.ACCESS_PDB_STATE signature
(null) android.permission.NOTIFY_PENDING_SYSTEM_UPDATE <unknown>
(null) android.permission.CAMERA_DISABLE_TRANSMIT_LED <unknown>
(null) android.permission.CAMERA_SEND_SYSTEM_EVENTS <unknown>
(null) android.permission.MODIFY_PHONE_STATE <unknown>
(null) android.permission.READ_PRECISE_PHONE_STATE <unknown>
(null) android.permission.READ_PRIVILEGED_PHONE_STATE <unknown>
(null) android.permission.REGISTER_SIM_SUBSCRIPTION <unknown>
(null) android.permission.REGISTER_CALL_PROVIDER <unknown>
(null) android.permission.REGISTER_CONNECTION_MANAGER <unknown>
(null) android.permission.BIND_INCALL_SERVICE <unknown>
(null) android.permission.BIND_CONNECTION_SERVICE <unknown>
(null) android.permission.BIND_TELECOM_CONNECTION_SERVICE <unknown>
(null) android.permission.CONTROL_INCALL_EXPERIENCE <unknown>
(null) android.permission.RECEIVE_STK_COMMANDS <unknown>
(null) android.permission.WRITE_MEDIA_STORAGE <unknown>
(null) android.permission.MANAGE_DOCUMENTS signature
(null) android.permission.DISABLE_KEYGUARD normal
(null) android.permission.GET_TASKS normal
(null) android.permission.REAL_GET_TASKS <unknown>
(null) android.permission.START_TASKS_FROM_RECENTS <unknown>
(null) android.permission.INTERACT_ACROSS_USERS <unknown>
(null) android.permission.INTERACT_ACROSS_USERS_FULL signature
(null) android.permission.MANAGE_USERS <unknown>
(null) android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS signature
(null) android.permission.GET_DETAILED_TASKS signature
(null) android.permission.REORDER_TASKS normal
(null) android.permission.REMOVE_TASKS signature
(null) android.permission.MANAGE_ACTIVITY_STACKS <unknown>
(null) android.permission.START_ANY_ACTIVITY signature
(null) android.permission.RESTART_PACKAGES normal
(null) android.permission.KILL_BACKGROUND_PROCESSES normal
(null) android.permission.SYSTEM_ALERT_WINDOW dangerous
(null) android.permission.SET_WALLPAPER normal
(null) android.permission.SET_WALLPAPER_HINTS normal
(null) android.permission.SET_TIME <unknown>
(null) android.permission.SET_TIME_ZONE normal
(null) android.permission.EXPAND_STATUS_BAR normal
(null) com.android.launcher.permission.INSTALL_SHORTCUT dangerous
(null) com.android.launcher.permission.UNINSTALL_SHORTCUT dangerous
(null) android.permission.READ_SYNC_SETTINGS normal
(null) android.permission.WRITE_SYNC_SETTINGS normal
(null) android.permission.READ_SYNC_STATS normal
(null) android.permission.SET_SCREEN_COMPATIBILITY signature
(null) android.permission.ACCESS_ALL_EXTERNAL_STORAGE signature
(null) android.permission.CHANGE_CONFIGURATION <unknown>
(null) android.permission.WRITE_SETTINGS dangerous
(null) android.permission.WRITE_GSERVICES <unknown>
(null) android.permission.FORCE_STOP_PACKAGES <unknown>
(null) android.permission.RETRIEVE_WINDOW_CONTENT <unknown>
(null) android.permission.SET_ANIMATION_SCALE <unknown>
(null) android.permission.PERSISTENT_ACTIVITY normal
(null) android.permission.GET_PACKAGE_SIZE normal
(null) android.permission.SET_PREFERRED_APPLICATIONS signature
(null) android.permission.RECEIVE_BOOT_COMPLETED normal
(null) android.permission.BROADCAST_STICKY normal
(null) android.permission.MOUNT_UNMOUNT_FILESYSTEMS <unknown>
(null) android.permission.MOUNT_FORMAT_FILESYSTEMS <unknown>
(null) android.permission.ASEC_ACCESS signature
(null) android.permission.ASEC_CREATE signature
(null) android.permission.ASEC_DESTROY signature
(null) android.permission.ASEC_MOUNT_UNMOUNT signature
(null) android.permission.ASEC_RENAME signature
(null) android.permission.WRITE_APN_SETTINGS <unknown>
(null) android.permission.CHANGE_NETWORK_STATE normal
(null) android.permission.CLEAR_APP_CACHE <unknown>
(null) android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK <unknown>
(null) android.permission.MANAGE_CA_CERTIFICATES <unknown>
(null) android.permission.RECOVERY <unknown>
(null) android.permission.BIND_JOB_SERVICE signature
(null) android.permission.UPDATE_CONFIG <unknown>
(null) android.permission.WRITE_SECURE_SETTINGS <unknown>
(null) android.permission.DUMP <unknown>
(null) android.permission.READ_LOGS <unknown>
(null) android.permission.SET_DEBUG_APP <unknown>
(null) android.permission.SET_PROCESS_LIMIT <unknown>
(null) android.permission.SET_ALWAYS_FINISH <unknown>
(null) android.permission.SIGNAL_PERSISTENT_PROCESSES <unknown>
(null) android.permission.DIAGNOSTIC signature
(null) android.permission.STATUS_BAR <unknown>
(null) android.permission.STATUS_BAR_SERVICE signature
(null) android.permission.FORCE_BACK signature
(null) android.permission.UPDATE_DEVICE_STATS <unknown>
(null) android.permission.GET_APP_OPS_STATS <unknown>
(null) android.permission.UPDATE_APP_OPS_STATS <unknown>
(null) android.permission.INTERNAL_SYSTEM_WINDOW signature
(null) android.permission.MANAGE_APP_TOKENS signature
(null) android.permission.FREEZE_SCREEN signature
(null) android.permission.INJECT_EVENTS signature
(null) android.permission.FILTER_EVENTS signature
(null) android.permission.RETRIEVE_WINDOW_TOKEN signature
(null) android.permission.FRAME_STATS signature
(null) android.permission.TEMPORARY_ENABLE_ACCESSIBILITY signature
(null) android.permission.SET_ACTIVITY_WATCHER signature
(null) android.permission.SHUTDOWN <unknown>
(null) android.permission.STOP_APP_SWITCHES <unknown>
(null) android.permission.GET_TOP_ACTIVITY_INFO signature
(null) android.permission.READ_INPUT_STATE signature
(null) android.permission.BIND_INPUT_METHOD signature
(null) android.permission.BIND_MIDI_DEVICE_SERVICE signature
(null) android.permission.BIND_ACCESSIBILITY_SERVICE signature
(null) android.permission.BIND_PRINT_SERVICE signature
(null) android.permission.BIND_NFC_SERVICE signature
(null) android.permission.BIND_PRINT_SPOOLER_SERVICE signature
(null) android.permission.BIND_TEXT_SERVICE signature
(null) android.permission.BIND_VPN_SERVICE signature
(null) android.permission.BIND_WALLPAPER <unknown>
(null) android.permission.BIND_VOICE_INTERACTION signature
(null) android.permission.MANAGE_VOICE_KEYPHRASES <unknown>
(null) android.permission.BIND_REMOTE_DISPLAY signature
(null) android.permission.BIND_TV_INPUT <unknown>
(null) android.permission.MODIFY_PARENTAL_CONTROLS <unknown>
(null) android.permission.BIND_ROUTE_PROVIDER signature
(null) android.permission.BIND_DEVICE_ADMIN signature
(null) android.permission.MANAGE_DEVICE_ADMINS <unknown>
(null) android.permission.SET_ORIENTATION signature
(null) android.permission.SET_POINTER_SPEED signature
(null) android.permission.SET_INPUT_CALIBRATION signature
(null) android.permission.SET_KEYBOARD_LAYOUT signature
(null) android.permission.REQUEST_INSTALL_PACKAGES normal
(null) android.permission.INSTALL_PACKAGES <unknown>
(null) android.permission.CLEAR_APP_USER_DATA signature
(null) android.permission.DELETE_CACHE_FILES <unknown>
(null) android.permission.DELETE_PACKAGES <unknown>
(null) android.permission.MOVE_PACKAGE <unknown>
(null) android.permission.CHANGE_COMPONENT_ENABLED_STATE <unknown>
(null) android.permission.GRANT_REVOKE_PERMISSIONS signature
(null) android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS <unknown>
(null) android.permission.ACCESS_SURFACE_FLINGER signature
(null) android.permission.READ_FRAME_BUFFER <unknown>
(null) android.permission.ACCESS_INPUT_FLINGER signature
(null) android.permission.CONFIGURE_WIFI_DISPLAY signature
(null) android.permission.CONTROL_WIFI_DISPLAY signature
(null) android.permission.CONTROL_VPN <unknown>
(null) android.permission.CAPTURE_AUDIO_OUTPUT <unknown>
(null) android.permission.CAPTURE_AUDIO_HOTWORD <unknown>
(null) android.permission.MODIFY_AUDIO_ROUTING <unknown>
(null) android.permission.CAPTURE_VIDEO_OUTPUT <unknown>
(null) android.permission.CAPTURE_SECURE_VIDEO_OUTPUT <unknown>
(null) android.permission.MEDIA_CONTENT_CONTROL <unknown>
(null) android.permission.BRICK signature
(null) android.permission.REBOOT <unknown>
(null) android.permission.DEVICE_POWER signature
(null) android.permission.USER_ACTIVITY <unknown>
(null) android.permission.NET_TUNNELING signature
(null) android.permission.FACTORY_TEST signature
(null) android.permission.BROADCAST_PACKAGE_REMOVED signature
(null) android.permission.BROADCAST_SMS signature
(null) android.permission.BROADCAST_WAP_PUSH signature
(null) android.permission.BROADCAST_NETWORK_PRIVILEGED <unknown>
(null) android.permission.MASTER_CLEAR <unknown>
(null) android.permission.CALL_PRIVILEGED <unknown>
(null) android.permission.PERFORM_CDMA_PROVISIONING <unknown>
(null) android.permission.PERFORM_SIM_ACTIVATION <unknown>
(null) android.permission.CONTROL_LOCATION_UPDATES <unknown>
(null) android.permission.ACCESS_CHECKIN_PROPERTIES <unknown>
(null) android.permission.PACKAGE_USAGE_STATS <unknown>
(null) android.permission.CHANGE_APP_IDLE_STATE signature
(null) android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST <unknown>
(null) android.permission.BATTERY_STATS <unknown>
(null) android.permission.BACKUP <unknown>
(null) android.permission.CONFIRM_FULL_BACKUP signature
(null) android.permission.BIND_REMOTEVIEWS <unknown>
(null) android.permission.BIND_APPWIDGET <unknown>
(null) android.permission.BIND_KEYGUARD_APPWIDGET <unknown>
(null) android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS <unknown>
(null) android.permission.CHANGE_BACKGROUND_DATA_SETTING signature
(null) android.permission.GLOBAL_SEARCH <unknown>
(null) android.permission.GLOBAL_SEARCH_CONTROL signature
(null) android.permission.READ_SEARCH_INDEXABLES <unknown>
(null) android.permission.SET_WALLPAPER_COMPONENT <unknown>
(null) android.permission.READ_DREAM_STATE <unknown>
(null) android.permission.WRITE_DREAM_STATE <unknown>
(null) android.permission.ACCESS_CACHE_FILESYSTEM <unknown>
(null) android.permission.COPY_PROTECTED_DATA signature
(null) android.permission.CRYPT_KEEPER <unknown>
(null) android.permission.READ_NETWORK_USAGE_HISTORY <unknown>
(null) android.permission.MANAGE_NETWORK_POLICY signature
(null) android.permission.MODIFY_NETWORK_ACCOUNTING <unknown>
(null) android.intent.category.MASTER_CLEAR.permission.C2D_MESSAGE signature
(null) android.permission.PACKAGE_VERIFICATION_AGENT <unknown>
(null) android.permission.BIND_PACKAGE_VERIFIER signature
(null) android.permission.INTENT_FILTER_VERIFICATION_AGENT <unknown>
(null) android.permission.BIND_INTENT_FILTER_VERIFIER signature
(null) android.permission.SERIAL_PORT <unknown>
(null) android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY signature
(null) android.permission.UPDATE_LOCK <unknown>
(null) android.permission.ACCESS_NOTIFICATIONS <unknown>
(null) android.permission.ACCESS_NOTIFICATION_POLICY normal
(null) android.permission.ACCESS_KEYGUARD_SECURE_STORAGE signature
(null) android.permission.MANAGE_FINGERPRINT signature
(null) android.permission.CONTROL_KEYGUARD signature
(null) android.permission.TRUST_LISTENER signature
(null) android.permission.PROVIDE_TRUST_AGENT <unknown>
(null) android.permission.LAUNCH_TRUST_AGENT_SETTINGS <unknown>
(null) android.permission.BIND_TRUST_AGENT signature
(null) android.permission.BIND_NOTIFICATION_LISTENER_SERVICE signature
(null) android.permission.BIND_CHOOSER_TARGET_SERVICE signature
(null) android.permission.BIND_CONDITION_PROVIDER_SERVICE signature
(null) android.permission.BIND_DREAM_SERVICE signature
(null) android.permission.INVOKE_CARRIER_SETUP <unknown>
(null) android.permission.ACCESS_NETWORK_CONDITIONS <unknown>
(null) android.permission.ACCESS_DRM_CERTIFICATES <unknown>
(null) android.permission.MANAGE_MEDIA_PROJECTION signature
(null) android.permission.READ_INSTALL_SESSIONS normal
(null) android.permission.REMOVE_DRM_CERTIFICATES <unknown>
(null) android.permission.BIND_CARRIER_MESSAGING_SERVICE <unknown>
(null) android.permission.ACCESS_VOICE_INTERACTION_SERVICE signature
(null) android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS signature
(null) android.permission.BIND_CARRIER_SERVICES <unknown>
(null) android.permission.QUERY_DO_NOT_ASK_CREDENTIALS_ON_BOOT signature
(null) android.permission.KILL_UID signature
(null) android.permission.LOCAL_MAC_ADDRESS <unknown>
@vlazzle

This comment has been minimized.

Copy link

commented Jul 28, 2015

May I ask how you got this?

@pocmo

This comment has been minimized.

Copy link
Owner Author

commented Aug 4, 2015

@vlazzle: Sorry, Github didn't notify me about a comment on my gist. I asked the package manager for the permissions of the 'android' package:

getPackageManager().getPackageInfo("android", PackageManager.GET_PERMISSIONS)

@vlazzle

This comment has been minimized.

Copy link

commented Aug 14, 2015

@pocmo, gotcha, thanks!

@matinats

This comment has been minimized.

Copy link

commented Oct 18, 2015

@pocmo Thank you very much! This is very useful! I have some questions though:

  1. the "null" group means that the permission is not categorized in any of the groups?
  2. I just visited the android site http://developer.android.com/reference/android/Manifest.permission.html for API Level 23 and two permissions are not listed here: GET_ACCOUNTS_PRIVILEGED, REQUEST_IGNORE_BATTERY_OPTIMIZATIONS. You used another API level?
  3. Why there are permissions here but not in the above android link e.g. android.permission.READ_CELL_BROADCASTS, or android.permission.READ_PROFILE? Your list contains 295 permissions while in the android page only 135 are listed.
    Could you please advise?
@bansalayush

This comment has been minimized.

Copy link

commented Apr 4, 2017

Hey @pocmo , this is really useful .Thank you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.