Skip to main content

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 namePermission description
Prohibited
ACCESS_CHECKIN_PROPERTIESAllows read/write access to the properties table in the checkin database to modify uploaded values.
ACCOUNT_MANAGERAllows applications to call AccountAuthenticators.
BIND_APPWIDGETAllows an app to tell the AppWidget service which app can access AppWidget data.
BLUETOOTH_PRIVILEGEDAllows apps to create Bluetooth pairings without user interaction and to allow or deny access to the phonebook or messages.
BROADCAST_PACKAGE_REMOVEDAllows an app to broadcast a notification that a package has been removed.
BROADCAST_SMSAllows an app to broadcast a notification that an SMS message has been received.
CALL_PRIVILEGEDAllows an app to call any phone number, including emergency numbers, without going through the Dialer UI for user confirmation.
CAPTURE_AUDIO_OUTPUTAllows an app to capture audio output.
CHANGE_COMPONENT_ENABLED_STATEAllows an app to change whether a component (other than its own) is enabled or not.
CONTROL_LOCATION_UPDATESAllows enabling/disabling location update notifications from the radio.
DELETE_PACKAGESAllows an app to delete packages.
DIAGNOSTICAllows apps to reuse diagnostic resources.
FACTORY_TESTAllows launching a test application that runs as the root user.
INSTALL_LOCATION_PROVIDERAllows an app to install a location provider into the location manager.
INSTALL_PACKAGESAllows an app to install packages.
LOCATION_HARDWAREAllows an app to use hardware location features such as the geofencing API.
MANAGE_WIFI_INTERFACESAllows 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_SELECTIONUsed so OEMs can grant trusted apps access to a subset of privileged Wi-Fi APIs to improve Wi-Fi performance.
MASTER_CLEARNot for use by third-party applications.
MEDIA_CONTENT_CONTROLAllows an app to know which content is playing and control its playback.
MODIFY_PHONE_STATEAllows modification of telephony state — power, MMI, etc.
MOUNT_FORMAT_FILESYSTEMSAllows formatting file systems for removable storage.
MOUNT_UNMOUNT_FILESYSTEMSAllows mounting and unmounting file systems for removable storage.
OVERRIDE_WIFI_CONFIGAllows an app to change any Wi-Fi configuration, even if it was created by another app.
READ_INPUT_STATEThis permission is deprecated as of API level 16.
READ_LOGSAllows an app to read low-level system log files.
REBOOTRequired to reboot the device.
REQUEST_COMPANION_PROFILE_APP_STREAMINGAllows 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_PROJECTIONAllows an app to request association with a car head unit that supports automotive projection (AssociationRequest.DEVICE_PROFILE_AUTOMOTIVE_PROJECTION) via CompanionDeviceManager.
REQUEST_COMPANION_PROFILE_COMPUTERAllows 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_MESSAGEAllows the phone app to send a request to other apps to handle the “Respond via message” action during incoming calls.
SET_ALWAYS_FINISHAllows an app to control whether activities are immediately finished when sent to the background.
SET_ANIMATION_SCALEChanges the global animation scaling factor.
SET_DEBUG_APPAllows configuring an app for debugging.
SET_PROCESS_LIMITAllows an app to set the maximum number of (optional) app processes that may be running.
SET_TIMEAllows apps to set the system time directly.
SET_TIME_ZONEAllows apps to set the system time zone directly.
SIGNAL_PERSISTENT_PROCESSESAllows an app to request that a signal be sent to all persistent processes.
START_FOREGROUND_SERVICES_FROM_BACKGROUNDAllows an app to start foreground services from the background at any time.
STATUS_BARAllows an app to open, close, or disable the status bar and its icons.
UNINSTALL_SHORTCUTDo not use this permission in your app.
UPDATE_DEVICE_STATSAllows an app to update device statistics.
WRITE_APN_SETTINGSAllows apps to write APN settings and read sensitive fields of existing APN settings such as username and password.
WRITE_GSERVICESAllows an app to modify the Google services map.
WRITE_SECURE_SETTINGSAllows an app to read or write secure system settings.
Sensitive
ACCEPT_HANDOVERAllows a calling app to continue a call that was started in another app.
ACCESS_BACKGROUND_LOCATIONAllows an app to access location in the background.
ACCESS_COARSE_LOCATIONAllows an app to access approximate location.
ACCESS_FINE_LOCATIONAllows an app to access precise location.
ACCESS_MEDIA_LOCATIONAllows an app to access any geographic locations stored in the user’s shared media collection.
ACTIVITY_RECOGNITIONAllows an app to recognize physical activity.
ADD_VOICEMAILAllows an app to add voicemails into the system.
ANSWER_PHONE_CALLSAllows an app to answer an incoming phone call.
BLUETOOTH_ADVERTISERequired to advertise to nearby Bluetooth devices.
BLUETOOTH_CONNECTRequired to connect to paired Bluetooth devices.
BLUETOOTH_SCANRequired to discover and pair with nearby Bluetooth devices.
BODY_SENSORSAllows an app to access data from sensors the user employs to measure what happens inside their body, such as heart rate.
BODY_SENSORS_BACKGROUNDAllows an app to access body-sensor data (e.g., heart rate) while running in the background.
CALL_PHONEAllows an app to initiate a phone call without going through the Dialer UI for user confirmation.
CAMERARequired for access to the device camera.
DUMPAllows an app to retrieve state dump information from system services.
GET_ACCOUNTSAllows access to the list of accounts in the Accounts Service.
NEARBY_WIFI_DEVICESRequired to advertise to and connect with nearby devices over Wi-Fi.
POST_NOTIFICATIONSAllows an app to post notifications.
PROCESS_OUTGOING_CALLSThis permission is deprecated as of API level 29.
READ_CALENDARAllows an app to read the user’s calendar data.
READ_CALL_LOGAllows an app to read the user’s call log.
READ_CONTACTSAllows an app to read the user’s contacts data.
READ_EXTERNAL_STORAGEAllows an app to read from external storage.
READ_MEDIA_AUDIOAllows an app to read audio files from external storage.
READ_MEDIA_IMAGESAllows an app to read image files from external storage.
READ_MEDIA_VIDEOAllows an app to read video files from external storage.
READ_PHONE_NUMBERSAllows access to the device’s phone numbers.
READ_PHONE_STATEGrants 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_SMSAllows an app to read SMS messages.
RECEIVE_MMSAllows an app to monitor incoming MMS messages.
RECEIVE_SMSAllows an app to receive SMS messages.
RECEIVE_WAP_PUSHAllows an app to receive WAP push messages.
RECORD_AUDIOAllows an app to record audio.
SEND_SMSAllows an app to send SMS messages.
USE_SIPAllows an app to use the SIP service.
UWB_RANGINGRequired to connect to devices that use ultra-wideband.
WRITE_CALENDARAllows an app to write the user’s calendar data.
WRITE_CALL_LOGAllows an app to write (but not read) the user’s call log data.
WRITE_CONTACTSAllows an app to write the user’s contacts data.
WRITE_EXTERNAL_STORAGEAllows an app to write to external storage.
ACCESS_BLOBS_ACROSS_USERSAllows an app to access large binary data blobs across users.
BATTERY_STATSAllows an app to collect battery charge statistics.
BIND_ACCESSIBILITY_SERVICEMust be required by an accessibility service to ensure that only the system can bind to it.
BIND_AUTOFILL_SERVICEMust be required by an autofill service to ensure that only the system can bind to it.
BIND_CALL_REDIRECTION_SERVICEMust be required by a CallRedirectionService to ensure that only the system can bind to it.
BIND_CARRIER_MESSAGING_CLIENT_SERVICEA CarrierMessagingClientService subclass must be protected with this permission.
BIND_CARRIER_SERVICESSystem process allowed to bind to services in apps with this permission.
BIND_CHOOSER_TARGET_SERVICEDeprecated 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_SERVICEMust be required by CompanionDeviceServices to ensure that only the system can bind to them.
BIND_CONDITION_PROVIDER_SERVICEMust be required by a ConditionProviderService to ensure that only the system can bind to it.
BIND_CONTROLSAllows SystemUI to request third-party controls.
BIND_DEVICE_ADMINMust be required by a device administration receiver to ensure that only the system can interact with it.
BIND_DREAM_SERVICEMust be required by a DreamService to ensure that only the system can bind to it.
BIND_INCALL_SERVICEMust be required by an InCallService to ensure that only the system can bind to it.
BIND_INPUT_METHODMust be required by an InputMethodService to ensure that only the system can bind to it.
BIND_MIDI_DEVICE_SERVICEMust be required by a MidiDeviceService to ensure that only the system can bind to it.
BIND_NFC_SERVICEMust be required by a HostApduService or OffHostApduService to ensure that only the system can bind to it.
BIND_NOTIFICATION_LISTENER_SERVICEMust be required by a NotificationListenerService to ensure that only the system can bind to it.
BIND_PRINT_SERVICEMust be required by a PrintService to ensure that only the system can bind to it.
BIND_QUICK_ACCESS_WALLET_SERVICEMust be required by a QuickAccessWalletService to ensure that only the system can bind to it.
BIND_QUICK_SETTINGS_TILEAllows an app to bind to third-party Quick Settings tiles.
BIND_REMOTEVIEWSMust be required by a RemoteViewsService to ensure that only the system can bind to it.
BIND_SCREENING_SERVICEMust be required by a CallScreeningService to ensure that only the system can bind to it.
BIND_TELECOM_CONNECTION_SERVICEMust be required by a ConnectionService to ensure that only the system can bind to it.
BIND_TEXT_SERVICEMust be required by a TextService (e.g., SpellCheckerService) to ensure that only the system can bind to it.
BIND_TV_INPUTMust be required by a TvInputService to ensure that only the system can bind to it.
BIND_TV_INTERACTIVE_APPMust be required by a TvInteractiveAppService to ensure that only the system can bind to it.
BIND_VISUAL_VOICEMAIL_SERVICEMust be required by a VisualVoicemailService to ensure that only the system can bind to it.
BIND_VOICE_INTERACTIONMust be required by a VoiceInteractionService to ensure that only the system can bind to it.
BIND_VPN_SERVICEMust be required by a VpnService to ensure that only the system can bind to it.
BIND_VR_LISTENER_SERVICEMust be required by a VrListenerService to ensure that only the system can bind to it.
BIND_WALLPAPERMust be required by a WallpaperService to ensure that only the system can bind to it.
CHANGE_CONFIGURATIONAllows an app to change the current configuration, such as the locale.
CLEAR_APP_CACHEAllows an app to clear caches of all installed apps on the device.
DELETE_CACHE_FILESLegacy permission to delete app cache files; no longer used but signals that calls should be quietly ignored instead of throwing an exception.
GET_ACCOUNTS_PRIVILEGEDAllows access to the list of accounts in the Accounts Service.
GLOBAL_SEARCHMay be used by content providers to allow the global search system to access their data.
INSTANT_APP_FOREGROUND_SERVICEAllows an Instant App to create foreground services.
INTERACT_ACROSS_PROFILESAllows interaction across profiles in the same profile group.
LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINKAn app needs the forSettings.ACTION_SETTINGS_EMBED_DEEP_LINK_ACTIVITY permission to show an activity embedded in app settings.
LOADER_USAGE_STATSAllows a data loader to read package usage logs.
MANAGE_DOCUMENTSAllows an app to manage access to documents.
MANAGE_EXTERNAL_STORAGEGrants broad access to external storage under scoped storage.
MANAGE_MEDIAAllows an app to modify and delete media files on this device or any connected storage device without user confirmation.
MANAGE_ONGOING_CALLSAllows querying information about ongoing calls and managing them.
PACKAGE_USAGE_STATSAllows an app to collect component usage statistics.
QUERY_ALL_PACKAGESAllows querying any normal app on the device, regardless of manifest declarations.
READ_ASSISTANT_APP_SEARCH_DATAAllows an app to query global data in AppSearch visible to the ASSISTANT role.
READ_HOME_APP_SEARCH_DATAAllows an app to query global data in AppSearch visible to the HOME role.
READ_PRECISE_PHONE_STATEGrants read-only access to precise phone state.
READ_VOICEMAILAllows an app to read voicemails in the system.
REQUEST_COMPANION_SELF_MANAGEDAllows 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 REQUEST_INSTALL_PACKAGES.

If your app meets the acceptable use requirements, you must attach a justification in the RuStore Console explaining the need for REQUEST_INSTALL_PACKAGES.

SCHEDULE_EXACT_ALARMAllows apps to use exact alarm APIs.
START_VIEW_APP_FEATURESAllows the owner to launch the screen listing an app’s features.
START_VIEW_PERMISSION_USAGEAllows the owner to launch the permission usage screen for an app.
SUBSCRIBE_TO_KEYGUARD_LOCKED_STATEAllows an app to subscribe to the keyguard locked state (i.e., showing).
SYSTEM_ALERT_WINDOWAllows an app to create windows using WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, shown on top of all other apps.
USE_ICC_AUTH_WITH_DEVICE_IDENTIFIERAllows reading device identifiers and using ICC-based authentication, such as EAP-AKA.
WRITE_SETTINGSAllows an app to read or write system settings.
WRITE_VOICEMAILAllows an app to modify and delete existing voicemails in the system.
Safe
ACCESS_LOCATION_EXTRA_COMMANDSAllows an app to access extra location provider commands.
BLUETOOTHAllows apps to connect to paired Bluetooth devices.
BLUETOOTH_ADMINAllows apps to discover and pair with Bluetooth devices.
BROADCAST_STICKYAllows an app to broadcast the most recent intent.
CALL_COMPANION_APPAllows an app implementing the InCallService API to be eligible as a call companion app.
CHANGE_NETWORK_STATEAllows apps to change network connectivity state.
CHANGE_WIFI_MULTICAST_STATEAllows apps to enter Wi-Fi multicast mode.
CHANGE_WIFI_STATEAllows apps to change Wi-Fi connectivity state.
DELIVER_COMPANION_MESSAGESAllows an app to deliver companion messages to the system.
DISABLE_KEYGUARDAllows apps to disable the keyguard if it’s not secure.
EXPAND_STATUS_BARAllows an app to expand or collapse the status bar.
FOREGROUND_SERVICEAllows an app to use Service.startForeground.
GET_PACKAGE_SIZEAllows an app to get the size of a package.
HIDE_OVERLAY_WINDOWSAllows an app to prevent non-system windows from drawing over it.
HIGH_SAMPLING_RATE_SENSORSAllows an app to access sensor data at sampling rates above 200 Hz.
INSTALL_SHORTCUTAllows an app to install a shortcut in the Launcher.
INTERNETAllows apps to open network sockets.
KILL_BACKGROUND_PROCESSESAllows an app to call ActivityManager.killBackgroundProcesses(String).
MANAGE_OWN_CALLSAllows a calling app to manage its own calls via self-managed ConnectionService APIs.
MODIFY_AUDIO_SETTINGSAllows an app to modify global audio settings.
NFCAllows apps to perform I/O operations over NFC.
NFC_PREFERRED_PAYMENT_INFOAllows apps to access information about preferred NFC payment services.
NFC_TRANSACTION_EVENTAllows apps to receive NFC transaction events.
READ_BASIC_PHONE_STATEGrants read-only access to non-dangerous phone state information such as cell network type and software version.
READ_NEARBY_STREAMING_POLICYAllows an app to read the nearby streaming policy.
READ_SYNC_SETTINGSAllows apps to read sync settings.
READ_SYNC_STATSAllows apps to read sync statistics.
RECEIVE_BOOT_COMPLETEDAllows an app to receive Intent.ACTION_BOOT_COMPLETED, broadcast after the system finishes booting.
REORDER_TASKSAllows an app to change the Z-order of tasks.
REQUEST_COMPANION_PROFILE_WATCHAllows a companion app to run in the background.
REQUEST_COMPANION_RUN_IN_BACKGROUNDAllows a companion app to run in the background.
REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUNDAllows a companion app to start a foreground service while running in the background.
REQUEST_COMPANION_USE_DATA_IN_BACKGROUNDAllows a companion app to use data in the background.
REQUEST_DELETE_PACKAGESAllows an app to request deletion of packages.
REQUEST_IGNORE_BATTERY_OPTIMIZATIONSPermission required for an app to use Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS.
REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCEAllows an app to subscribe to notifications about presence status changes of its associated companion device.
REQUEST_PASSWORD_COMPLEXITYAllows an app to query screen-lock complexity and prompt users to upgrade to a required complexity level.
SET_ALARMAllows an app to broadcast an intent to set an alarm for the user.
SET_WALLPAPERAllows apps to set the wallpaper.
SET_WALLPAPER_HINTSAllows apps to set wallpaper hints.
TRANSMIT_IRAllows use of the device IR transmitter, if available.
UPDATE_PACKAGES_WITHOUT_USER_ACTIONAllows an app to specify via PackageInstaller.SessionParams.setRequireUserAction(int) that user action is not required to update the app.
USE_BIOMETRIAllows an app to use device-supported biometric methods.
USE_EXACT_ALARMAllows apps to use exact alarms in the same way as SCHEDULE_EXACT_ALARM but without prompting the user.
USE_FINGERPRINTDeprecated as of API level 28. Apps should request USE_BIOMETRIC instead.
USE_FULL_SCREEN_INTENTRequired for apps targeting Build.VERSION_CODES.Q that want to use full-screen notification intents.
VIBRATEGrants access to vibration functionality.
WAKE_LOCKAllows use of PowerManager wake locks to keep the CPU from sleeping or to keep the screen from dimming.
WRITE_SYNC_SETTINGSAllows apps to write sync settings.
Deprecated
BIND_CARRIER_MESSAGING_SERVICEDeprecated as of API level 23. Use BIND_CARRIER_SERVICES instead.
GET_TASKSDeprecated as of API level 21. No longer applies.
PERSISTENT_ACTIVITYDeprecated as of API level 15. This feature will be removed in the future; please do not use.
RESTART_PACKAGESDeprecated as of API level 15.
SET_PREFERRED_APPLICATIONSDeprecated as of API level 15.
SMS_FINANCIAL_TRANSACTIONSDeprecated 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.