Permission Types in RuStore: an in-depth overview
The permissions your app uses undergo an initial review after you add the app in the RuStore Console.
All permissions other than the Normal (Safe) category require a declaration: Dangerous, Special, and Signature.
Apps that use permissions from the Not for use by third-party applications (Prohibited) category are automatically rejected at upload.
Permissions of the Dangerous, Special, and Signature types are considered sensitive.
The lists of prohibited and sensitive permissions are provided in the table below.
Permission levels
| Permission name | Permission description |
|---|---|
| Prohibited | |
ACCESS_CHECKIN_PROPERTIES | Allows read/write access to the properties table in the checkin database to modify uploaded values. |
ACCOUNT_MANAGER | Allows applications to call AccountAuthenticators. |
BIND_APPWIDGET | Allows an app to tell the AppWidget service which app can access AppWidget data. |
BLUETOOTH_PRIVILEGED | Allows apps to create Bluetooth pairings without user interaction and to allow or deny access to the phonebook or messages. |
BROADCAST_PACKAGE_REMOVED | Allows an app to broadcast a notification that a package has been removed. |
BROADCAST_SMS | Allows an app to broadcast a notification that an SMS message has been received. |
CALL_PRIVILEGED | Allows an app to call any phone number, including emergency numbers, without going through the Dialer UI for user confirmation. |
CAPTURE_AUDIO_OUTPUT | Allows an app to capture audio output. |
CHANGE_COMPONENT_ENABLED_STATE | Allows an app to change whether a component (other than its own) is enabled or not. |
CONTROL_LOCATION_UPDATES | Allows enabling/disabling location update notifications from the radio. |
DELETE_PACKAGES | Allows an app to delete packages. |
DIAGNOSTIC | Allows apps to reuse diagnostic resources. |
FACTORY_TEST | Allows launching a test application that runs as the root user. |
INSTALL_LOCATION_PROVIDER | Allows an app to install a location provider into the location manager. |
INSTALL_PACKAGES | Allows an app to install packages. |
LOCATION_HARDWARE | Allows an app to use hardware location features such as the geofencing API. |
MANAGE_WIFI_INTERFACES | Allows apps to receive notifications when a Wi-Fi interface request can’t be satisfied without disabling one or more other interfaces, and decide whether to approve or reject the request. |
MANAGE_WIFI_NETWORK_SELECTION | Used so OEMs can grant trusted apps access to a subset of privileged Wi-Fi APIs to improve Wi-Fi performance. |
MASTER_CLEAR | Not for use by third-party applications. |
MEDIA_CONTENT_CONTROL | Allows an app to know which content is playing and control its playback. |
MODIFY_PHONE_STATE | Allows modification of telephony state — power, MMI, etc. |
MOUNT_FORMAT_FILESYSTEMS | Allows formatting file systems for removable storage. |
MOUNT_UNMOUNT_FILESYSTEMS | Allows mounting and unmounting file systems for removable storage. |
OVERRIDE_WIFI_CONFIG | Allows an app to change any Wi-Fi configuration, even if it was created by another app. |
READ_INPUT_STATE | This permission is deprecated as of API level 16. |
READ_LOGS | Allows an app to read low-level system log files. |
REBOOT | Required to reboot the device. |
REQUEST_COMPANION_PROFILE_APP_STREAMING | Allows an app to request association with a virtual display that supports Android app streaming (AssociationRequest.DEVICE_PROFILE_APP_STREAMING) via CompanionDeviceManager. |
REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION | Allows an app to request association with a car head unit that supports automotive projection (AssociationRequest.DEVICE_PROFILE_AUTOMOTIVE_PROJECTION) via CompanionDeviceManager. |
REQUEST_COMPANION_PROFILE_COMPUTER | Allows an app to request association with a computer to share functionality and/or data (notifications, photos, media) (AssociationRequest.DEVICE_PROFILE_COMPUTER) via CompanionDeviceManager. |
SEND_RESPOND_VIA_MESSAGE | Allows the phone app to send a request to other apps to handle the “Respond via message” action during incoming calls. |
SET_ALWAYS_FINISH | Allows an app to control whether activities are immediately finished when sent to the background. |
SET_ANIMATION_SCALE | Changes the global animation scaling factor. |
SET_DEBUG_APP | Allows configuring an app for debugging. |
SET_PROCESS_LIMIT | Allows an app to set the maximum number of (optional) app processes that may be running. |
SET_TIME | Allows apps to set the system time directly. |
SET_TIME_ZONE | Allows apps to set the system time zone directly. |
SIGNAL_PERSISTENT_PROCESSES | Allows an app to request that a signal be sent to all persistent processes. |
START_FOREGROUND_SERVICES_FROM_BACKGROUND | Allows an app to start foreground services from the background at any time. |
STATUS_BAR | Allows an app to open, close, or disable the status bar and its icons. |
UNINSTALL_SHORTCUT | Do not use this permission in your app. |
UPDATE_DEVICE_STATS | Allows an app to update device statistics. |
WRITE_APN_SETTINGS | Allows apps to write APN settings and read sensitive fields of existing APN settings such as username and password. |
WRITE_GSERVICES | Allows an app to modify the Google services map. |
WRITE_SECURE_SETTINGS | Allows an app to read or write secure system settings. |
| Sensitive | |
ACCEPT_HANDOVER | Allows a calling app to continue a call that was started in another app. |
ACCESS_BACKGROUND_LOCATION | Allows an app to access location in the background. |
ACCESS_COARSE_LOCATION | Allows an app to access approximate location. |
ACCESS_FINE_LOCATION | Allows an app to access precise location. |
ACCESS_MEDIA_LOCATION | Allows an app to access any geographic locations stored in the user’s shared media collection. |
ACTIVITY_RECOGNITION | Allows an app to recognize physical activity. |
ADD_VOICEMAIL | Allows an app to add voicemails into the system. |
ANSWER_PHONE_CALLS | Allows an app to answer an incoming phone call. |
BLUETOOTH_ADVERTISE | Required to advertise to nearby Bluetooth devices. |
BLUETOOTH_CONNECT | Required to connect to paired Bluetooth devices. |
BLUETOOTH_SCAN | Required to discover and pair with nearby Bluetooth devices. |
BODY_SENSORS | Allows an app to access data from sensors the user employs to measure what happens inside their body, such as heart rate. |
BODY_SENSORS_BACKGROUND | Allows an app to access body-sensor data (e.g., heart rate) while running in the background. |
CALL_PHONE | Allows an app to initiate a phone call without going through the Dialer UI for user confirmation. |
CAMERA | Required for access to the device camera. |
DUMP | Allows an app to retrieve state dump information from system services. |
GET_ACCOUNTS | Allows access to the list of accounts in the Accounts Service. |
NEARBY_WIFI_DEVICES | Required to advertise to and connect with nearby devices over Wi-Fi. |
POST_NOTIFICATIONS | Allows an app to post notifications. |
PROCESS_OUTGOING_CALLS | This permission is deprecated as of API level 29. |
READ_CALENDAR | Allows an app to read the user’s calendar data. |
READ_CALL_LOG | Allows an app to read the user’s call log. |
READ_CONTACTS | Allows an app to read the user’s contacts data. |
READ_EXTERNAL_STORAGE | Allows an app to read from external storage. |
READ_MEDIA_AUDIO | Allows an app to read audio files from external storage. |
READ_MEDIA_IMAGES | Allows an app to read image files from external storage. |
READ_MEDIA_VIDEO | Allows an app to read video files from external storage. |
READ_PHONE_NUMBERS | Allows access to the device’s phone numbers. |
READ_PHONE_STATE | Grants read-only access to phone state, including current cellular network info, the status of any ongoing calls, and the list of any phone accounts registered on the device. |
READ_SMS | Allows an app to read SMS messages. |
RECEIVE_MMS | Allows an app to monitor incoming MMS messages. |
RECEIVE_SMS | Allows an app to receive SMS messages. |
RECEIVE_WAP_PUSH | Allows an app to receive WAP push messages. |
RECORD_AUDIO | Allows an app to record audio. |
SEND_SMS | Allows an app to send SMS messages. |
USE_SIP | Allows an app to use the SIP service. |
UWB_RANGING | Required to connect to devices that use ultra-wideband. |
WRITE_CALENDAR | Allows an app to write the user’s calendar data. |
WRITE_CALL_LOG | Allows an app to write (but not read) the user’s call log data. |
WRITE_CONTACTS | Allows an app to write the user’s contacts data. |
WRITE_EXTERNAL_STORAGE | Allows an app to write to external storage. |
ACCESS_BLOBS_ACROSS_USERS | Allows an app to access large binary data blobs across users. |
BATTERY_STATS | Allows an app to collect battery charge statistics. |
BIND_ACCESSIBILITY_SERVICE | Must be required by an accessibility service to ensure that only the system can bind to it. |
BIND_AUTOFILL_SERVICE | Must be required by an autofill service to ensure that only the system can bind to it. |
BIND_CALL_REDIRECTION_SERVICE | Must be required by a CallRedirectionService to ensure that only the system can bind to it. |
BIND_CARRIER_MESSAGING_CLIENT_SERVICE | A CarrierMessagingClientService subclass must be protected with this permission. |
BIND_CARRIER_SERVICES | System process allowed to bind to services in apps with this permission. |
BIND_CHOOSER_TARGET_SERVICE | Deprecated in API level 30. To publish direct share targets, follow the guidance at https://developer.android.com/training/sharing/receive.html#providing-direct-share-targets |
BIND_COMPANION_DEVICE_SERVICE | Must be required by CompanionDeviceServices to ensure that only the system can bind to them. |
BIND_CONDITION_PROVIDER_SERVICE | Must be required by a ConditionProviderService to ensure that only the system can bind to it. |
BIND_CONTROLS | Allows SystemUI to request third-party controls. |
BIND_DEVICE_ADMIN | Must be required by a device administration receiver to ensure that only the system can interact with it. |
BIND_DREAM_SERVICE | Must be required by a DreamService to ensure that only the system can bind to it. |
BIND_INCALL_SERVICE | Must be required by an InCallService to ensure that only the system can bind to it. |
BIND_INPUT_METHOD | Must be required by an InputMethodService to ensure that only the system can bind to it. |
BIND_MIDI_DEVICE_SERVICE | Must be required by a MidiDeviceService to ensure that only the system can bind to it. |
BIND_NFC_SERVICE | Must be required by a HostApduService or OffHostApduService to ensure that only the system can bind to it. |
BIND_NOTIFICATION_LISTENER_SERVICE | Must be required by a NotificationListenerService to ensure that only the system can bind to it. |
BIND_PRINT_SERVICE | Must be required by a PrintService to ensure that only the system can bind to it. |
BIND_QUICK_ACCESS_WALLET_SERVICE | Must be required by a QuickAccessWalletService to ensure that only the system can bind to it. |
BIND_QUICK_SETTINGS_TILE | Allows an app to bind to third-party Quick Settings tiles. |
BIND_REMOTEVIEWS | Must be required by a RemoteViewsService to ensure that only the system can bind to it. |
BIND_SCREENING_SERVICE | Must be required by a CallScreeningService to ensure that only the system can bind to it. |
BIND_TELECOM_CONNECTION_SERVICE | Must be required by a ConnectionService to ensure that only the system can bind to it. |
BIND_TEXT_SERVICE | Must be required by a TextService (e.g., SpellCheckerService) to ensure that only the system can bind to it. |
BIND_TV_INPUT | Must be required by a TvInputService to ensure that only the system can bind to it. |
BIND_TV_INTERACTIVE_APP | Must be required by a TvInteractiveAppService to ensure that only the system can bind to it. |
BIND_VISUAL_VOICEMAIL_SERVICE | Must be required by a VisualVoicemailService to ensure that only the system can bind to it. |
BIND_VOICE_INTERACTION | Must be required by a VoiceInteractionService to ensure that only the system can bind to it. |
BIND_VPN_SERVICE | Must be required by a VpnService to ensure that only the system can bind to it. |
BIND_VR_LISTENER_SERVICE | Must be required by a VrListenerService to ensure that only the system can bind to it. |
BIND_WALLPAPER | Must be required by a WallpaperService to ensure that only the system can bind to it. |
CHANGE_CONFIGURATION | Allows an app to change the current configuration, such as the locale. |
CLEAR_APP_CACHE | Allows an app to clear caches of all installed apps on the device. |
DELETE_CACHE_FILES | Legacy permission to delete app cache files; no longer used but signals that calls should be quietly ignored instead of throwing an exception. |
GET_ACCOUNTS_PRIVILEGED | Allows access to the list of accounts in the Accounts Service. |
GLOBAL_SEARCH | May be used by content providers to allow the global search system to access their data. |
INSTANT_APP_FOREGROUND_SERVICE | Allows an Instant App to create foreground services. |
INTERACT_ACROSS_PROFILES | Allows interaction across profiles in the same profile group. |
LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK | An app needs the forSettings.ACTION_SETTINGS_EMBED_DEEP_LINK_ACTIVITY permission to show an activity embedded in app settings. |
LOADER_USAGE_STATS | Allows a data loader to read package usage logs. |
MANAGE_DOCUMENTS | Allows an app to manage access to documents. |
MANAGE_EXTERNAL_STORAGE | Grants broad access to external storage under scoped storage. |
MANAGE_MEDIA | Allows an app to modify and delete media files on this device or any connected storage device without user confirmation. |
MANAGE_ONGOING_CALLS | Allows querying information about ongoing calls and managing them. |
PACKAGE_USAGE_STATS | Allows an app to collect component usage statistics. |
QUERY_ALL_PACKAGES | Allows querying any normal app on the device, regardless of manifest declarations. |
READ_ASSISTANT_APP_SEARCH_DATA | Allows an app to query global data in AppSearch visible to the ASSISTANT role. |
READ_HOME_APP_SEARCH_DATA | Allows an app to query global data in AppSearch visible to the HOME role. |
READ_PRECISE_PHONE_STATE | Grants read-only access to precise phone state. |
READ_VOICEMAIL | Allows an app to read voicemails in the system. |
REQUEST_COMPANION_SELF_MANAGED | Allows an app to create a “self-managed” association. |
REQUEST_INSTALL_PACKAGES | Allows an app to request installation of packages. RuStore restricts the use of critical and high-risk permissions, including If your app meets the acceptable use requirements, you must attach a justification in the RuStore Console explaining the need for |
SCHEDULE_EXACT_ALARM | Allows apps to use exact alarm APIs. |
START_VIEW_APP_FEATURES | Allows the owner to launch the screen listing an app’s features. |
START_VIEW_PERMISSION_USAGE | Allows the owner to launch the permission usage screen for an app. |
SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE | Allows an app to subscribe to the keyguard locked state (i.e., showing). |
SYSTEM_ALERT_WINDOW | Allows an app to create windows using WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, shown on top of all other apps. |
USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER | Allows reading device identifiers and using ICC-based authentication, such as EAP-AKA. |
WRITE_SETTINGS | Allows an app to read or write system settings. |
WRITE_VOICEMAIL | Allows an app to modify and delete existing voicemails in the system. |
| Safe | |
ACCESS_LOCATION_EXTRA_COMMANDS | Allows an app to access extra location provider commands. |
BLUETOOTH | Allows apps to connect to paired Bluetooth devices. |
BLUETOOTH_ADMIN | Allows apps to discover and pair with Bluetooth devices. |
BROADCAST_STICKY | Allows an app to broadcast the most recent intent. |
CALL_COMPANION_APP | Allows an app implementing the InCallService API to be eligible as a call companion app. |
CHANGE_NETWORK_STATE | Allows apps to change network connectivity state. |
CHANGE_WIFI_MULTICAST_STATE | Allows apps to enter Wi-Fi multicast mode. |
CHANGE_WIFI_STATE | Allows apps to change Wi-Fi connectivity state. |
DELIVER_COMPANION_MESSAGES | Allows an app to deliver companion messages to the system. |
DISABLE_KEYGUARD | Allows apps to disable the keyguard if it’s not secure. |
EXPAND_STATUS_BAR | Allows an app to expand or collapse the status bar. |
FOREGROUND_SERVICE | Allows an app to use Service.startForeground. |
GET_PACKAGE_SIZE | Allows an app to get the size of a package. |
HIDE_OVERLAY_WINDOWS | Allows an app to prevent non-system windows from drawing over it. |
HIGH_SAMPLING_RATE_SENSORS | Allows an app to access sensor data at sampling rates above 200 Hz. |
INSTALL_SHORTCUT | Allows an app to install a shortcut in the Launcher. |
INTERNET | Allows apps to open network sockets. |
KILL_BACKGROUND_PROCESSES | Allows an app to call ActivityManager.killBackgroundProcesses(String). |
MANAGE_OWN_CALLS | Allows a calling app to manage its own calls via self-managed ConnectionService APIs. |
MODIFY_AUDIO_SETTINGS | Allows an app to modify global audio settings. |
NFC | Allows apps to perform I/O operations over NFC. |
NFC_PREFERRED_PAYMENT_INFO | Allows apps to access information about preferred NFC payment services. |
NFC_TRANSACTION_EVENT | Allows apps to receive NFC transaction events. |
READ_BASIC_PHONE_STATE | Grants read-only access to non-dangerous phone state information such as cell network type and software version. |
READ_NEARBY_STREAMING_POLICY | Allows an app to read the nearby streaming policy. |
READ_SYNC_SETTINGS | Allows apps to read sync settings. |
READ_SYNC_STATS | Allows apps to read sync statistics. |
RECEIVE_BOOT_COMPLETED | Allows an app to receive Intent.ACTION_BOOT_COMPLETED, broadcast after the system finishes booting. |
REORDER_TASKS | Allows an app to change the Z-order of tasks. |
REQUEST_COMPANION_PROFILE_WATCH | Allows a companion app to run in the background. |
REQUEST_COMPANION_RUN_IN_BACKGROUND | Allows a companion app to run in the background. |
REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND | Allows a companion app to start a foreground service while running in the background. |
REQUEST_COMPANION_USE_DATA_IN_BACKGROUND | Allows a companion app to use data in the background. |
REQUEST_DELETE_PACKAGES | Allows an app to request deletion of packages. |
REQUEST_IGNORE_BATTERY_OPTIMIZATIONS | Permission required for an app to use Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS. |
REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE | Allows an app to subscribe to notifications about presence status changes of its associated companion device. |
REQUEST_PASSWORD_COMPLEXITY | Allows an app to query screen-lock complexity and prompt users to upgrade to a required complexity level. |
SET_ALARM | Allows an app to broadcast an intent to set an alarm for the user. |
SET_WALLPAPER | Allows apps to set the wallpaper. |
SET_WALLPAPER_HINTS | Allows apps to set wallpaper hints. |
TRANSMIT_IR | Allows use of the device IR transmitter, if available. |
UPDATE_PACKAGES_WITHOUT_USER_ACTION | Allows an app to specify via PackageInstaller.SessionParams.setRequireUserAction(int) that user action is not required to update the app. |
USE_BIOMETRI | Allows an app to use device-supported biometric methods. |
USE_EXACT_ALARM | Allows apps to use exact alarms in the same way as SCHEDULE_EXACT_ALARM but without prompting the user. |
USE_FINGERPRINT | Deprecated as of API level 28. Apps should request USE_BIOMETRIC instead. |
USE_FULL_SCREEN_INTENT | Required for apps targeting Build.VERSION_CODES.Q that want to use full-screen notification intents. |
VIBRATE | Grants access to vibration functionality. |
WAKE_LOCK | Allows use of PowerManager wake locks to keep the CPU from sleeping or to keep the screen from dimming. |
WRITE_SYNC_SETTINGS | Allows apps to write sync settings. |
| Deprecated | |
BIND_CARRIER_MESSAGING_SERVICE | Deprecated as of API level 23. Use BIND_CARRIER_SERVICES instead. |
GET_TASKS | Deprecated as of API level 21. No longer applies. |
PERSISTENT_ACTIVITY | Deprecated as of API level 15. This feature will be removed in the future; please do not use. |
RESTART_PACKAGES | Deprecated as of API level 15. |
SET_PREFERRED_APPLICATIONS | Deprecated as of API level 15. |
SMS_FINANCIAL_TRANSACTIONS | Deprecated as of API level 31. |
RuStore’s permission requirements are not stricter than Google Play’s and retain Play’s terminology for developer convenience.
For up-to-date information on permission categories, see:
https://developer.android.com/reference/android/Manifest.permission.