diff --git a/mobsf/StaticAnalyzer/models.py b/mobsf/StaticAnalyzer/models.py
index 21ccaf9ba4..ede4b1077f 100755
--- a/mobsf/StaticAnalyzer/models.py
+++ b/mobsf/StaticAnalyzer/models.py
@@ -46,6 +46,7 @@ class StaticAnalyzerAndroid(models.Model):
ANDROID_API = models.TextField(default={})
CODE_ANALYSIS = models.TextField(default={})
NIAP_ANALYSIS = models.TextField(default={})
+ PERMISSION_MAPPING = models.TextField(default={})
URLS = models.TextField(default=[])
DOMAINS = models.TextField(default={})
EMAILS = models.TextField(default=[])
diff --git a/mobsf/StaticAnalyzer/views/android/code_analysis.py b/mobsf/StaticAnalyzer/views/android/code_analysis.py
index b80beb4eda..d42918c34c 100755
--- a/mobsf/StaticAnalyzer/views/android/code_analysis.py
+++ b/mobsf/StaticAnalyzer/views/android/code_analysis.py
@@ -2,10 +2,13 @@
"""Module holding the functions for code analysis."""
import logging
+import tempfile
from pathlib import Path
from django.conf import settings
+import yaml
+
from mobsf.MobSF.utils import (
filename_from_path,
get_android_src_dir,
@@ -21,15 +24,48 @@
logger = logging.getLogger(__name__)
-def code_analysis(app_dir, typ, manifest_file):
+def get_perm_rules(perm_rules, android_permissions):
+ """Get applicablepermission rules."""
+ try:
+ if not android_permissions:
+ return None
+ dynamic_rules = []
+ with perm_rules.open('r') as perm_file:
+ prules = yaml.load(perm_file, Loader=yaml.FullLoader)
+ for p in prules:
+ if p['id'] in android_permissions.keys():
+ dynamic_rules.append(p)
+ rules = yaml.dump(dynamic_rules)
+ if rules:
+ tmp = tempfile.NamedTemporaryFile(mode='w')
+ tmp.write(rules)
+ tmp.flush()
+ return tmp
+ except Exception:
+ logger.error('Getting Permission Rules')
+ return None
+
+
+def permission_transform(perm_mappings):
+ """Simply permission mappings."""
+ mappings = {}
+ for k, v in perm_mappings.items():
+ mappings[k] = v['files']
+ return mappings
+
+
+def code_analysis(app_dir, typ, manifest_file, android_permissions):
"""Perform the code analysis."""
try:
root = Path(settings.BASE_DIR) / 'StaticAnalyzer' / 'views'
- code_rules = root / 'android' / 'rules' / 'android_rules.yaml'
- api_rules = root / 'android' / 'rules' / 'android_apis.yaml'
- niap_rules = root / 'android' / 'rules' / 'android_niap.yaml'
+ and_rules = root / 'android' / 'rules'
+ code_rules = and_rules / 'android_rules.yaml'
+ api_rules = and_rules / 'android_apis.yaml'
+ perm_rules = and_rules / 'android_permissions.yaml'
+ niap_rules = and_rules / 'android_niap.yaml'
code_findings = {}
api_findings = {}
+ perm_mappings = {}
email_n_file = []
url_n_file = []
url_list = []
@@ -38,19 +74,31 @@ def code_analysis(app_dir, typ, manifest_file):
skp = settings.SKIP_CLASS_PATH
logger.info('Code Analysis Started on - %s',
filename_from_path(src))
- # Code and API Analysis
+ # Code Analysis
code_findings = scan(
code_rules.as_posix(),
{'.java', '.kt'},
[src],
skp)
logger.info('Android SAST Completed')
+ # API Analysis
logger.info('Android API Analysis Started')
api_findings = scan(
api_rules.as_posix(),
{'.java', '.kt'},
[src],
skp)
+ # Permission Mapping
+ rule_file = get_perm_rules(perm_rules, android_permissions)
+ if rule_file:
+ logger.info('Android Permission Mapping Started')
+ perm_mappings = permission_transform(scan(
+ rule_file.name,
+ {'.java', '.kt'},
+ [src],
+ {}))
+ logger.info('Android Permission Mapping Completed')
+ rule_file.close()
# NIAP Scan
niap_findings = niap_scan(
niap_rules.as_posix(),
@@ -80,6 +128,7 @@ def code_analysis(app_dir, typ, manifest_file):
logger.info('Finished Code Analysis, Email and URL Extraction')
code_an_dic = {
'api': api_findings,
+ 'perm_mappings': perm_mappings,
'findings': code_findings,
'niap': niap_findings,
'urls_list': url_list,
diff --git a/mobsf/StaticAnalyzer/views/android/db_interaction.py b/mobsf/StaticAnalyzer/views/android/db_interaction.py
index fccf96584d..2d6c3885da 100755
--- a/mobsf/StaticAnalyzer/views/android/db_interaction.py
+++ b/mobsf/StaticAnalyzer/views/android/db_interaction.py
@@ -66,6 +66,7 @@ def get_context_from_db_entry(db_entry: QuerySet) -> dict:
'android_api': python_dict(db_entry[0].ANDROID_API),
'code_analysis': code,
'niap_analysis': python_dict(db_entry[0].NIAP_ANALYSIS),
+ 'permission_mapping': python_dict(db_entry[0].PERMISSION_MAPPING),
'urls': python_list(db_entry[0].URLS),
'domains': python_dict(db_entry[0].DOMAINS),
'emails': python_list(db_entry[0].EMAILS),
@@ -136,6 +137,7 @@ def get_context_from_analysis(app_dic,
'android_api': code_an_dic['api'],
'code_analysis': code,
'niap_analysis': code_an_dic['niap'],
+ 'permission_mapping': code_an_dic['perm_mappings'],
'urls': code_an_dic['urls'],
'domains': code_an_dic['domains'],
'emails': code_an_dic['emails'],
@@ -197,6 +199,7 @@ def save_or_update(update_type,
'ANDROID_API': code_an_dic['api'],
'CODE_ANALYSIS': code_an_dic['findings'],
'NIAP_ANALYSIS': code_an_dic['niap'],
+ 'PERMISSION_MAPPING': code_an_dic['perm_mappings'],
'URLS': code_an_dic['urls'],
'DOMAINS': code_an_dic['domains'],
'EMAILS': code_an_dic['emails'],
@@ -237,33 +240,23 @@ def save_get_ctx(app, man, m_anal, code, cert, elf, apkid, quark, trk, rscn):
# SAVE TO DB
if rscn:
logger.info('Updating Database...')
- save_or_update(
- 'update',
- app,
- man,
- m_anal,
- code,
- cert,
- elf,
- apkid,
- quark,
- trk,
- )
+ action = 'update'
update_scan_timestamp(app['md5'])
else:
logger.info('Saving to Database')
- save_or_update(
- 'save',
- app,
- man,
- m_anal,
- code,
- cert,
- elf,
- apkid,
- quark,
- trk,
- )
+ action = 'save'
+ save_or_update(
+ action,
+ app,
+ man,
+ m_anal,
+ code,
+ cert,
+ elf,
+ apkid,
+ quark,
+ trk,
+ )
return get_context_from_analysis(
app,
man,
diff --git a/mobsf/StaticAnalyzer/views/android/dvm_permissions.py b/mobsf/StaticAnalyzer/views/android/dvm_permissions.py
index cd5925de10..821f911549 100755
--- a/mobsf/StaticAnalyzer/views/android/dvm_permissions.py
+++ b/mobsf/StaticAnalyzer/views/android/dvm_permissions.py
@@ -98,7 +98,7 @@
'ASEC_DESTROY': ['signature', 'destroy internal storage', 'Allows the application to destroy internal storage.'],
'ASEC_MOUNT_UNMOUNT': ['signature', 'mount/unmount internal storage', 'Allows the application to mount/unmount internal storage.'],
'ASEC_RENAME': ['signature', 'rename internal storage', 'Allows the application to rename internal storage.'],
- 'DISABLE_KEYGUARD': ['normal', '', 'Allows applications to disable the keyguard if it is not secure.'],
+ 'DISABLE_KEYGUARD': ['normal', 'disable keyguard', 'Allows applications to disable the keyguard if it is not secure.'],
'READ_SYNC_SETTINGS': ['normal', 'read sync settings', 'Allows an application to read the sync settings, such as whether sync is enabled for Contacts.'],
'WRITE_SYNC_SETTINGS': ['normal', 'write sync settings', 'Allows an application to modify the sync settings, such as whether sync is enabled for Contacts.'],
'READ_SYNC_STATS': ['normal', 'read sync statistics', 'Allows an application to read the sync stats; e.g. the history of syncs that have occurred.'],
@@ -157,247 +157,250 @@
'BACKUP': ['signatureOrSystem', 'control system back up and restore', 'Allows the application to control the system\'s back-up and restore mechanism. Not for use by common applications.'],
'BIND_APPWIDGET': ['signatureOrSystem', 'choose widgets', 'Allows the application to tell the system which widgets can be used by which application. With this permission, applications can give access to personal data to other applications. Not for use by common applications.'],
'CHANGE_BACKGROUND_DATA_SETTING': ['signature', 'change background data usage setting', 'Allows an application to change the background data usage setting.'],
- 'GLOBAL_SEARCH': ['signatureOrSystem', '', 'This permission can be used on content providers to allow the global search system to access their data. Typically it used when the provider has some permissions protecting it (which global search would not be expected to hold), and added as a read-only permission to the path in the provider where global search queries are performed. This permission can not be held by regular applications; it is used by applications to protect themselves from everyone else besides global search.'],
- 'GLOBAL_SEARCH_CONTROL': ['signature', '', ''],
- 'SET_WALLPAPER_COMPONENT': ['signatureOrSystem', '', ''],
+ # Short descriptions are generated by ChatGPT, so they may not be accurate.
+ 'GLOBAL_SEARCH': ['signatureOrSystem', "allows global search system to access a provider's data.", 'This permission can be used on content providers to allow the global search system to access their data. Typically it used when the provider has some permissions protecting it (which global search would not be expected to hold), and added as a read-only permission to the path in the provider where global search queries are performed. This permission can not be held by regular applications; it is used by applications to protect themselves from everyone else besides global search.'],
+ 'GLOBAL_SEARCH_CONTROL': ['signature', 'permission without a specified role or function.', 'Permission without a specified role or function.'],
+ 'SET_WALLPAPER_COMPONENT': ['signatureOrSystem', 'allows setting of wallpaper components.', 'Allows setting of wallpaper components.'],
'ACCESS_CACHE_FILESYSTEM': ['signatureOrSystem', 'access the cache file system', 'Allows an application to read and write the cache file system.'],
'COPY_PROTECTED_DATA': ['signature', 'Allows to invoke default container service to copy content. Not for use by common applications.', 'Allows to invoke default container service to copy content. Not for use by common applications.'],
'C2D_MESSAGE': ['signature', 'Allows cloud to device messaging', 'Allows the application to receive push notifications.'],
- 'RECEIVE': ['signature', 'C2DM permissions', 'Permission for cloud to device messaging.'],
'ADD_VOICEMAIL': ['dangerous', 'add voicemails into the system', 'Allows an application to add voicemails into the system.'],
- 'ACCEPT_HANDOVER': ['dangerous', '', 'Allows a calling app to continue a call which was started in another app. An example is a video calling app that wants to continue a voice call on the user\'s mobile network.'],
- 'ACCESS_NOTIFICATION_POLICY': ['normal', '', 'Marker permission for applications that wish to access notification policy.'],
- 'ANSWER_PHONE_CALLS': ['dangerous', '', 'Allows the app to answer an incoming phone call.'],
- 'BIND_ACCESSIBILITY_SERVICE': ['signature', '', 'Must be required by an AccessibilityService, to ensure that only the system can bind to it.'],
- 'BIND_AUTOFILL_SERVICE': ['signature', '', 'Must be required by a AutofillService, to ensure that only the system can bind to it.'],
- 'BIND_CARRIER_MESSAGING_SERVICE': ['signature', '', 'The system process that is allowed to bind to services in carrier apps will have this permission.'],
- 'BIND_CARRIER_SERVICES': ['signature', '', 'The system process that is allowed to bind to services in carrier apps will have this permission. Carrier apps should use this permission to protect their services that only the system is allowed to bind to.'],
- 'BIND_CHOOSER_TARGET_SERVICE': ['signature', '', 'Must be required by a ChooserTargetService, to ensure that only the system can bind to it.'],
- 'BIND_CONDITION_PROVIDER_SERVICE': ['signature', '', 'Must be required by a ConditionProviderService, to ensure that only the system can bind to it.'],
- 'BIND_DREAM_SERVICE': ['signature', '', 'Must be required by an DreamService, to ensure that only the system can bind to it.'],
- 'BIND_INCALL_SERVICE': ['signature', '', 'Must be required by a InCallService, to ensure that only the system can bind to it.'],
- 'BIND_MIDI_DEVICE_SERVICE': ['signature', '', 'Must be required by an MidiDeviceService, to ensure that only the system can bind to it.'],
- 'BIND_NFC_SERVICE': ['signature', '', 'Must be required by a HostApduService or OffHostApduService to ensure that only the system can bind to it.'],
- 'BIND_NOTIFICATION_LISTENER_SERVICE': ['signature', '', 'Must be required by an NotificationListenerService, to ensure that only the system can bind to it.'],
- 'BIND_PRINT_SERVICE': ['signature', '', 'Must be required by a PrintService, to ensure that only the system can bind to it.'],
- 'BIND_QUICK_SETTINGS_TILE': ['signatureOrSystem', '', 'Allows an application to bind to third party quick settings tiles.'],
- 'BIND_REMOTEVIEWS': ['signature', '', 'Must be required by a RemoteViewsService, to ensure that only the system can bind to it.'],
- 'BIND_SCREENING_SERVICE': ['signature', '', 'Must be required by a CallScreeningService, to ensure that only the system can bind to it.'],
- 'BIND_TELECOM_CONNECTION_SERVICE': ['signature', '', 'Must be required by a ConnectionService, to ensure that only the system can bind to it.'],
- 'BIND_TEXT_SERVICE': ['signature', '', 'Must be required by a TextService (e.g. SpellCheckerService) to ensure that only the system can bind to it.'],
- 'BIND_TV_INPUT': ['signature', '', 'Must be required by a TvInputService to ensure that only the system can bind to it.'],
- 'BIND_VISUAL_VOICEMAIL_SERVICE': ['signature', '', 'Must be required by a link VisualVoicemailService to ensure that only the system can bind to it.'],
- 'BIND_VOICE_INTERACTION': ['signature', '', 'Must be required by a VoiceInteractionService, to ensure that only the system can bind to it.'],
- 'BIND_VPN_SERVICE': ['signature', '', 'Must be required by a VpnService, to ensure that only the system can bind to it.'],
- 'BIND_VR_LISTENER_SERVICE': ['signature', '', 'Must be required by an VrListenerService, to ensure that only the system can bind to it.'],
- 'BLUETOOTH_PRIVILEGED': ['signatureOrSystem', '', 'Allows applications to pair bluetooth devices without user interaction, and to allow or disallow phonebook access or message access. This is not available to third party applications.'],
- 'BODY_SENSORS': ['dangerous', '', 'Allows an application to access data from sensors that the user uses to measure what is happening inside his/her body, such as heart rate.'],
- 'CAPTURE_AUDIO_OUTPUT': ['signatureOrSystem', '', 'Allows an application to capture audio output.'],
- 'CAPTURE_SECURE_VIDEO_OUTPUT': ['normal', '', 'Allows an application to capture secure video output.'],
- 'CAPTURE_VIDEO_OUTPUT': ['normal', '', 'Allows an application to capture video output.'],
- 'FOREGROUND_SERVICE': ['normal', '', 'Allows a regular application to use Service.startForeground.'],
- 'GET_ACCOUNTS_PRIVILEGED': ['signatureOrSystem', '', 'Allows access to the list of accounts in the Accounts Service.'],
- 'INSTALL_SHORTCUT': ['normal', '', 'Allows an application to install a shortcut in Launcher.'],
- 'INSTANT_APP_FOREGROUND_SERVICE': ['signatureOrSystem', '', 'Allows an instant app to create foreground services.'],
- 'LOCATION_HARDWARE': ['normal', '', 'Allows an application to use location features in hardware, such as the geofencing api.'],
- 'MANAGE_DOCUMENTS': ['signature', '', 'Allows an application to manage access to documents, usually as part of a document picker.'],
- 'MANAGE_OWN_CALLS': ['normal', '', 'Allows a calling application which manages it own calls through the self-managed ConnectionService APIs.'],
- 'MEDIA_CONTENT_CONTROL': ['normal', '', 'Allows an application to know what content is playing and control its playback.'],
- 'NFC_TRANSACTION_EVENT': ['normal', '', 'Allows applications to receive NFC transaction events.'],
- 'READ_CALL_LOG': ['dangerous', '', 'Allows an application to read the user\'s call log.'],
- 'READ_PHONE_NUMBERS': ['dangerous', '', 'Allows read access to the device\'s phone number(s). This is a subset of the capabilities granted by READ_PHONE_STATE but is exposed to instant applications.'],
- 'READ_VOICEMAIL': ['signature', '', 'Allows an application to read voicemails in the system.'],
- 'REQUEST_COMPANION_RUN_IN_BACKGROUND': ['normal', '', 'Allows a companion app to run in the background.'],
- 'REQUEST_COMPANION_USE_DATA_IN_BACKGROUND': ['normal', '', 'Allows a companion app to use data in the background.'],
- 'REQUEST_DELETE_PACKAGES': ['normal', '', 'Allows an application to request deleting packages.'],
- 'REQUEST_IGNORE_BATTERY_OPTIMIZATIONS': ['normal', '', 'Permission an application must hold in order to use Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS.'],
- 'SEND_RESPOND_VIA_MESSAGE': ['signatureOrSystem', '', 'Allows an application (Phone) to send a request to other applications to handle the respond-via-message action during incoming calls.'],
- 'TRANSMIT_IR': ['normal', '', 'Allows using the device\'s IR transmitter, if available.'],
- 'UNINSTALL_SHORTCUT': ['normal', '', 'Don\'t use this permission in your app. This permission is no longer supported.'],
- 'USE_BIOMETRIC': ['normal', '', 'Allows an app to use device supported biometric modalities.'],
+ 'ACCEPT_HANDOVER': ['dangerous', 'enables a calling app to continue a call started in another app.', "Allows a calling app to continue a call which was started in another app. An example is a video calling app that wants to continue a voice call on the user's mobile network."],
+ 'ACCESS_NOTIFICATION_POLICY': ['normal', 'marker permission for accessing notification policy.', 'Marker permission for applications that wish to access notification policy.'],
+ 'ANSWER_PHONE_CALLS': ['dangerous', 'permits an app to answer incoming phone calls.', 'Allows the app to answer an incoming phone call.'],
+ 'BIND_ACCESSIBILITY_SERVICE': ['signature', 'required by AccessibilityServices for system binding.', 'Must be required by an AccessibilityService, to ensure that only the system can bind to it.'],
+ 'BIND_AUTOFILL_SERVICE': ['signature', 'required by AutofillServices for system binding.', 'Must be required by a AutofillService, to ensure that only the system can bind to it.'],
+ 'BIND_CARRIER_MESSAGING_SERVICE': ['signature', 'system-level permission for binding to carrier messaging services.', 'The system process that is allowed to bind to services in carrier apps will have this permission.'],
+ 'BIND_CARRIER_SERVICES': ['signature', 'system-level permission for binding to carrier services.', 'The system process that is allowed to bind to services in carrier apps will have this permission. Carrier apps should use this permission to protect their services that only the system is allowed to bind to.'],
+ 'BIND_CHOOSER_TARGET_SERVICE': ['signature', 'required by ChooserTargetServices for system binding.', 'Must be required by a ChooserTargetService, to ensure that only the system can bind to it.'],
+ 'BIND_CONDITION_PROVIDER_SERVICE': ['signature', 'required by ConditionProviderServices for system binding.', 'Must be required by a ConditionProviderService, to ensure that only the system can bind to it.'],
+ 'BIND_DREAM_SERVICE': ['signature', 'required by DreamServices for system binding.', 'Must be required by an DreamService, to ensure that only the system can bind to it.'],
+ 'BIND_INCALL_SERVICE': ['signature', 'required by InCallServices for system binding.', 'Must be required by a InCallService, to ensure that only the system can bind to it.'],
+ 'BIND_MIDI_DEVICE_SERVICE': ['signature', 'required by MidiDeviceServices for system binding.', 'Must be required by an MidiDeviceService, to ensure that only the system can bind to it.'],
+ 'BIND_NFC_SERVICE': ['signature', 'required for system binding to NFC services.', 'Must be required by a HostApduService or OffHostApduService to ensure that only the system can bind to it.'],
+ 'BIND_NOTIFICATION_LISTENER_SERVICE': ['signature', 'required by NotificationListenerServices for system binding.', 'Must be required by an NotificationListenerService, to ensure that only the system can bind to it.'],
+ 'BIND_PRINT_SERVICE': ['signature', 'required by PrintServices for system binding.', 'Must be required by a PrintService, to ensure that only the system can bind to it.'],
+ 'BIND_QUICK_SETTINGS_TILE': ['signatureOrSystem', 'allows binding to third-party quick settings tiles.', 'Allows an application to bind to third party quick settings tiles.'],
+ 'BIND_REMOTEVIEWS': ['signature', 'required by RemoteViewsServices for system binding.', 'Must be required by a RemoteViewsService, to ensure that only the system can bind to it.'],
+ 'BIND_SCREENING_SERVICE': ['signature', 'required by CallScreeningServices for system binding.', 'Must be required by a CallScreeningService, to ensure that only the system can bind to it.'],
+ 'BIND_TELECOM_CONNECTION_SERVICE': ['signature', 'required by ConnectionServices for system binding.', 'Must be required by a ConnectionService, to ensure that only the system can bind to it.'],
+ 'BIND_TEXT_SERVICE': ['signature', 'required by TextServices (e.g., SpellCheckerService) for system binding.', 'Must be required by a TextService (e.g. SpellCheckerService) to ensure that only the system can bind to it.'],
+ 'BIND_TV_INPUT': ['signature', 'required by TvInputServices for system binding.', 'Must be required by a TvInputService to ensure that only the system can bind to it.'],
+ 'BIND_VISUAL_VOICEMAIL_SERVICE': ['signature', 'required by VisualVoicemailServices for system binding.', 'Must be required by a link VisualVoicemailService to ensure that only the system can bind to it.'],
+ 'BIND_VOICE_INTERACTION': ['signature', 'required by VoiceInteractionServices for system binding.', 'Must be required by a VoiceInteractionService, to ensure that only the system can bind to it.'],
+ 'BIND_VPN_SERVICE': ['signature', 'required by VpnServices for system binding.', 'Must be required by a VpnService, to ensure that only the system can bind to it.'],
+ 'BIND_VR_LISTENER_SERVICE': ['signature', 'required by VrListenerServices for system binding.', 'Must be required by an VrListenerService, to ensure that only the system can bind to it.'],
+ 'BLUETOOTH_PRIVILEGED': ['signatureOrSystem', 'allows privileged Bluetooth operations without user interaction.', 'Allows applications to pair bluetooth devices without user interaction, and to allow or disallow phonebook access or message access. This is not available to third party applications.'],
+ 'BODY_SENSORS': ['dangerous', 'grants access to body sensors, such as heart rate.', 'Allows an application to access data from sensors that the user uses to measure what is happening inside his/her body, such as heart rate.'],
+ 'CAPTURE_AUDIO_OUTPUT': ['signatureOrSystem', 'allows capturing of audio output.', 'Allows an application to capture audio output.'],
+ 'CAPTURE_SECURE_VIDEO_OUTPUT': ['normal', 'permits capturing of secure video output.', 'Allows an application to capture secure video output.'],
+ 'CAPTURE_VIDEO_OUTPUT': ['normal', 'allows capturing of video output.', 'Allows an application to capture video output.'],
+ 'FOREGROUND_SERVICE': ['normal', 'enables regular apps to use Service.startForeground.', 'Allows a regular application to use Service.startForeground.'],
+ 'GET_ACCOUNTS_PRIVILEGED': ['signatureOrSystem', 'grants access to the Accounts Service.', 'Allows access to the list of accounts in the Accounts Service.'],
+ 'INSTALL_SHORTCUT': ['normal', 'permits installation of shortcuts in Launcher.', 'Allows an application to install a shortcut in Launcher.'],
+ 'INSTANT_APP_FOREGROUND_SERVICE': ['signatureOrSystem', 'allows instant apps to create foreground services.', 'Allows an instant app to create foreground services.'],
+ 'LOCATION_HARDWARE': ['normal', 'permits use of location features in hardware.', 'Allows an application to use location features in hardware, such as the geofencing api.'],
+ 'MANAGE_DOCUMENTS': ['signature', 'allows management of document access, typically in a picker.', 'Allows an application to manage access to documents, usually as part of a document picker.'],
+ 'MANAGE_OWN_CALLS': ['normal', 'enables a calling app to manage its own calls.', 'Allows a calling application which manages it own calls through the self-managed ConnectionService APIs.'],
+ 'MEDIA_CONTENT_CONTROL': ['normal', 'allows control over media content playback.', 'Allows an application to know what content is playing and control its playback.'],
+ 'NFC_TRANSACTION_EVENT': ['normal', 'enables receiving NFC transaction events.', 'Allows applications to receive NFC transaction events.'],
+ 'READ_CALL_LOG': ['dangerous', "grants read access to the user's call log.", "Allows an application to read the user's call log."],
+ 'READ_PHONE_NUMBERS': ['dangerous', "allows reading of the device's phone number(s).", "Allows read access to the device's phone number(s). This is a subset of the capabilities granted by READ_PHONE_STATE but is exposed to instant applications."],
+ 'READ_VOICEMAIL': ['signature', 'permits an app to read voicemails in the system.', 'Allows an application to read voicemails in the system.'],
+ 'REQUEST_COMPANION_RUN_IN_BACKGROUND': ['normal', 'allows a companion app to run in the background.', 'Allows a companion app to run in the background.'],
+ 'REQUEST_COMPANION_USE_DATA_IN_BACKGROUND': ['normal', 'permits a companion app to use data in the background.', 'Allows a companion app to use data in the background.'],
+ 'REQUEST_DELETE_PACKAGES': ['normal', 'enables an app to request package deletions.', 'Allows an application to request deleting packages.'],
+ 'REQUEST_IGNORE_BATTERY_OPTIMIZATIONS': ['normal', 'permission for using Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS.', 'Permission an application must hold in order to use Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS.'],
+ 'SEND_RESPOND_VIA_MESSAGE': ['signatureOrSystem', 'allows sending respond-via-message requests during calls.', 'Allows an application (Phone) to send a request to other applications to handle the respond-via-message action during incoming calls.'],
+ 'TRANSMIT_IR': ['normal', "enables use of the device's IR transmitter.", "Allows using the device's IR transmitter, if available."],
+ 'UNINSTALL_SHORTCUT': ['normal', 'deprecated permission for uninstalling shortcuts.', "Don't use this permission in your app. This permission is no longer supported."],
+ 'USE_BIOMETRIC': ['normal', 'allows use of device-supported biometric modalities.', 'Allows an app to use device supported biometric modalities.'],
'USE_FINGERPRINT': ['normal', 'allow use of fingerprint', 'This constant was deprecated in API level 28. Applications should request USE_BIOMETRIC instead.'],
- 'WRITE_CALL_LOG': ['dangerous', '', 'Allows an application to write (but not read) the user\'s call log data.'],
- 'WRITE_VOICEMAIL': ['signature', '', 'Allows an application to modify and remove existing voicemails in the system.'],
+ 'WRITE_CALL_LOG': ['dangerous', "allows writing to (but not reading) the user's call log.", "Allows an application to write (but not read) the user's call log data."],
+ 'WRITE_VOICEMAIL': ['signature', 'enables modification and removal of voicemails.', 'Allows an application to modify and remove existing voicemails in the system.'],
'ACCESS_BACKGROUND_LOCATION': ['dangerous', 'access location in background', 'Allows an app to access location in the background.'],
- 'ACCESS_MEDIA_LOCATION': ['dangerous', 'access any geographic locations', 'Allows an application to access any geographic locations persisted in the user\'s shared collection.'],
+ 'ACCESS_MEDIA_LOCATION': ['dangerous', 'access any geographic locations', "Allows an application to access any geographic locations persisted in the user's shared collection."],
'ACTIVITY_RECOGNITION': ['dangerous', 'allow application to recognize physical activity', 'Allows an application to recognize physical activity.'],
- 'BIND_CALL_REDIRECTION_SERVICE': ['signature', '', 'Must be required by a CallRedirectionService, to ensure that only the system can bind to it.'],
- 'BIND_CARRIER_MESSAGING_CLIENT_SERVICE': ['signature', '', 'A subclass of CarrierMessagingClientService must be protected with this permission.'],
- 'CALL_COMPANION_APP': ['normal', '', 'Allows an app which implements the InCallService API to be eligible to be enabled as a calling companion app. This means that the Telecom framework will bind to the app\'s InCallService implementation when there are calls active. The app can use the InCallService API to view information about calls on the system and control these calls.'],
- 'REQUEST_PASSWORD_COMPLEXITY': ['normal', '', 'Allows an application to request the screen lock complexity and prompt users to update the screen lock to a certain complexity level.'],
+ 'BIND_CALL_REDIRECTION_SERVICE': ['signature', 'required by CallRedirectionServices for system binding.', 'Must be required by a CallRedirectionService, to ensure that only the system can bind to it.'],
+ 'BIND_CARRIER_MESSAGING_CLIENT_SERVICE': ['signature', 'required by CarrierMessagingClientServices for system protection.', 'A subclass of CarrierMessagingClientService must be protected with this permission.'],
+ 'CALL_COMPANION_APP': ['normal', 'enables an InCallService app to function as a calling companion.', "Allows an app which implements the InCallService API to be eligible to be enabled as a calling companion app. This means that the Telecom framework will bind to the app's InCallService implementation when there are calls active. The app can use the InCallService API to view information about calls on the system and control these calls."],
+ 'REQUEST_PASSWORD_COMPLEXITY': ['normal', 'allows requesting and prompting for screen lock complexity upgrades.', 'Allows an application to request the screen lock complexity and prompt users to update the screen lock to a certain complexity level.'],
'SMS_FINANCIAL_TRANSACTIONS': ['signature', 'Allows financial apps to read filtered sms messages', 'Allows financial apps to read filtered sms messages. Protection level: signature|appop. This constant was deprecated in API level S.'],
- 'START_VIEW_PERMISSION_USAGE': ['signature', '', 'Allows the holder to start the permission usage screen for an app.'],
- 'USE_FULL_SCREEN_INTENT': ['normal', '', 'Required for apps targeting Build.VERSION_CODES.Q that want to use notification full screen intents.'],
+ 'START_VIEW_PERMISSION_USAGE': ['signature', 'allows starting the permission usage screen for an app.', 'Allows the holder to start the permission usage screen for an app.'],
+ 'USE_FULL_SCREEN_INTENT': ['normal', 'required for full screen intents in notifications.', 'Required for apps targeting Build.VERSION_CODES.Q that want to use notification full screen intents.'],
'ACCESS_CALL_AUDIO': ['signature', 'Application can access call audio', 'Allows an application assigned to the Dialer role to be granted access to the telephony call audio streams, both TX and RX.'],
'BIND_CONTROLS': ['signatureOrSystem', 'Allows SystemUI to request third party controls.', 'Allows SystemUI to request third party controls. Should only be requested by the System and required by ControlsProviderService declarations.'],
- 'BIND_QUICK_ACCESS_WALLET_SERVICE': ['signature', '', 'Must be required by a QuickAccessWalletService to ensure that only the system can bind to it.'],
- 'INTERACT_ACROSS_PROFILES': ['normal', '', 'Allows interaction across profiles in the same profile group.'],
- 'LOADER_USAGE_STATS': ['signatureOrSystem', '', 'Allows a data loader to read a package\'s access logs. The access logs contain the set of pages referenced over time.'],
+ 'BIND_QUICK_ACCESS_WALLET_SERVICE': ['signature', 'required by QuickAccessWalletServices for system binding.', 'Must be required by a QuickAccessWalletService to ensure that only the system can bind to it.'],
+ 'INTERACT_ACROSS_PROFILES': ['normal', 'enables interaction across profiles in the same group.', 'Allows interaction across profiles in the same profile group.'],
+ 'LOADER_USAGE_STATS': ['signatureOrSystem', 'allows data loaders to read package access logs.', "Allows a data loader to read a package's access logs. The access logs contain the set of pages referenced over time."],
'MANAGE_EXTERNAL_STORAGE': ['dangerous', 'Allows an application a broad access to external storage in scoped storage', 'Allows an application a broad access to external storage in scoped storage. Intended to be used by few apps that need to manage files on behalf of the users.'],
- 'NFC_PREFERRED_PAYMENT_INFO': ['normal', '', 'Allows applications to receive NFC preferred payment service information.'],
- 'QUERY_ALL_PACKAGES': ['normal', '', 'Allows query of any normal app on the device, regardless of manifest declarations.'],
- 'READ_PRECISE_PHONE_STATE': ['dangerous', '', 'Allows read only access to precise phone state. Allows reading of detailed information about phone state for special-use applications such as dialers, carrier applications, or ims applications.'],
+ 'NFC_PREFERRED_PAYMENT_INFO': ['normal', 'allows receiving NFC preferred payment service info.', 'Allows applications to receive NFC preferred payment service information.'],
+ 'QUERY_ALL_PACKAGES': ['normal', 'enables querying any normal app on the device.', 'Allows query of any normal app on the device, regardless of manifest declarations.'],
+ 'READ_PRECISE_PHONE_STATE': ['dangerous', 'allows read-only access to precise phone state.', 'Allows read only access to precise phone state. Allows reading of detailed information about phone state for special-use applications such as dialers, carrier applications, or ims applications.'],
'READ_APP_BADGE': ['normal', 'show app notification', 'Allows an application to show app icon badges.'],
- 'BIND_COMPANION_DEVICE_SERVICE': ['normal', '', 'Must be required by any CompanionDeviceServices to ensure that only the system can bind to it.'],
+ 'BIND_COMPANION_DEVICE_SERVICE': ['normal', 'required by CompanionDeviceServices for system binding.', 'Must be required by any CompanionDeviceServices to ensure that only the system can bind to it.'],
'HIDE_OVERLAY_WINDOWS': ['normal', 'Prevent non-system-overlay windows ', 'Allows an app to prevent non-system-overlay windows from being drawn on top of it.'],
'HIGH_SAMPLING_RATE_SENSORS': ['normal', 'Access higher sampling rate sensor data', 'Allows an app to access sensor data with a sampling rate greater than 200 Hz.'],
'MANAGE_ONGOING_CALLS': ['signature', 'Query and manage ongoing call details', 'Allows to query ongoing call details and manage ongoing calls.'],
- 'REQUEST_COMPANION_PROFILE_WATCH': ['normal', '', 'Allows app to request to be associated with a device via CompanionDeviceManager as a "watch".'],
- 'REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE': ['normal', '', 'Allows an application to subscribe to notifications about the presence status change of their associated companion device.'],
- 'SCHEDULE_EXACT_ALARM': ['normal', '', 'Allows an app to use exact alarm scheduling APIs to perform timing sensitive background work.'],
- 'USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER': ['signature', '', 'Allows to read device identifiers and use ICC based authentication like EAP-AKA. Often required in authentication to access the carrier\'s server and manage services of the subscriber.'],
- 'ACCESS_BLOBS_ACROSS_USERS': ['normal', '', 'Allows an application to access data blobs across users.'],
- 'BIND_CREDENTIAL_PROVIDER_SERVICE': ['signature', '', 'Must be required by a CredentialProviderService to ensure that only the system can bind to it.'],
- 'BIND_TV_INTERACTIVE_APP': ['signature', '', 'Must be required by a TvInteractiveAppService to ensure that only the system can bind to it.'],
- 'BLUETOOTH_ADVERTISE': ['dangerous', '', 'Required to be able to advertise to nearby Bluetooth devices.'],
- 'BLUETOOTH_CONNECT': ['dangerous', '', 'Required to be able to connect to paired Bluetooth devices.'],
- 'BLUETOOTH_SCAN': ['dangerous', '', 'Required to be able to discover and pair nearby Bluetooth devices.'],
- 'BODY_SENSORS_BACKGROUND': ['dangerous', '', "Allows an application to access data from sensors that the user uses to measure what is happening inside their body, such as heart rate. If you're requesting this permission, you must also request BODY_SENSORS . Requesting this permission by itself doesn't give you Body sensors access."],
- 'CONFIGURE_WIFI_DISPLAY': ['normal', '', 'Allows an application to configure and connect to Wifi displays'],
- 'CREDENTIAL_MANAGER_QUERY_CANDIDATE_CREDENTIALS': ['normal', '', 'Allows a browser to invoke the set of query apis to get metadata about credential candidates prepared during the CredentialManager.prepareGetCredential API.'],
- 'CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS': ['normal', '', 'Allows specifying candidate credential providers to be queried in Credential Manager get flows, or to be preferred as a default in the Credential Manager create flows.'],
- 'CREDENTIAL_MANAGER_SET_ORIGIN': ['normal', '', 'Allows a browser to invoke credential manager APIs on behalf of another RP.'],
- 'DELIVER_COMPANION_MESSAGES': ['normal', '', 'Allows an application to deliver companion messages to system'],
- 'DETECT_SCREEN_CAPTURE': ['normal', '', 'Allows an application to get notified when a screen capture of its windows is attempted.'],
- 'ENFORCE_UPDATE_OWNERSHIP': ['normal', '', 'Allows an application to indicate via PackageInstaller.SessionParams.setRequestUpdateOwnership(boolean) that it has the intention of becoming the update owner.'],
- 'EXECUTE_APP_ACTION': ['internal', '', 'Allows an assistive application to perform actions on behalf of users inside of applications.'],
- 'FOREGROUND_SERVICE_CAMERA': ['normal', '', 'Allows a regular application to use Service.startForeground with the type "camera".'],
- 'FOREGROUND_SERVICE_CONNECTED_DEVICE': ['normal', '', 'Allows a regular application to use Service.startForeground with the type "connectedDevice".'],
- 'FOREGROUND_SERVICE_DATA_SYNC': ['normal', '', 'Allows a regular application to use Service.startForeground with the type "dataSync".'],
- 'FOREGROUND_SERVICE_HEALTH': ['normal', '', 'Allows a regular application to use Service.startForeground with the type "health".'],
- 'FOREGROUND_SERVICE_LOCATION': ['normal', '', 'Allows a regular application to use Service.startForeground with the type "location".'],
- 'FOREGROUND_SERVICE_MEDIA_PLAYBACK': ['normal', '', 'Allows a regular application to use Service.startForeground with the type "mediaPlayback".'],
- 'FOREGROUND_SERVICE_MEDIA_PROJECTION': ['normal', '', 'Allows a regular application to use Service.startForeground with the type "mediaProjection".'],
- 'FOREGROUND_SERVICE_MICROPHONE': ['normal', '', 'Allows a regular application to use Service.startForeground with the type "microphone".'],
- 'FOREGROUND_SERVICE_PHONE_CALL': ['normal', '', 'Allows a regular application to use Service.startForeground with the type "phoneCall".'],
- 'FOREGROUND_SERVICE_REMOTE_MESSAGING': ['normal', '', 'Allows a regular application to use Service.startForeground with the type "remoteMessaging".'],
- 'FOREGROUND_SERVICE_SPECIAL_USE': ['normal', '', 'Allows a regular application to use Service.startForeground with the type "specialUse".'],
- 'FOREGROUND_SERVICE_SYSTEM_EXEMPTED': ['normal', '', 'Allows a regular application to use Service.startForeground with the type "systemExempted". Apps are allowed to use this type only in the use cases listed in ServiceInfo.FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED .'],
- 'LAUNCH_CAPTURE_CONTENT_ACTIVITY_FOR_NOTE': ['internal', '', 'Allows an application to capture screen content to perform a screenshot using the intent action Intent.ACTION_LAUNCH_CAPTURE_CONTENT_ACTIVITY_FOR_NOTE .'],
- 'LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK': ['normal', '', 'An application needs this permission for Settings.ACTION_SETTINGS_EMBED_DEEP_LINK_ACTIVITY to show its Activity embedded in Settings app.'],
- 'MANAGE_DEVICE_LOCK_STATE': ['internal', '', 'Allows financed device kiosk apps to perform actions on the Device Lock service'],
- 'MANAGE_DEVICE_POLICY_ACCESSIBILITY': ['normal', '', 'Allows an application to manage policy related to accessibility. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_ACCOUNT_MANAGEMENT': ['normal', '', 'Allows an application to set policy related to account management. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_ACROSS_USERS': ['normal', '', 'Allows an application to set device policies outside the current user that are required for securing device ownership without accessing user data. Holding this permission allows the use of other held MANAGE_DEVICE_POLICY_* permissions across all users on the device provided they do not grant access to user data.'],
- 'MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL': ['normal', '', 'Allows an application to set device policies outside the current user. Fuller form of MANAGE_DEVICE_POLICY_ACROSS_USERS that removes the restriction on accessing user data. Holding this permission allows the use of any other held MANAGE_DEVICE_POLICY_* permissions across all users on the device. Constant Value: "android.permission.MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL"'],
- 'MANAGE_DEVICE_POLICY_ACROSS_USERS_SECURITY_CRITICAL': ['normal', '', 'Allows an application to set device policies outside the current user that are critical for securing data within the current user. Holding this permission allows the use of other held MANAGE_DEVICE_POLICY_* permissions across all users on the device provided they are required for securing data within the current user.'],
- 'MANAGE_DEVICE_POLICY_AIRPLANE_MODE': ['normal', '', 'Allows an application to set policy related to airplane mode. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_APPS_CONTROL': ['normal', '', 'Allows an application to manage policy regarding modifying applications. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_APP_RESTRICTIONS': ['normal', '', 'Allows an application to manage application restrictions. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_APP_USER_DATA': ['normal', '', 'Allows an application to manage policy related to application user data. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_AUDIO_OUTPUT': ['normal', '', 'Allows an application to set policy related to audio output. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_AUTOFILL': ['normal', '', 'Allows an application to set policy related to autofill. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_BACKUP_SERVICE': ['normal', '', 'Allows an application to manage backup service policy. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_BLUETOOTH': ['normal', '', 'Allows an application to set policy related to bluetooth. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_BUGREPORT': ['normal', '', 'Allows an application to request bugreports with user consent. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_CALLS': ['normal', '', 'Allows an application to manage calling policy. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_CAMERA': ['normal', '', "Allows an application to set policy related to restricting a user's ability to use or enable and disable the camera. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user."],
- 'MANAGE_DEVICE_POLICY_CERTIFICATES': ['normal', '', 'Allows an application to set policy related to certificates. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_COMMON_CRITERIA_MODE': ['normal', '', 'Allows an application to manage policy related to common criteria mode. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_DEBUGGING_FEATURES': ['normal', '', 'Allows an application to manage debugging features policy. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_DEFAULT_SMS': ['normal', '', 'Allows an application to set policy related to the default sms application. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_DEVICE_IDENTIFIERS': ['normal', '', 'Allows an application to manage policy related to device identifiers.'],
- 'MANAGE_DEVICE_POLICY_DISPLAY': ['normal', '', 'Allows an application to set policy related to the display. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_FACTORY_RESET': ['normal', '', 'Allows an application to set policy related to factory reset. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_FUN': ['normal', '', 'Allows an application to set policy related to fun. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_INPUT_METHODS': ['normal', '', 'Allows an application to set policy related to input methods. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_INSTALL_UNKNOWN_SOURCES': ['normal', '', 'Allows an application to manage installing from unknown sources policy. MANAGE_SECURITY_CRITICAL_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_KEEP_UNINSTALLED_PACKAGES': ['normal', '', 'Allows an application to set policy related to keeping uninstalled packages. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_KEYGUARD': ['normal', '', 'Allows an application to manage policy related to keyguard. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_SECURITY_CRITICAL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_LOCALE': ['normal', '', 'Allows an application to set policy related to locale. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_LOCATION': ['normal', '', 'Allows an application to set policy related to location. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_LOCK': ['normal', '', 'Allows an application to lock a profile or the device with the appropriate cross-user permission. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_LOCK_CREDENTIALS': ['normal', '', 'Allows an application to set policy related to lock credentials. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_SECURITY_CRITICAL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_LOCK_TASK': ['normal', '', 'Allows an application to manage lock task policy. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_METERED_DATA': ['normal', '', 'Allows an application to manage policy related to metered data. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_MICROPHONE': ['normal', '', "Allows an application to set policy related to restricting a user's ability to use or enable and disable the microphone. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user."],
- 'MANAGE_DEVICE_POLICY_MOBILE_NETWORK': ['normal', '', 'Allows an application to set policy related to mobile networks. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_MODIFY_USERS': ['normal', '', 'Allows an application to manage policy preventing users from modifying users. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user'],
- 'MANAGE_DEVICE_POLICY_MTE': ['normal', '', 'Allows an application to manage policy related to the Memory Tagging Extension (MTE).'],
- 'MANAGE_DEVICE_POLICY_NEARBY_COMMUNICATION': ['normal', '', 'Allows an application to set policy related to nearby communications (e.g.Beam and nearby streaming). Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_NETWORK_LOGGING': ['normal', '', 'Allows an application to set policy related to network logging. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_ORGANIZATION_IDENTITY': ['normal', '', 'Allows an application to manage the identity of the managing organization. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_OVERRIDE_APN': ['normal', '', 'Allows an application to set policy related to override APNs. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_PACKAGE_STATE': ['normal', '', 'Allows an application to set policy related to hiding and suspending packages. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_PHYSICAL_MEDIA': ['normal', '', 'Allows an application to set policy related to physical media. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_PRINTING': ['normal', '', 'Allows an application to set policy related to printing. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_PRIVATE_DNS': ['normal', '', 'Allows an application to set policy related to private DNS. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_PROFILES': ['normal', '', 'Allows an application to set policy related to profiles. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_PROFILE_INTERACTION': ['normal', '', 'Allows an application to set policy related to interacting with profiles (e.g.Disallowing cross-profile copy and paste). Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_PROXY': ['normal', '', 'Allows an application to set a network-independent global HTTP proxy. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_QUERY_SYSTEM_UPDATES': ['normal', '', 'Allows an application query system updates. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_RESET_PASSWORD': ['normal', '', 'Allows an application to force set a new device unlock password or a managed profile challenge on current user. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_RESTRICT_PRIVATE_DNS': ['normal', '', 'Allows an application to set policy related to restricting the user from configuring private DNS. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_RUNTIME_PERMISSIONS': ['normal', '', 'Allows an application to set the grant state of runtime permissions on packages. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_RUN_IN_BACKGROUND': ['normal', '', 'Allows an application to set policy related to users running in the background. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_SAFE_BOOT': ['normal', '', 'Allows an application to manage safe boot policy. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_SCREEN_CAPTURE': ['normal', '', 'Allows an application to set policy related to screen capture. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_SCREEN_CONTENT': ['normal', '', 'Allows an application to set policy related to the usage of the contents of the screen. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_SECURITY_LOGGING': ['normal', '', 'Allows an application to set policy related to security logging. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_SETTINGS': ['normal', '', 'Allows an application to set policy related to settings. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_SMS': ['normal', '', 'Allows an application to set policy related to sms. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_STATUS_BAR': ['normal', '', 'Allows an application to set policy related to the status bar.'],
- 'MANAGE_DEVICE_POLICY_SUPPORT_MESSAGE': ['normal', '', 'Allows an application to set support messages for when a user action is affected by an active policy. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_SUSPEND_PERSONAL_APPS': ['normal', '', 'Allows an application to set policy related to suspending personal apps. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_SYSTEM_APPS': ['normal', '', 'Allows an application to manage policy related to system apps. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_SYSTEM_DIALOGS': ['normal', '', 'Allows an application to set policy related to system dialogs. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_SYSTEM_UPDATES': ['normal', '', 'Allows an application to set policy related to system updates. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_TIME': ['normal', '', 'Allows an application to manage device policy relating to time. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_USB_DATA_SIGNALLING': ['normal', '', 'Allows an application to set policy related to usb data signalling.'],
- 'MANAGE_DEVICE_POLICY_USB_FILE_TRANSFER': ['normal', '', 'Allows an application to set policy related to usb file transfers. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_USERS': ['normal', '', 'Allows an application to set policy related to users. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_VPN': ['normal', '', 'Allows an application to set policy related to VPNs. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_WALLPAPER': ['normal', '', 'Allows an application to set policy related to the wallpaper. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_WIFI': ['normal', '', 'Allows an application to set policy related to Wifi. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_WINDOWS': ['normal', '', 'Allows an application to set policy related to windows. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_DEVICE_POLICY_WIPE_DATA': ['normal', '', 'Allows an application to manage policy related to wiping data. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
- 'MANAGE_MEDIA': ['signature', '', 'Allows an application to modify and delete media files on this device or any connected storage device without user confirmation. Applications must already be granted the READ_EXTERNAL_STORAGE or MANAGE_EXTERNAL_STORAGE } permissions for this permission to take effect.'],
- 'MANAGE_WIFI_INTERFACES': ['normal', '', 'Allows applications to get notified when a Wi-Fi interface request cannot be satisfied without tearing down one or more other interfaces, and provide a decision whether to approve the request or reject it. Not for use by third-party applications.'],
- 'MANAGE_WIFI_NETWORK_SELECTION': ['normal', '', 'This permission is used to let OEMs grant their trusted app access to a subset of privileged wifi APIs to improve wifi performance. Allows applications to manage Wi-Fi network selection related features such as enable or disable global auto-join, modify connectivity scan intervals, and approve Wi-Fi Direct connections. Not for use by third-party applications.'],
- 'NEARBY_WIFI_DEVICES': ['dangerous', '', 'Required to be able to advertise and connect to nearby devices via Wi-Fi.'],
- 'OVERRIDE_WIFI_CONFIG': ['normal', '', 'Allows an application to modify any wifi configuration, even if created by another application. Once reconfigured the original creator cannot make any further modifications. Not for use by third-party applications.'],
- 'POST_NOTIFICATIONS': ['dangerous', '', 'Allows an app to post notifications'],
- 'PROVIDE_OWN_AUTOFILL_SUGGESTIONS': ['internal', '', 'Allows an application to display its suggestions using the autofill framework.'],
- 'PROVIDE_REMOTE_CREDENTIALS': ['signature', '', 'Allows an application to be able to store and retrieve credentials from a remote device.'],
- 'READ_ASSISTANT_APP_SEARCH_DATA': ['normal', '', "Allows an application to query over global data in AppSearch that's visible to the ASSISTANT role."],
- 'READ_BASIC_PHONE_STATE': ['normal', '', 'Allows read only access to phone state with a non dangerous permission, including the information like cellular network type, software version.'],
- 'READ_HOME_APP_SEARCH_DATA': ['normal', '', "Allows an application to query over global data in AppSearch that's visible to the HOME role."],
- 'READ_MEDIA_AUDIO': ['dangerous', '', 'Allows an application to read audio files from external storage.'],
- 'READ_MEDIA_IMAGES': ['dangerous', '', 'Allows an application to read image files from external storage.'],
- 'READ_MEDIA_VIDEO': ['dangerous', '', 'Allows an application to read video files from external storage.'],
- 'READ_MEDIA_VISUAL_USER_SELECTED': ['dangerous', '', 'Allows an application to read image or video files from external storage that a user has selected via the permission prompt photo picker. Apps can check this permission to verify that a user has decided to use the photo picker, instead of granting access to READ_MEDIA_IMAGES or READ_MEDIA_VIDEO . It does not prevent apps from accessing the standard photo picker manually. This permission should be requested alongside READ_MEDIA_IMAGES and/or READ_MEDIA_VIDEO , depending on which type of media is desired.'],
- 'READ_NEARBY_STREAMING_POLICY': ['normal', '', 'Allows an application to read nearby streaming policy. The policy controls whether to allow the device to stream its notifications and apps to nearby devices. Applications that are not the device owner will need this permission to call DevicePolicyManager.getNearbyNotificationStreamingPolicy() or DevicePolicyManager.getNearbyAppStreamingPolicy() .'],
- 'REQUEST_COMPANION_PROFILE_APP_STREAMING': ['normal', '', 'Allows application to request to be associated with a virtual display capable of streaming Android applications ( AssociationRequest.DEVICE_PROFILE_APP_STREAMING ) by CompanionDeviceManager . Not for use by third-party applications.'],
- 'REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION': ['normal', '', 'Allows application to request to be associated with a vehicle head unit capable of automotive projection ( AssociationRequest.DEVICE_PROFILE_AUTOMOTIVE_PROJECTION ) by CompanionDeviceManager . Not for use by third-party applications.'],
- 'REQUEST_COMPANION_PROFILE_COMPUTER': ['normal', '', 'Allows application to request to be associated with a computer to share functionality and/or data with other devices, such as notifications, photos and media ( AssociationRequest.DEVICE_PROFILE_COMPUTER ) by CompanionDeviceManager . Not for use by third-party applications.'],
- 'REQUEST_COMPANION_PROFILE_GLASSES': ['normal', '', 'Allows app to request to be associated with a device via CompanionDeviceManager as "glasses"'],
- 'REQUEST_COMPANION_PROFILE_NEARBY_DEVICE_STREAMING': ['normal', '', 'Allows application to request to stream content from an Android host to a nearby device ( AssociationRequest.DEVICE_PROFILE_NEARBY_DEVICE_STREAMING ) by CompanionDeviceManager . Not for use by third-party applications.'],
- 'REQUEST_COMPANION_SELF_MANAGED': ['normal', '', 'Allows an application to create a "self-managed" association.'],
- 'REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND': ['normal', '', 'Allows a companion app to start a foreground service from the background.'],
- 'RUN_USER_INITIATED_JOBS': ['normal', '', 'Allows applications to use the user-initiated jobs API. For more details see JobInfo.Builder.setUserInitiated(boolean) .'],
- 'START_FOREGROUND_SERVICES_FROM_BACKGROUND': ['normal', '', "Allows an application to start foreground services from the background at any time. This permission is not for use by third-party applications , with the only exception being if the app is the default SMS app. Otherwise, it's only usable by privileged apps, app verifier app, and apps with any of the EMERGENCY or SYSTEM GALLERY roles."],
- 'START_VIEW_APP_FEATURES': ['signature', '', 'Allows the holder to start the screen with a list of app features.'],
- 'SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE': ['signature', '', 'Allows an application to subscribe to keyguard locked (i.e., showing) state.'],
- 'TURN_SCREEN_ON': ['normal', '', 'Allows an app to turn on the screen on, e.g. with PowerManager.ACQUIRE_CAUSES_WAKEUP . Intended to only be used by home automation apps.'],
- 'UPDATE_PACKAGES_WITHOUT_USER_ACTION': ['normal', '', 'Allows an application to indicate via PackageInstaller.SessionParams.setRequireUserAction(int) that user action should not be required for an app update.'],
- 'USE_EXACT_ALARM': ['normal', '', 'Allows apps to use exact alarms just like with SCHEDULE_EXACT_ALARM but without needing to request this permission from the user. This is only intended for use by apps that rely on exact alarms for their core functionality. You should continue using SCHEDULE_EXACT_ALARM if your app needs exact alarms for a secondary feature that users may or may not use within your app. Keep in mind that this is a powerful permission and app stores may enforce policies to audit and review the use of this permission. Such audits may involve removal from the app store if the app is found to be misusing this permission. Apps need to target API Build.VERSION_CODES.TIRAMISU or above to be able to request this permission. Note that only one of USE_EXACT_ALARM or SCHEDULE_EXACT_ALARM should be requested on a device. If your app is already using SCHEDULE_EXACT_ALARM on older SDKs but needs USE_EXACT_ALARM on SDK 33 and above, then SCHEDULE_EXACT_ALARM should be declared with a max-sdk attribute, like: Apps that hold this permission, always stay in the WORKING_SET or lower standby bucket.Constant Value: "android.permission.USE_EXACT_ALARM"'],
- 'UWB_RANGING': ['dangerous', '', 'Required to be able to range to devices using ultra-wideband.'],
+ 'REQUEST_COMPANION_PROFILE_WATCH': ['normal', "enables association with a device as a 'watch'.", 'Allows app to request to be associated with a device via CompanionDeviceManager as a "watch".'],
+ 'REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE': ['normal', 'allows subscribing to companion device presence status notifications.', 'Allows an application to subscribe to notifications about the presence status change of their associated companion device.'],
+ 'SCHEDULE_EXACT_ALARM': ['normal', 'permits exact alarm scheduling for background work.', 'Allows an app to use exact alarm scheduling APIs to perform timing sensitive background work.'],
+ 'USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER': ['signature', 'allows reading device identifiers and using ICC-based authentication.', "Allows to read device identifiers and use ICC based authentication like EAP-AKA. Often required in authentication to access the carrier's server and manage services of the subscriber."],
+ 'ACCESS_BLOBS_ACROSS_USERS': ['normal', 'enables access to data blobs across users.', 'Allows an application to access data blobs across users.'],
+ 'BIND_CREDENTIAL_PROVIDER_SERVICE': ['signature', 'required by CredentialProviderServices for system binding.', 'Must be required by a CredentialProviderService to ensure that only the system can bind to it.'],
+ 'BIND_TV_INTERACTIVE_APP': ['signature', 'required by TvInteractiveAppServices for system binding.', 'Must be required by a TvInteractiveAppService to ensure that only the system can bind to it.'],
+ 'BLUETOOTH_ADVERTISE': ['dangerous', 'required to advertise to nearby Bluetooth devices.', 'Required to be able to advertise to nearby Bluetooth devices.'],
+ 'BLUETOOTH_CONNECT': ['dangerous', 'necessary for connecting to paired Bluetooth devices.', 'Required to be able to connect to paired Bluetooth devices.'],
+ 'BLUETOOTH_SCAN': ['dangerous', 'required for discovering and pairing Bluetooth devices.', 'Required to be able to discover and pair nearby Bluetooth devices.'],
+ 'BODY_SENSORS_BACKGROUND': ['dangerous', 'grants background access to body sensors, like heart rate.', "Allows an application to access data from sensors that the user uses to measure what is happening inside their body, such as heart rate. If you're requesting this permission, you must also request BODY_SENSORS . Requesting this permission by itself doesn't give you Body sensors access."],
+ 'CONFIGURE_WIFI_DISPLAY': ['normal', 'allows configuring and connecting to Wifi displays.', 'Allows an application to configure and connect to Wifi displays'],
+ 'CREDENTIAL_MANAGER_QUERY_CANDIDATE_CREDENTIALS': ['normal', 'enables querying metadata of credential candidates.', 'Allows a browser to invoke the set of query apis to get metadata about credential candidates prepared during the CredentialManager.prepareGetCredential API.'],
+ 'CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS': ['normal', 'allows specifying candidate credential providers.', 'Allows specifying candidate credential providers to be queried in Credential Manager get flows, or to be preferred as a default in the Credential Manager create flows.'],
+ 'CREDENTIAL_MANAGER_SET_ORIGIN': ['normal', 'enables credential manager APIs on behalf of another RP.', 'Allows a browser to invoke credential manager APIs on behalf of another RP.'],
+ 'DELIVER_COMPANION_MESSAGES': ['normal', 'allows delivery of companion messages to system.', 'Allows an application to deliver companion messages to system'],
+ 'DETECT_SCREEN_CAPTURE': ['normal', "notifies when a screen capture of the app's windows is attempted.", 'Allows an application to get notified when a screen capture of its windows is attempted.'],
+ 'ENFORCE_UPDATE_OWNERSHIP': ['normal', 'indicates intent to become the update owner via PackageInstaller.', 'Allows an application to indicate via PackageInstaller.SessionParams.setRequestUpdateOwnership(boolean) that it has the intention of becoming the update owner.'],
+ 'EXECUTE_APP_ACTION': ['internal', 'allows assistive apps to perform actions inside other apps.', 'Allows an assistive application to perform actions on behalf of users inside of applications.'],
+ 'FOREGROUND_SERVICE_CAMERA': ['normal', 'allows foreground services with camera use.', 'Allows a regular application to use Service.startForeground with the type "camera".'],
+ 'FOREGROUND_SERVICE_CONNECTED_DEVICE': ['normal', 'enables foreground services with connected device use.', 'Allows a regular application to use Service.startForeground with the type "connectedDevice".'],
+ 'FOREGROUND_SERVICE_DATA_SYNC': ['normal', 'permits foreground services for data synchronization.', 'Allows a regular application to use Service.startForeground with the type "dataSync".'],
+ 'FOREGROUND_SERVICE_HEALTH': ['normal', 'enables foreground services with health-related functionality.', 'Allows a regular application to use Service.startForeground with the type "health".'],
+ 'FOREGROUND_SERVICE_LOCATION': ['normal', 'allows foreground services with location use.', 'Allows a regular application to use Service.startForeground with the type "location".'],
+ 'FOREGROUND_SERVICE_MEDIA_PLAYBACK': ['normal', 'enables foreground services for media playback.', 'Allows a regular application to use Service.startForeground with the type "mediaPlayback".'],
+ 'FOREGROUND_SERVICE_MEDIA_PROJECTION': ['normal', 'allows foreground services for media projection.', 'Allows a regular application to use Service.startForeground with the type "mediaProjection".'],
+ 'FOREGROUND_SERVICE_MICROPHONE': ['normal', 'permits foreground services with microphone use.', 'Allows a regular application to use Service.startForeground with the type "microphone".'],
+ 'FOREGROUND_SERVICE_PHONE_CALL': ['normal', 'enables foreground services during phone calls.', 'Allows a regular application to use Service.startForeground with the type "phoneCall".'],
+ 'FOREGROUND_SERVICE_REMOTE_MESSAGING': ['normal', 'allows foreground services for remote messaging.', 'Allows a regular application to use Service.startForeground with the type "remoteMessaging".'],
+ 'FOREGROUND_SERVICE_SPECIAL_USE': ['normal', 'enables special-use foreground services.', 'Allows a regular application to use Service.startForeground with the type "specialUse".'],
+ 'FOREGROUND_SERVICE_SYSTEM_EXEMPTED': ['normal', 'allows system-exempted types of foreground services.', 'Allows a regular application to use Service.startForeground with the type "systemExempted". Apps are allowed to use this type only in the use cases listed in ServiceInfo.FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED .'],
+ 'LAUNCH_CAPTURE_CONTENT_ACTIVITY_FOR_NOTE': ['internal', 'enables screen content capture for screenshots.', 'Allows an application to capture screen content to perform a screenshot using the intent action Intent.ACTION_LAUNCH_CAPTURE_CONTENT_ACTIVITY_FOR_NOTE .'],
+ 'LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK': ['normal', 'enables showing an Activity embedded in the Settings app.', 'An application needs this permission for Settings.ACTION_SETTINGS_EMBED_DEEP_LINK_ACTIVITY to show its Activity embedded in Settings app.'],
+ 'MANAGE_DEVICE_LOCK_STATE': ['internal', 'allows financed device kiosk apps to interact with Device Lock service.', 'Allows financed device kiosk apps to perform actions on the Device Lock service'],
+ 'MANAGE_DEVICE_POLICY_ACCESSIBILITY': ['normal', 'enables managing policy related to accessibility.', 'Allows an application to manage policy related to accessibility. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_ACCOUNT_MANAGEMENT': ['normal', 'allows setting policy related to account management.', 'Allows an application to set policy related to account management. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_ACROSS_USERS': ['normal', 'enables setting secure device policies without user data access.', 'Allows an application to set device policies outside the current user that are required for securing device ownership without accessing user data. Holding this permission allows the use of other held MANAGE_DEVICE_POLICY_* permissions across all users on the device provided they do not grant access to user data.'],
+ 'MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL': ['normal', 'allows setting device policies with access to user data.', 'Allows an application to set device policies outside the current user. Fuller form of MANAGE_DEVICE_POLICY_ACROSS_USERS that removes the restriction on accessing user data. Holding this permission allows the use of any other held MANAGE_DEVICE_POLICY_* permissions across all users on the device. Constant Value: "android.permission.MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL"'],
+ 'MANAGE_DEVICE_POLICY_ACROSS_USERS_SECURITY_CRITICAL': ['normal', 'enables critical security policies for securing user data.', 'Allows an application to set device policies outside the current user that are critical for securing data within the current user. Holding this permission allows the use of other held MANAGE_DEVICE_POLICY_* permissions across all users on the device provided they are required for securing data within the current user.'],
+ 'MANAGE_DEVICE_POLICY_AIRPLANE_MODE': ['normal', 'permits setting policy related to airplane mode.', 'Allows an application to set policy related to airplane mode. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_APPS_CONTROL': ['normal', 'allows managing policy for modifying applications.', 'Allows an application to manage policy regarding modifying applications. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_APP_RESTRICTIONS': ['normal', 'enables management of application restrictions.', 'Allows an application to manage application restrictions. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_APP_USER_DATA': ['normal', 'allows setting policy for application user data.', 'Allows an application to manage policy related to application user data. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_AUDIO_OUTPUT': ['normal', 'enables policy setting for audio output.', 'Allows an application to set policy related to audio output. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_AUTOFILL': ['normal', 'allows setting policy for autofill services.', 'Allows an application to set policy related to autofill. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_BACKUP_SERVICE': ['normal', 'enables managing backup service policy.', 'Allows an application to manage backup service policy. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_BLUETOOTH': ['normal', 'permits setting policy related to Bluetooth.', 'Allows an application to set policy related to bluetooth. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_BUGREPORT': ['normal', 'allows requesting bugreports with user consent.', 'Allows an application to request bugreports with user consent. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_CALLS': ['normal', 'enables managing policy for phone calls.', 'Allows an application to manage calling policy. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_CAMERA': ['normal', 'permits policy setting for camera usage.', "Allows an application to set policy related to restricting a user's ability to use or enable and disable the camera. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user."],
+ 'MANAGE_DEVICE_POLICY_CERTIFICATES': ['normal', 'allows policy management for certificates.', 'Allows an application to set policy related to certificates. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_COMMON_CRITERIA_MODE': ['normal', 'enables policy management for common criteria mode.', 'Allows an application to manage policy related to common criteria mode. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_DEBUGGING_FEATURES': ['normal', 'allows managing policy for debugging features.', 'Allows an application to manage debugging features policy. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_DEFAULT_SMS': ['normal', 'permits setting policy for the default SMS application.', 'Allows an application to set policy related to the default sms application. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_DEVICE_IDENTIFIERS': ['normal', 'enables policy management for device identifiers.', 'Allows an application to manage policy related to device identifiers.'],
+ 'MANAGE_DEVICE_POLICY_DISPLAY': ['normal', 'allows setting policy for display management.', 'Allows an application to set policy related to the display. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_FACTORY_RESET': ['normal', 'enables setting policy for factory resets.', 'Allows an application to set policy related to factory reset. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_FUN': ['normal', 'allows setting policy related to fun activities.', 'Allows an application to set policy related to fun. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_INPUT_METHODS': ['normal', 'permits policy setting for input methods.', 'Allows an application to set policy related to input methods. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_INSTALL_UNKNOWN_SOURCES': ['normal', 'enables policy for installing apps from unknown sources.', 'Allows an application to manage installing from unknown sources policy. MANAGE_SECURITY_CRITICAL_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_KEEP_UNINSTALLED_PACKAGES': ['normal', 'allows keeping uninstalled packages per policy.', 'Allows an application to set policy related to keeping uninstalled packages. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_KEYGUARD': ['normal', 'enables managing policy for keyguard settings.', 'Allows an application to manage policy related to keyguard. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_SECURITY_CRITICAL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_LOCALE': ['normal', 'allows setting policy for locale management.', 'Allows an application to set policy related to locale. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_LOCATION': ['normal', 'enables policy setting for location services.', 'Allows an application to set policy related to location. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_LOCK': ['normal', 'permits locking profiles or devices per policy.', 'Allows an application to lock a profile or the device with the appropriate cross-user permission. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_LOCK_CREDENTIALS': ['normal', 'enables policy setting for lock credentials.', 'Allows an application to set policy related to lock credentials. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_SECURITY_CRITICAL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_LOCK_TASK': ['normal', 'allows managing lock task policy.', 'Allows an application to manage lock task policy. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_METERED_DATA': ['normal', 'permits policy management for metered data.', 'Allows an application to manage policy related to metered data. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_MICROPHONE': ['normal', 'allows policy setting for microphone usage.', "Allows an application to set policy related to restricting a user's ability to use or enable and disable the microphone. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user."],
+ 'MANAGE_DEVICE_POLICY_MOBILE_NETWORK': ['normal', 'enables setting policy for mobile networks.', 'Allows an application to set policy related to mobile networks. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_MODIFY_USERS': ['normal', 'allows policy management to prevent user modifications.', 'Allows an application to manage policy preventing users from modifying users. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user'],
+ 'MANAGE_DEVICE_POLICY_MTE': ['normal', 'enables policy management for the Memory Tagging Extension.', 'Allows an application to manage policy related to the Memory Tagging Extension (MTE).'],
+ 'MANAGE_DEVICE_POLICY_NEARBY_COMMUNICATION': ['normal', 'allows policy setting for nearby communications.', 'Allows an application to set policy related to nearby communications (e.g.Beam and nearby streaming). Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_NETWORK_LOGGING': ['normal', 'enables setting policy for network logging.', 'Allows an application to set policy related to network logging. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_ORGANIZATION_IDENTITY': ['normal', 'allows managing the identity of the managing organization.', 'Allows an application to manage the identity of the managing organization. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_OVERRIDE_APN': ['normal', 'permits policy setting for overriding APNs.', 'Allows an application to set policy related to override APNs. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_PACKAGE_STATE': ['normal', 'enables policy for hiding and suspending packages.', 'Allows an application to set policy related to hiding and suspending packages. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_PHYSICAL_MEDIA': ['normal', 'allows setting policies for physical media usage.', 'Allows an application to set policy related to physical media. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_PRINTING': ['normal', 'allows setting policies for printing services.', 'Allows an application to set policy related to printing. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_PRIVATE_DNS': ['normal', 'allows setting policies for private DNS management.', 'Allows an application to set policy related to private DNS. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_PROFILES': ['normal', 'allows setting policies for user profiles.', 'Allows an application to set policy related to profiles. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_PROFILE_INTERACTION': ['normal', 'allows setting policies for interactions between user profiles.', 'Allows an application to set policy related to interacting with profiles (e.g.Disallowing cross-profile copy and paste). Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_PROXY': ['normal', 'allows setting a global HTTP proxy independently of network.', 'Allows an application to set a network-independent global HTTP proxy. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_QUERY_SYSTEM_UPDATES': ['normal', 'allows querying system updates.', 'Allows an application query system updates. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_RESET_PASSWORD': ['normal', 'allows force setting a new device unlock password or profile challenge.', 'Allows an application to force set a new device unlock password or a managed profile challenge on current user. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_RESTRICT_PRIVATE_DNS': ['normal', 'allows restricting user configuration of private DNS.', 'Allows an application to set policy related to restricting the user from configuring private DNS. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_RUNTIME_PERMISSIONS': ['normal', 'allows setting runtime permissions for packages.', 'Allows an application to set the grant state of runtime permissions on packages. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_RUN_IN_BACKGROUND': ['normal', 'allows setting policies for background process management.', 'Allows an application to set policy related to users running in the background. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_SAFE_BOOT': ['normal', 'allows managing policies for safe boot mode.', 'Allows an application to manage safe boot policy. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_SCREEN_CAPTURE': ['normal', 'allows setting policies for screen capture functionality.', 'Allows an application to set policy related to screen capture. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_SCREEN_CONTENT': ['normal', 'allows setting policies for the usage of screen contents.', 'Allows an application to set policy related to the usage of the contents of the screen. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_SECURITY_LOGGING': ['normal', 'allows setting policies for security logging.', 'Allows an application to set policy related to security logging. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_SETTINGS': ['normal', 'allows setting general device policies.', 'Allows an application to set policy related to settings. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_SMS': ['normal', 'allows setting policies for SMS functionality.', 'Allows an application to set policy related to sms. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_STATUS_BAR': ['normal', 'allows setting policies for the status bar.', 'Allows an application to set policy related to the status bar.'],
+ 'MANAGE_DEVICE_POLICY_SUPPORT_MESSAGE': ['normal', 'allows setting support messages for policy-affected actions.', 'Allows an application to set support messages for when a user action is affected by an active policy. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_SUSPEND_PERSONAL_APPS': ['normal', 'allows suspending personal apps through policy settings.', 'Allows an application to set policy related to suspending personal apps. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_SYSTEM_APPS': ['normal', 'allows managing policies related to system apps.', 'Allows an application to manage policy related to system apps. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_SYSTEM_DIALOGS': ['normal', 'allows setting policies for system dialogs.', 'Allows an application to set policy related to system dialogs. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_SYSTEM_UPDATES': ['normal', 'allows setting policies for system updates.', 'Allows an application to set policy related to system updates. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_TIME': ['normal', 'allows managing policies related to time settings.', 'Allows an application to manage device policy relating to time. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_USB_DATA_SIGNALLING': ['normal', 'allows setting policies for USB data signalling.', 'Allows an application to set policy related to usb data signalling.'],
+ 'MANAGE_DEVICE_POLICY_USB_FILE_TRANSFER': ['normal', 'allows setting policies for USB file transfers.', 'Allows an application to set policy related to usb file transfers. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_USERS': ['normal', 'allows setting policies related to user management.', 'Allows an application to set policy related to users. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_VPN': ['normal', 'allows setting policies for VPN usage.', 'Allows an application to set policy related to VPNs. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_WALLPAPER': ['normal', 'allows setting policies for wallpaper management.', 'Allows an application to set policy related to the wallpaper. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_WIFI': ['normal', 'allows setting policies for WiFi connectivity.', 'Allows an application to set policy related to Wifi. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_WINDOWS': ['normal', 'allows setting policies for window management.', 'Allows an application to set policy related to windows. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_DEVICE_POLICY_WIPE_DATA': ['normal', 'allows managing policies for data wiping.', 'Allows an application to manage policy related to wiping data. Manifest.permission#MANAGE_DEVICE_POLICY_ACROSS_USERS is required to call APIs protected by this permission on users different to the calling user.'],
+ 'MANAGE_MEDIA': ['signature', 'allows modification and deletion of media files without user confirmation.', 'Allows an application to modify and delete media files on this device or any connected storage device without user confirmation. Applications must already be granted the READ_EXTERNAL_STORAGE or MANAGE_EXTERNAL_STORAGE } permissions for this permission to take effect.'],
+ 'MANAGE_WIFI_INTERFACES': ['normal', 'allows managing conflicts between Wi-Fi interface requests.', 'Allows applications to get notified when a Wi-Fi interface request cannot be satisfied without tearing down one or more other interfaces, and provide a decision whether to approve the request or reject it. Not for use by third-party applications.'],
+ 'MANAGE_WIFI_NETWORK_SELECTION': ['normal', 'allows privileged management of Wi-Fi network selection.', 'This permission is used to let OEMs grant their trusted app access to a subset of privileged wifi APIs to improve wifi performance. Allows applications to manage Wi-Fi network selection related features such as enable or disable global auto-join, modify connectivity scan intervals, and approve Wi-Fi Direct connections. Not for use by third-party applications.'],
+ 'NEARBY_WIFI_DEVICES': ['dangerous', 'required for advertising and connecting to nearby devices via Wi-Fi.', 'Required to be able to advertise and connect to nearby devices via Wi-Fi.'],
+ 'OVERRIDE_WIFI_CONFIG': ['normal', 'allows modification of any Wi-Fi configuration.', 'Allows an application to modify any wifi configuration, even if created by another application. Once reconfigured the original creator cannot make any further modifications. Not for use by third-party applications.'],
+ 'POST_NOTIFICATIONS': ['dangerous', 'allows an app to post notifications.', 'Allows an app to post notifications'],
+ 'PROVIDE_OWN_AUTOFILL_SUGGESTIONS': ['internal', 'allows providing autofill suggestions using the autofill framework.', 'Allows an application to display its suggestions using the autofill framework.'],
+ 'PROVIDE_REMOTE_CREDENTIALS': ['signature', 'allows storing and retrieving credentials from a remote device.', 'Allows an application to be able to store and retrieve credentials from a remote device.'],
+ 'READ_ASSISTANT_APP_SEARCH_DATA': ['normal', 'allows querying global AppSearch data visible to the Assistant role.', "Allows an application to query over global data in AppSearch that's visible to the ASSISTANT role."],
+ 'READ_BASIC_PHONE_STATE': ['normal', 'allows read-only access to basic phone state information.', 'Allows read only access to phone state with a non dangerous permission, including the information like cellular network type, software version.'],
+ 'READ_HOME_APP_SEARCH_DATA': ['normal', 'allows querying global AppSearch data visible to the Home role.', "Allows an application to query over global data in AppSearch that's visible to the HOME role."],
+ 'READ_MEDIA_AUDIO': ['dangerous', 'allows reading audio files from external storage.', 'Allows an application to read audio files from external storage.'],
+ 'READ_MEDIA_IMAGES': ['dangerous', 'allows reading image files from external storage.', 'Allows an application to read image files from external storage.'],
+ 'READ_MEDIA_VIDEO': ['dangerous', 'allows reading video files from external storage.', 'Allows an application to read video files from external storage.'],
+ 'READ_MEDIA_VISUAL_USER_SELECTED': ['dangerous', 'allows reading user-selected image or video files from external storage.', 'Allows an application to read image or video files from external storage that a user has selected via the permission prompt photo picker. Apps can check this permission to verify that a user has decided to use the photo picker, instead of granting access to READ_MEDIA_IMAGES or READ_MEDIA_VIDEO . It does not prevent apps from accessing the standard photo picker manually. This permission should be requested alongside READ_MEDIA_IMAGES and/or READ_MEDIA_VIDEO , depending on which type of media is desired.'],
+ 'READ_NEARBY_STREAMING_POLICY': ['normal', 'allows reading nearby streaming policy settings.', 'Allows an application to read nearby streaming policy. The policy controls whether to allow the device to stream its notifications and apps to nearby devices. Applications that are not the device owner will need this permission to call DevicePolicyManager.getNearbyNotificationStreamingPolicy() or DevicePolicyManager.getNearbyAppStreamingPolicy() .'],
+ 'REQUEST_COMPANION_PROFILE_APP_STREAMING': ['normal', 'allows requesting association with a virtual display for app streaming.', 'Allows application to request to be associated with a virtual display capable of streaming Android applications ( AssociationRequest.DEVICE_PROFILE_APP_STREAMING ) by CompanionDeviceManager . Not for use by third-party applications.'],
+ 'REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION': ['normal', 'allows requesting association with a vehicle head unit for automotive projection.', 'Allows application to request to be associated with a vehicle head unit capable of automotive projection ( AssociationRequest.DEVICE_PROFILE_AUTOMOTIVE_PROJECTION ) by CompanionDeviceManager . Not for use by third-party applications.'],
+ 'REQUEST_COMPANION_PROFILE_COMPUTER': ['normal', 'allows requesting association with a computer for shared functionality.', 'Allows application to request to be associated with a computer to share functionality and/or data with other devices, such as notifications, photos and media ( AssociationRequest.DEVICE_PROFILE_COMPUTER ) by CompanionDeviceManager . Not for use by third-party applications.'],
+ 'REQUEST_COMPANION_PROFILE_GLASSES': ['normal', "allows requesting association with a device as 'glasses'.", 'Allows app to request to be associated with a device via CompanionDeviceManager as "glasses"'],
+ 'REQUEST_COMPANION_PROFILE_NEARBY_DEVICE_STREAMING': ['normal', 'allows requesting to stream content to a nearby device.', 'Allows application to request to stream content from an Android host to a nearby device ( AssociationRequest.DEVICE_PROFILE_NEARBY_DEVICE_STREAMING ) by CompanionDeviceManager . Not for use by third-party applications.'],
+ 'REQUEST_COMPANION_SELF_MANAGED': ['normal', 'allows creating a self-managed companion device association.', 'Allows an application to create a "self-managed" association.'],
+ 'REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND': ['normal', 'allows a companion app to start foreground services from the background.', 'Allows a companion app to start a foreground service from the background.'],
+ 'RUN_USER_INITIATED_JOBS': ['normal', 'allows using the user-initiated jobs API.', 'Allows applications to use the user-initiated jobs API. For more details see JobInfo.Builder.setUserInitiated(boolean) .'],
+ 'START_FOREGROUND_SERVICES_FROM_BACKGROUND': ['normal', 'allows starting foreground services from the background.', "Allows an application to start foreground services from the background at any time. This permission is not for use by third-party applications , with the only exception being if the app is the default SMS app. Otherwise, it's only usable by privileged apps, app verifier app, and apps with any of the EMERGENCY or SYSTEM GALLERY roles."],
+ 'START_VIEW_APP_FEATURES': ['signature', 'allows starting a screen listing app features.', 'Allows the holder to start the screen with a list of app features.'],
+ 'SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE': ['signature', 'allows subscribing to the keyguard locked state.', 'Allows an application to subscribe to keyguard locked (i.e., showing) state.'],
+ 'TURN_SCREEN_ON': ['normal', 'allows turning the screen on, for use by home automation apps.', 'Allows an app to turn on the screen on, e.g. with PowerManager.ACQUIRE_CAUSES_WAKEUP . Intended to only be used by home automation apps.'],
+ 'UPDATE_PACKAGES_WITHOUT_USER_ACTION': ['normal', 'allows updating packages without requiring user action.', 'Allows an application to indicate via PackageInstaller.SessionParams.setRequireUserAction(int) that user action should not be required for an app update.'],
+ 'USE_EXACT_ALARM': ['normal', 'allows using exact alarms without user permission.', 'Allows apps to use exact alarms just like with SCHEDULE_EXACT_ALARM but without needing to request this permission from the user. This is only intended for use by apps that rely on exact alarms for their core functionality. You should continue using SCHEDULE_EXACT_ALARM if your app needs exact alarms for a secondary feature that users may or may not use within your app. Keep in mind that this is a powerful permission and app stores may enforce policies to audit and review the use of this permission. Such audits may involve removal from the app store if the app is found to be misusing this permission.'],
+ 'UWB_RANGING': ['dangerous', 'required for ranging to devices using ultra-wideband.', 'Required to be able to range to devices using ultra-wideband.'],
},
'SPECIAL_PERMISSIONS': {
- 'com.sec.android.provider.badge.permission.READ': ['normal', 'Show notification count on app', 'Show notification count or badge on application launch icon for samsung phones.'],
- 'com.sec.android.provider.badge.permission.WRITE': ['normal', 'Show notification count on app', 'Show notification count or badge on application launch icon for samsung phones.'],
- 'com.htc.launcher.permission.READ_SETTINGS': ['normal', 'Show notification count on app', 'Show notification count or badge on application launch icon for htc phones.'],
- 'com.htc.launcher.permission.UPDATE_SHORTCUT': ['normal', 'Show notification count on app', 'Show notification count or badge on application launch icon for htc phones.'],
- 'com.sonyericsson.home.permission.BROADCAST_BADGE': ['normal', 'Show notification count on app', 'Show notification count or badge on application launch icon for sony phones.'],
- 'com.sonymobile.home.permission.PROVIDER_INSERT_BADGE': ['normal', 'Show notification count on app', 'Show notification count or badge on application launch icon for sony phones.'],
- 'com.anddoes.launcher.permission.UPDATE_COUNT': ['normal', 'Show notification count on app', 'Show notification count or badge on application launch icon for apex.'],
- 'com.majeur.launcher.permission.UPDATE_BADGE': ['normal', 'Show notification count on app', 'Show notification count or badge on application launch icon for solid.'],
- 'com.huawei.android.launcher.permission.READ_SETTINGS': ['normal', 'Show notification count on app', 'Show notification count or badge on application launch icon for huawei phones.'],
- 'com.huawei.android.launcher.permission.WRITE_SETTINGS': ['normal', 'Show notification count on app', 'Show notification count or badge on application launch icon for huawei phones.'],
- 'com.huawei.android.launcher.permission.CHANGE_BADGE': ['normal', 'Show notification count on app', 'Show notification count or badge on application launch icon for huawei phones.'],
- 'com.oppo.launcher.permission.READ_SETTINGS': ['normal', 'Show notification count on app', 'Show notification count or badge on application launch icon for oppo phones.'],
- 'com.oppo.launcher.permission.WRITE_SETTINGS': ['normal', 'Show notification count on app', 'Show notification count or badge on application launch icon for oppo phones.'],
+ 'com.sec.android.provider.badge.permission.READ': ['normal', 'show notification count on app', 'Show notification count or badge on application launch icon for samsung phones.'],
+ 'com.sec.android.provider.badge.permission.WRITE': ['normal', 'show notification count on app', 'Show notification count or badge on application launch icon for samsung phones.'],
+ 'com.htc.launcher.permission.READ_SETTINGS': ['normal', 'show notification count on app', 'Show notification count or badge on application launch icon for htc phones.'],
+ 'com.htc.launcher.permission.UPDATE_SHORTCUT': ['normal', 'show notification count on app', 'Show notification count or badge on application launch icon for htc phones.'],
+ 'com.sonyericsson.home.permission.BROADCAST_BADGE': ['normal', 'show notification count on app', 'Show notification count or badge on application launch icon for sony phones.'],
+ 'com.sonymobile.home.permission.PROVIDER_INSERT_BADGE': ['normal', 'show notification count on app', 'Show notification count or badge on application launch icon for sony phones.'],
+ 'com.anddoes.launcher.permission.UPDATE_COUNT': ['normal', 'show notification count on app', 'Show notification count or badge on application launch icon for apex.'],
+ 'com.majeur.launcher.permission.UPDATE_BADGE': ['normal', 'show notification count on app', 'Show notification count or badge on application launch icon for solid.'],
+ 'com.huawei.android.launcher.permission.READ_SETTINGS': ['normal', 'show notification count on app', 'Show notification count or badge on application launch icon for huawei phones.'],
+ 'com.huawei.android.launcher.permission.WRITE_SETTINGS': ['normal', 'show notification count on app', 'Show notification count or badge on application launch icon for huawei phones.'],
+ 'com.huawei.android.launcher.permission.CHANGE_BADGE': ['normal', 'show notification count on app', 'Show notification count or badge on application launch icon for huawei phones.'],
+ 'com.oppo.launcher.permission.READ_SETTINGS': ['normal', 'show notification count on app', 'Show notification count or badge on application launch icon for oppo phones.'],
+ 'com.oppo.launcher.permission.WRITE_SETTINGS': ['normal', 'show notification count on app', 'Show notification count or badge on application launch icon for oppo phones.'],
+ 'com.google.android.gms.permission.AD_ID': ['normal', 'application shows advertisements', 'This app uses a Google advertising ID and can possibly serve advertisements.'],
+ 'com.google.android.finsky.permission.BIND_GET_INSTALL_REFERRER_SERVICE': ['normal', 'permission defined by google', 'A custom permission defined by Google.'],
+ 'com.google.android.c2dm.permission.RECEIVE': ['normal', 'recieve push notifications', 'Allows an application to receive push notifications from cloud.'],
},
'MANIFEST_PERMISSION_GROUP': {
diff --git a/mobsf/StaticAnalyzer/views/android/jar_aar.py b/mobsf/StaticAnalyzer/views/android/jar_aar.py
index 1c86d9be99..02bb7c047e 100644
--- a/mobsf/StaticAnalyzer/views/android/jar_aar.py
+++ b/mobsf/StaticAnalyzer/views/android/jar_aar.py
@@ -159,7 +159,8 @@ def common_analysis(request, app_dic, rescan, api, analysis_type):
code_an_dic = code_analysis(
app_dic['app_dir'],
'apk',
- app_dic['manifest_file'])
+ app_dic['manifest_file'],
+ man_data_dic['perm'])
obfuscated_check(app_dic['app_dir'], code_an_dic)
quark_results = []
# Get the strings and metadata
diff --git a/mobsf/StaticAnalyzer/views/android/rules/android_permissions.yaml b/mobsf/StaticAnalyzer/views/android/rules/android_permissions.yaml
new file mode 100644
index 0000000000..90245056e8
--- /dev/null
+++ b/mobsf/StaticAnalyzer/views/android/rules/android_permissions.yaml
@@ -0,0 +1,5448 @@
+# This file is generated with the help of https://github.com/reddr/axplorer/tree/master/permissions to cover permissions till Android API 25
+# Some of the permissions, classes, and methods are generated using ChatGPT, so the results might not be accurate.
+# Ajin Abraham - github.com/ajinabraham | GPLv3 License
+---
+- id: android.permission.SET_WALLPAPER
+ message: android.permission.SET_WALLPAPER
+ type: RegexAndOr
+ pattern:
+ - android\.accounts\.AccountAuthenticatorActivity|android\.app\.Activity|android\.app\.ActivityGroup|android\.app\.AliasActivity|android\.app\.Application|android\.app\.ExpandableListActivity|android\.app\.ListActivity|android\.app\.NativeActivity|android\.app\.TabActivity|android\.app\.WallpaperManager|android\.app\.backup|android\.content\.ContextWrapper|android\.content\.MutableContextWrapper|android\.inputmethodservice\.InputMethodService|android\.net\.VpnService|android\.service\.dreams|android\.service\.quicksettings|android\.service\.voice|android\.test\.IsolatedContext|android\.test\.RenamingDelegatingContext|android\.test\.mock|android\.view\.ContextThemeWrapper|com\.android\.server
+ - - setWallpaper\(
+ - setBitmap\(
+ - setStream\(
+ - setResource\(
+ - clear\(
+ - clearWallpaper\(
+ input_case: exact
+ severity: info
+- id: android.permission.BROADCAST_STICKY
+ message: android.permission.BROADCAST_STICKY
+ type: RegexAndOr
+ pattern:
+ - android\.accounts\.AccountAuthenticatorActivity|android\.app\.Activity|android\.app\.ActivityGroup|android\.app\.ActivityManager|android\.app\.AliasActivity|android\.app\.Application|android\.app\.ExpandableListActivity|android\.app\.ListActivity|android\.app\.NativeActivity|android\.app\.Service|android\.app\.TabActivity|android\.app\.backup|android\.bluetooth\.BluetoothAdapter|android\.content\.ContextWrapper|android\.content\.MutableContextWrapper|android\.inputmethodservice\.InputMethodService|android\.media\.MediaScannerConnection|android\.media\.browse|android\.net\.VpnService|android\.security\.KeyChain|android\.service\.dreams|android\.service\.quicksettings|android\.service\.voice|android\.speech\.SpeechRecognizer|android\.speech\.tts|android\.test\.IsolatedContext|android\.test\.RenamingDelegatingContext|android\.test\.mock|android\.view\.ContextThemeWrapper|com\.android\.server|android\.accounts\.AccountManager|android\.widget\.ZoomButtonsController|android\.content\.BroadcastReceiver
+ - - finishActivity\(
+ - removeContentProvider\(
+ - activityStopped\(
+ - unregisterReceiver\(
+ - stopLockTask\(
+ - moveTaskToFront\(
+ - activityDestroyed\(
+ - closeProfileProxy\(
+ - swapDockedAndFullscreenStack\(
+ - convertFromTranslucent\(
+ - unbindBackupAgent\(
+ - isInHomeStack\(
+ - moveTaskToDockedStack\(
+ - navigateUpToFromChild\(
+ - startActivityAndWait\(
+ - finishHeavyWeightApp\(
+ - handleApplicationCrash\(
+ - handleApplicationWtf\(
+ - stopSystemLockTaskMode\(
+ - startService\(
+ - bindBackupAgent\(
+ - setDebugApp\(
+ - dispatchKeyShortcutEvent\(
+ - stopUser\(
+ - moveActivityTaskToBack\(
+ - convertToTranslucent\(
+ - openContentUri\(
+ - isSpeaking\(
+ - startVoiceActivity\(
+ - startLockTaskModeOnCurrent\(
+ - stopSelfResult\(
+ - sendStickyOrderedBroadcastAsUser\(
+ - getLanguage\(
+ - startActivityAsUser\(
+ - setRequestedOrientation\(
+ - setProcessLimit\(
+ - removeTask\(
+ - switchUser\(
+ - finishReceiver\(
+ - clearApplicationUserData\(
+ - unbindFinished\(
+ - unbroadcastIntent\(
+ - setVisible\(
+ - getFeatures\(
+ - stopService\(
+ - disconnect\(
+ - unbindService\(
+ - removeStack\(
+ - stopAppSwitches\(
+ - startLockTaskMode\(
+ - getProfileProxy\(
+ - publishContentProviders\(
+ - setServiceForeground\(
+ - finishSubActivity\(
+ - unstableProviderDied\(
+ - startRunning\(
+ - resizeTask\(
+ - startInstrumentation\(
+ - isLanguageAvailable\(
+ - getTaskBounds\(
+ - activityIdle\(
+ - removeContentProviderExternal\(
+ - startSystemLockTaskMode\(
+ - removeOnAccountsUpdatedListener\(
+ - moveTaskToBack\(
+ - moveTasksToFullscreenStack\(
+ - activitySlept\(
+ - releaseActivityInstance\(
+ - onWakeUp\(
+ - moveTaskToStack\(
+ - setLockScreenShown\(
+ - closeSystemDialogs\(
+ - getVoice\(
+ - dismissKeyguardOnNextActivity\(
+ - setFrontActivityScreenCompatMode\(
+ - bindService\(
+ - playEarcon\(
+ - reportAssistContextExtras\(
+ - speak\(
+ - removeStickyBroadcast\(
+ - updateConfiguration\(
+ - onNavigateUp\(
+ - dispatchKeyEvent\(
+ - getProviderMimeType\(
+ - getContentProvider\(
+ - getVoices\(
+ - goingToSleep\(
+ - stopLockTaskMode\(
+ - getPrivateKey\(
+ - finishVoiceTask\(
+ - onRevoke\(
+ - removeStickyBroadcastAsUser\(
+ - onMenuItemSelected\(
+ - onNavigateUpFromChild\(
+ - getAvailableLanguages\(
+ - wakeUp\(
+ - startUserInBackground\(
+ - positionTaskInStack\(
+ - stopSelf\(
+ - dispatchTouchEvent\(
+ - sendIdleJobTrigger\(
+ - setProcessForeground\(
+ - send\(
+ - startActivityAsCaller\(
+ - inputDispatchingTimedOut\(
+ - getDefaultLanguage\(
+ - attachApplication\(
+ - setPackageScreenCompatMode\(
+ - publishService\(
+ - finishInstrumentation\(
+ - playSilence\(
+ - sendStickyBroadcast\(
+ - synthesizeToFile\(
+ - getTaskThumbnail\(
+ - startActivityFromRecents\(
+ - sendStickyOrderedBroadcast\(
+ - killUid\(
+ - setVoice\(
+ - destroy\(
+ - getDefaultVoice\(
+ - startActivity\(
+ - getCertificateChain\(
+ - bootAnimationComplete\(
+ - setLanguage\(
+ - sendStickyBroadcastAsUser\(
+ - dispatchGenericMotionEvent\(
+ - setFocusedTask\(
+ - wakingUp\(
+ - playSilentUtterance\(
+ - finish\(
+ - forceStopPackage\(
+ - releaseSomeActivities\(
+ - stopServiceToken\(
+ - stopLockTaskModeOnCurrent\(
+ - killAllBackgroundProcesses\(
+ - startActivities\(
+ - startActivityWithConfig\(
+ - shutdown\(
+ - startNextMatchingActivity\(
+ - updatePersistentConfiguration\(
+ - dispatchTrackballEvent\(
+ - killBackgroundProcesses\(
+ - resizeDockedStack\(
+ - stop\(
+ - navigateUpTo\(
+ input_case: exact
+ severity: info
+- id: android.permission.GET_TASKS
+ message: android.permission.GET_TASKS
+ type: RegexAndOr
+ pattern:
+ - android\.app\.ActivityManager|com\.android\.server
+ - - getRunningTasks\(
+ - getRunningAppProcesses\(
+ - getTasks\(
+ - getRecentTasks\(
+ - getRunningExternalApplications\(
+ input_case: exact
+ severity: info
+- id: android.permission.KILL_BACKGROUND_PROCESSES
+ message: android.permission.KILL_BACKGROUND_PROCESSES
+ type: RegexAndOr
+ pattern:
+ - android\.app\.ActivityManager|com\.android\.server
+ - - killAllBackgroundProcesses\(
+ - killBackgroundProcesses\(
+ - restartPackage\(
+ input_case: exact
+ severity: info
+- id: android.permission.REORDER_TASKS
+ message: android.permission.REORDER_TASKS
+ type: RegexAndOr
+ pattern:
+ - android\.app\.ActivityManager|com\.android\.server
+ - - moveTaskToBack\(
+ - moveTaskToFront\(
+ - moveTaskBackwards\(
+ input_case: exact
+ severity: info
+- id: android.permission.RECEIVE_BOOT_COMPLETED
+ message: android.permission.RECEIVE_BOOT_COMPLETED
+ type: RegexAndOr
+ pattern:
+ - android\.app\.JobSchedulerImpl|android\.app\.backup|com\.android\.server|android\.content\.BroadcastReceiver
+ - - schedule\(
+ - dataChanged\(
+ - registerReceiver\(
+ - onReceive\(
+ input_case: exact
+ severity: info
+- id: android.permission.DISABLE_KEYGUARD
+ message: android.permission.DISABLE_KEYGUARD
+ type: RegexAndOr
+ pattern:
+ - android\.app\.KeyguardManager|android\.app\.KeyguardManager|com\.android\.server
+ - - disableKeyguard\(
+ - exitKeyguardSecurely\(
+ - keyguardGoingAway\(
+ - dismissKeyguard\(
+ - reenableKeyguard\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_WALLPAPER_HINTS
+ message: android.permission.SET_WALLPAPER_HINTS
+ type: RegexAndOr
+ pattern:
+ - android\.app\.WallpaperManager|com\.android\.server
+ - - setDimensionHints\(
+ - setDesiredMinimumWidth\(
+ - suggestDesiredDimensions\(
+ - setDisplayPadding\(
+ - setDesiredMinimumHeight\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_WIFI_STATE
+ message: android.permission.ACCESS_WIFI_STATE
+ type: RegexAndOr
+ pattern:
+ - android\.app\.admin|android\.net\.ConnectivityManager|android\.net\.sip|android\.net\.wifi|com\.android\.server|android\.net\.wifi\.WifiManager
+ - - getWifiApConfiguration\(
+ - registerNetworkCallback\(
+ - isP2pSupported\(
+ - getMessenger\(
+ - pendingListenForNetwork\(
+ - isPreferredNetworkOffloadSupported\(
+ - isScanAlwaysAvailable\(
+ - startScan\(
+ - cancelWps\(
+ - getPrivilegedConfiguredNetworks\(
+ - listenForNetwork\(
+ - isDeviceToApRttSupported\(
+ - getConfigFile\(
+ - isMulticastEnabled\(
+ - isEnhancedPowerReportingSupported\(
+ - reportActivityInfo\(
+ - getConnectionInfo\(
+ - enableNetwork\(
+ - startAudio\(
+ - getWifiStateMachineMessenger\(
+ - getFrequencyBand\(
+ - getWifiMacAddress\(
+ - disableEphemeralNetwork\(
+ - isWifiEnabled\(
+ - getCurrentNetwork\(
+ - requestActivityInfo\(
+ - getWifiEnabledState\(
+ - initialize\(
+ - getAllowScansWithTraffic\(
+ - getMatchingWifiConfig\(
+ - registerDefaultNetworkCallback\(
+ - getConfiguredNetworks\(
+ - reassociate\(
+ - startWps\(
+ - getScanResults\(
+ - setWifiEnabled\(
+ - getWifiState\(
+ - getWifiApEnabledState\(
+ - setAllowScansWithTraffic\(
+ - is5GHzBandSupported\(
+ - getSupportedFeatures\(
+ - getEnableAutoJoinWhenAssociated\(
+ - enableAggressiveHandover\(
+ - startUsingNetworkFeature\(
+ - getChannelList\(
+ - getBatchedScanResults\(
+ - getVerboseLoggingLevel\(
+ - getDhcpInfo\(
+ - saveConfiguration\(
+ - isTdlsSupported\(
+ - pingSupplicant\(
+ - getConnectionStatistics\(
+ - requestNetwork\(
+ - getWifiServiceMessenger\(
+ - getAggressiveHandover\(
+ - getP2pStateMachineMessenger\(
+ - reconnect\(
+ - updateNetwork\(
+ - enableVerboseLogging\(
+ input_case: exact
+ severity: info
+- id: android.permission.BLUETOOTH
+ message: android.permission.BLUETOOTH
+ type: RegexAndOr
+ pattern:
+ - android\.bluetooth\.BluetoothA2dp|android\.bluetooth\.BluetoothAdapter|android\.bluetooth\.BluetoothDevice|android\.bluetooth\.BluetoothGatt|android\.bluetooth\.BluetoothGattServer|android\.bluetooth\.BluetoothHeadset|android\.bluetooth\.BluetoothHealth|android\.bluetooth\.BluetoothManager|android\.bluetooth\.BluetoothSocket|android\.bluetooth\.le|android\.media\.AudioManager|android\.media\.MediaRouter|com\.android\.bluetooth|com\.android\.server|android\.net\.ConnectivityManager|android\.server\.BluetoothA2dpService|android\.server\.BluetoothService
+ - - phoneStateChanged\(
+ - getAdapterConnectionState\(
+ - removeService\(
+ - disconnectInputDevice\(
+ - getPanDeviceConnectionState\(
+ - getBluetoothClass\(
+ - isEnabled\(
+ - getName\(
+ - startScan\(
+ - registerAppConfiguration\(
+ - getConnectionState\(
+ - unregAll\(
+ - writeDescriptor\(
+ - adjustStreamVolume\(
+ - enterPrivateMode\(
+ - connectChannelToSource\(
+ - stopVoiceRecognition\(
+ - setRemoteAlias\(
+ - stopScan\(
+ - registerServer\(
+ - fetchRemoteUuids\(
+ - getBluetoothLeAdvertiser\(
+ - getType\(
+ - getClient\(
+ - abortReliableWrite\(
+ - readDescriptor\(
+ - getConnectedPanDevices\(
+ - setPasskey\(
+ - removeBond\(
+ - disconnectAll\(
+ - setPriority\(
+ - connectSocket\(
+ - startLeScan\(
+ - disconnect\(
+ - openGattServer\(
+ - getAddress\(
+ - createSocketChannel\(
+ - registerClient\(
+ - sendPassThroughCmd\(
+ - listenUsingInsecureRfcommWithServiceRecord\(
+ - getTrustState\(
+ - unregisterAppConfiguration\(
+ - unregisterAdapter\(
+ - isConnected\(
+ - registerStateChangeCallback\(
+ - startDiscovery\(
+ - getCurrentCalls\(
+ - clearServices\(
+ - unregisterServer\(
+ - sendVendorSpecificResultCode\(
+ - setPairingConfirmation\(
+ - getCurrentAgEvents\(
+ - listenUsingRfcommWithServiceRecord\(
+ - clientDisconnect\(
+ - isA2dpPlaying\(
+ - readCharacteristic\(
+ - beginReliableWrite\(
+ - disconnectChannel\(
+ - getUuids\(
+ - getConnectedHealthDevices\(
+ - numHwTrackFiltersAvailable\(
+ - connect\(
+ - getBondState\(
+ - sendDTMF\(
+ - notifyCharacteristicChanged\(
+ - connectGatt\(
+ - getPriority\(
+ - flushPendingScanResults\(
+ - enable\(
+ - connectionParameterUpdate\(
+ - clccResponse\(
+ - adjustVolume\(
+ - setMode\(
+ - getPlaybackState\(
+ - readRemoteRssi\(
+ - getLastVoiceTagNumber\(
+ - connectSinkInternal\(
+ - endReliableWrite\(
+ - sendConnectionStateChange\(
+ - getConnectedDevices\(
+ - getRemoteName\(
+ - setName\(
+ - getBondedDevices\(
+ - setTrust\(
+ - getScanMode\(
+ - refreshDevice\(
+ - listBonds\(
+ - addService\(
+ - stopUsingNetworkFeature\(
+ - dialMemory\(
+ - startVoiceRecognition\(
+ - connectAudio\(
+ - bindResponse\(
+ - beginServiceDeclaration\(
+ - registerForNotification\(
+ - getBluetoothLeScanner\(
+ - requestConnectionPriority\(
+ - isDiscovering\(
+ - getInputDevicePriority\(
+ - enableWBS\(
+ - clientConnect\(
+ - getDevicesMatchingConnectionStates\(
+ - connectHeadset\(
+ - getRemoteUuids\(
+ - getHealthDeviceConnectionState\(
+ - serverDisconnect\(
+ - requestSetVolume\(
+ - rejectCall\(
+ - startAdvertising\(
+ - addIncludedService\(
+ - isOffloadedFilteringSupported\(
+ - removeServiceRecord\(
+ - getCurrentAgFeatures\(
+ - changeApplicationBluetoothState\(
+ - disconnectPanDevice\(
+ - close\(
+ - sendNotification\(
+ - requestMtu\(
+ - serverConnect\(
+ - stopLeScan\(
+ - createBondOutOfBand\(
+ - acceptCall\(
+ - getRemoteClass\(
+ - getState\(
+ - getDiscoverableTimeout\(
+ - getPlayerSettings\(
+ - setPlayerApplicationSetting\(
+ - stopAdvertising\(
+ - cancelConnection\(
+ - requestUpdateVolume\(
+ - configHciSnoopLog\(
+ - setPin\(
+ - adjustSuggestedStreamVolume\(
+ - setBluetoothTethering\(
+ - getPhonebookAccessPermission\(
+ - getMainChannelFd\(
+ - configureMTU\(
+ - getBluetoothState\(
+ - disconnectAudio\(
+ - getProfileProxy\(
+ - isOffloadedScanBatchingSupported\(
+ - stopBluetoothSco\(
+ - dial\(
+ - getRemoteType\(
+ - addCharacteristic\(
+ - executeReliableWrite\(
+ - createInsecureRfcommSocketToServiceRecord\(
+ - isAudioOn\(
+ - getProfileConnectionState\(
+ - startUsingNetworkFeature\(
+ - unregisterStateChangeCallback\(
+ - getHealthDevicesMatchingConnectionStates\(
+ - getRemoteServiceChannel\(
+ - readOutOfBandData\(
+ - connectInputDevice\(
+ - getMessageAccessPermission\(
+ - getAudioConfig\(
+ - startBluetoothSco\(
+ - isTetheringOn\(
+ - isAudioConnected\(
+ - closeProfileProxy\(
+ - isMultiAdvertisementSupported\(
+ - isMultipleAdvertisementSupported\(
+ - addRfcommServiceRecord\(
+ - getRemoteAlias\(
+ - sdpSearch\(
+ - addDescriptor\(
+ - cancelDiscovery\(
+ - unregisterClient\(
+ - connectPanDevice\(
+ - setStreamVolume\(
+ - disableWBS\(
+ - createBond\(
+ - connectChannelToSink\(
+ - terminateCall\(
+ - explicitCallTransfer\(
+ - createRfcommSocketToServiceRecord\(
+ - disconnectSinkInternal\(
+ - redial\(
+ - disable\(
+ - setNetworkPreference\(
+ - sendResponse\(
+ - discoverServices\(
+ - getPanDevicesMatchingConnectionStates\(
+ - disconnectHeadset\(
+ - holdCall\(
+ - getInputDevicesMatchingConnectionStates\(
+ - getInputDeviceConnectionState\(
+ - roamChanged\(
+ - getSimAccessPermission\(
+ - getMetadata\(
+ - setStreamMute\(
+ - fetchUuidsWithSdp\(
+ - registerSinkAppConfiguration\(
+ - setDiscoverableTimeout\(
+ - setScanMode\(
+ - getConnectedInputDevices\(
+ - setCharacteristicNotification\(
+ - sendGroupNavigationCmd\(
+ - writeCharacteristic\(
+ - endServiceDeclaration\(
+ - finalize\(
+ input_case: exact
+ severity: info
+- id: android.permission.BLUETOOTH_ADMIN
+ message: android.permission.BLUETOOTH_ADMIN
+ type: RegexAndOr
+ pattern:
+ - android\.bluetooth\.BluetoothAdapter|android\.bluetooth\.BluetoothDevice|android\.bluetooth\.BluetoothHeadset|android\.bluetooth\.le|com\.android\.bluetooth|com\.android\.server|android\.media\.AudioManager|android\.bluetooth\.BluetoothA2dp|android\.bluetooth\.BluetoothHealth|android\.net\.ConnectivityManager|android\.server\.BluetoothA2dpService|android\.server\.BluetoothService
+ - - phoneStateChanged\(
+ - disconnectInputDevice\(
+ - startScan\(
+ - enterPrivateMode\(
+ - setInputDevicePriority\(
+ - connectChannelToSource\(
+ - stopVoiceRecognition\(
+ - stopScan\(
+ - startMultiAdvertising\(
+ - setPasskey\(
+ - removeBond\(
+ - setPriority\(
+ - setDeviceOutOfBandData\(
+ - disconnect\(
+ - getProtocolMode\(
+ - factoryReset\(
+ - unregisterAppConfiguration\(
+ - startDiscovery\(
+ - sendVendorSpecificResultCode\(
+ - setPairingConfirmation\(
+ - isA2dpPlaying\(
+ - disconnectChannel\(
+ - connect\(
+ - sendDTMF\(
+ - setReport\(
+ - cancelBondProcess\(
+ - getPriority\(
+ - enable\(
+ - clccResponse\(
+ - setMode\(
+ - getLastVoiceTagNumber\(
+ - connectSinkInternal\(
+ - enableNoAutoConnect\(
+ - setName\(
+ - setTrust\(
+ - startScanWithUuids\(
+ - stopUsingNetworkFeature\(
+ - dialMemory\(
+ - startVoiceRecognition\(
+ - virtualUnplug\(
+ - connectAudio\(
+ - bindResponse\(
+ - cancelPairingUserInput\(
+ - enableWBS\(
+ - allowIncomingProfileConnect\(
+ - stopMultiAdvertising\(
+ - connectHeadset\(
+ - setProtocolMode\(
+ - suspendSink\(
+ - setRemoteOutOfBandData\(
+ - getReport\(
+ - disconnectPanDevice\(
+ - stopLeScan\(
+ - createBondOutOfBand\(
+ - acceptCall\(
+ - stopAdvertising\(
+ - setPin\(
+ - setBluetoothTethering\(
+ - disconnectAudio\(
+ - stopBluetoothSco\(
+ - dial\(
+ - startUsingNetworkFeature\(
+ - connectInputDevice\(
+ - resumeSink\(
+ - cancelDiscovery\(
+ - sendData\(
+ - connectPanDevice\(
+ - disableWBS\(
+ - createBond\(
+ - terminateCall\(
+ - explicitCallTransfer\(
+ - disconnectSinkInternal\(
+ - redial\(
+ - disable\(
+ - setNetworkPreference\(
+ - disconnectHeadset\(
+ - holdCall\(
+ - roamChanged\(
+ - setDiscoverableTimeout\(
+ - setScanMode\(
+ - allowIncomingConnect\(
+ - rejectCall\(
+ input_case: exact
+ severity: info
+- id: android.permission.TRANSMIT_IR
+ message: android.permission.TRANSMIT_IR
+ type: RegexAndOr
+ pattern:
+ - android\.hardware\.ConsumerIrManager|com\.android\.server
+ - - getCarrierFrequencies\(
+ - transmit\(
+ input_case: exact
+ severity: info
+- id: android.permission.USE_FINGERPRINT
+ message: android.permission.USE_FINGERPRINT
+ type: RegexAndOr
+ pattern:
+ - android\.hardware\.fingerprint|com\.android\.server
+ - - authenticate\(
+ - isHardwareDetected\(
+ - cancelAuthentication\(
+ - getEnrolledFingerprints\(
+ - hasEnrolledFingerprints\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_COARSE_LOCATION
+ message: android.permission.ACCESS_COARSE_LOCATION
+ type: RegexAndOr
+ pattern:
+ - android\.location\.LocationManager|android\.telephony\.TelephonyManager|com\.android\.bluetooth|com\.android\.server
+ - - requestGeofence\(
+ - addGnssMeasurementsListener\(
+ - requestLocationUpdates\(
+ - addGpsNavigationMessageListener\(
+ - startScan\(
+ - listen\(
+ - addGpsStatusListener\(
+ - getNeighboringCellInfo\(
+ - getProviderProperties\(
+ - getCellLocation\(
+ - removeProximityAlert\(
+ - requestLocationUpdatesPI\(
+ - requestSingleUpdate\(
+ - addProximityAlert\(
+ - getProviderInfo\(
+ - listenForSubscriber\(
+ - reportLocation\(
+ - registerGnssStatusCallback\(
+ - addGpsMeasurementsListener\(
+ - isProviderEnabled\(
+ - removeUpdates\(
+ - addNmeaListener\(
+ - getProviders\(
+ - getLastLocation\(
+ - addGnssNavigationMessageListener\(
+ - getProvider\(
+ - removeGeofence\(
+ - getLastKnownLocation\(
+ - getBestProvider\(
+ - sendExtraCommand\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_FINE_LOCATION
+ message: android.permission.ACCESS_FINE_LOCATION
+ type: RegexAndOr
+ pattern:
+ - android\.location\.LocationManager|android\.telephony\.TelephonyManager|com\.android\.bluetooth|com\.android\.phone|com\.android\.server
+ - - getAllCellInfo\(
+ - requestGeofence\(
+ - addGnssMeasurementsListener\(
+ - requestLocationUpdates\(
+ - addGpsNavigationMessageListener\(
+ - startScan\(
+ - addGpsStatusListener\(
+ - getNeighboringCellInfo\(
+ - getProviderProperties\(
+ - getCellLocation\(
+ - removeProximityAlert\(
+ - requestLocationUpdatesPI\(
+ - requestSingleUpdate\(
+ - addProximityAlert\(
+ - getProviderInfo\(
+ - reportLocation\(
+ - registerGnssStatusCallback\(
+ - addGpsMeasurementsListener\(
+ - isProviderEnabled\(
+ - removeUpdates\(
+ - addNmeaListener\(
+ - getProviders\(
+ - getLastLocation\(
+ - addGnssNavigationMessageListener\(
+ - getProvider\(
+ - removeGeofence\(
+ - getLastKnownLocation\(
+ - getBestProvider\(
+ - sendExtraCommand\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
+ message: android.permission.ACCESS_LOCATION_EXTRA_COMMANDS
+ type: RegexAndOr
+ pattern:
+ - android\.location\.LocationManager|com\.android\.server
+ - - sendExtraCommand\(
+ input_case: exact
+ severity: info
+- id: android.permission.WAKE_LOCK
+ message: android.permission.WAKE_LOCK
+ type: RegexAndOr
+ pattern:
+ - android\.media\.AsyncPlayer|android\.media\.MediaPlayer|android\.media\.Ringtone|android\.media\.RingtoneManager|android\.net\.sip|android\.net\.wifi|android\.os\.PowerManager|android\.widget\.VideoView|com\.android\.server
+ - - stopPreviousRingtone\(
+ - acquire\(
+ - endCall\(
+ - setAudioAttributes\(
+ - stop\(
+ - releaseWakeLock\(
+ - release\(
+ - acquireWakeLock\(
+ - close\(
+ - acquireWifiLock\(
+ - setStreamType\(
+ - releaseWifiLock\(
+ - updateWakeLockWorkSource\(
+ - reset\(
+ - setVideoPath\(
+ - setWakeMode\(
+ - pause\(
+ - startAudio\(
+ - resume\(
+ - acquireWakeLockWithUid\(
+ - setWorkSource\(
+ - updateWakeLockUids\(
+ - onKeyDown\(
+ - getAudioSessionId\(
+ - newWakeLock\(
+ - getRingtone\(
+ - setVideoURI\(
+ - play\(
+ - start\(
+ - stopPlayback\(
+ - suspend\(
+ input_case: exact
+ severity: info
+- id: android.permission.MODIFY_AUDIO_SETTINGS
+ message: android.permission.MODIFY_AUDIO_SETTINGS
+ type: RegexAndOr
+ pattern:
+ - android\.media\.AudioManager|android\.net\.sip|com\.android\.server|android\.media\.AudioService
+ - - setBluetoothScoOn\(
+ - setSpeakerphoneOn\(
+ - startBluetoothScoVirtualCall\(
+ - setMicrophoneMute\(
+ - startBluetoothSco\(
+ - stopBluetoothSco\(
+ - setMode\(
+ - setSpeakerMode\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_NETWORK_STATE
+ message: android.permission.ACCESS_NETWORK_STATE
+ type: RegexAndOr
+ pattern:
+ - android\.net\.ConnectivityManager|android\.telephony\.PhoneNumberUtils|android\.telephony\.SmsManager|android\.telephony\.TelephonyManager|android\.telephony\.gsm|com\.android\.phone|com\.android\.server|android\.net\.wifi|android\.net\.Network|android\.net\.sip
+ - - registerNetworkCallback\(
+ - openConnection\(
+ - getAllVpnInfo\(
+ - getTetheringErroredIfaces\(
+ - tether\(
+ - getConfiguration\(
+ - startTethering\(
+ - getMobileDataEnabled\(
+ - registerDefaultNetworkCallback\(
+ - disconnect\(
+ - setWifiEnabled\(
+ - addListener\(
+ - factoryReset\(
+ - isNetworkSupported\(
+ - setAcceptUnvalidated\(
+ - requestNetwork\(
+ - getActiveLinkQualityInfo\(
+ - acquire\(
+ - removeListener\(
+ - endCall\(
+ - release\(
+ - getNetworkInfoForNetwork\(
+ - reportNetworkConnectivity\(
+ - getSubscriberId\(
+ - getRestrictBackgroundStatus\(
+ - getLinkProperties\(
+ - getGroupIdLevel1\(
+ - getLinkPropertiesForType\(
+ - getAllNetworks\(
+ - getTetherableIfaces\(
+ - getDataLayerSnapshotForUid\(
+ - getActiveNetworkInfoForUid\(
+ - reassociate\(
+ - getTetheredIfaces\(
+ - getLastTetherError\(
+ - setUsbTethering\(
+ - getByteCount\(
+ - setAvoidUnvalidated\(
+ - getActiveLinkProperties\(
+ - getCliffThreshold\(
+ - startLegacyVpn\(
+ - getRestrictBackgroundByCaller\(
+ - getDeviceId\(
+ - isTetheringSupported\(
+ - getVoiceMailAlphaTag\(
+ - getNetworkCapabilities\(
+ - getProvisioningOrActiveNetworkInfo\(
+ - close\(
+ - getAllNetworkState\(
+ - requestBandwidthUpdate\(
+ - getActiveNetworkInfo\(
+ - getNetworkInfo\(
+ - enableNetwork\(
+ - startAudio\(
+ - getTetheredIfacePairs\(
+ - setProcessDefaultNetwork\(
+ - getLinkQualityInfo\(
+ - pendingRequestForNetwork\(
+ - isAvailable\(
+ - getNetworkQuotaInfo\(
+ - getTetherableWifiRegexs\(
+ - getTetherableBluetoothRegexs\(
+ - startUsingNetworkFeature\(
+ - getDataEnabled\(
+ - reconnect\(
+ - getSimSerialNumber\(
+ - sendDataMessage\(
+ - pendingListenForNetwork\(
+ - injectSmsPdu\(
+ - getIccAuthentication\(
+ - getNetworkForType\(
+ - listenForNetwork\(
+ - untether\(
+ - getVoiceMailNumber\(
+ - getDefaultNetworkCapabilitiesForUser\(
+ - getAllNetworkInfo\(
+ - getLine1Number\(
+ - getActiveNetworkQuotaInfo\(
+ - getTetherableUsbRegexs\(
+ - reportInetCondition\(
+ - updateLockdownVpn\(
+ - getThrottle\(
+ - reportBadNetwork\(
+ - getNetworkInfoForUid\(
+ - getPeriodStartTime\(
+ - isVoiceMailNumber\(
+ - getActiveNetwork\(
+ - getSimState\(
+ - getPhoneCount\(
+ - getResetTime\(
+ - getNetworkPreference\(
+ - getHelpUri\(
+ - getCliffLevel\(
+ - isActiveNetworkMetered\(
+ - getAllLinkQualityInfo\(
+ - divideMessage\(
+ input_case: exact
+ severity: info
+- id: android.permission.CHANGE_NETWORK_STATE
+ message: android.permission.CHANGE_NETWORK_STATE
+ type: RegexAndOr
+ pattern:
+ - android\.net\.ConnectivityManager|com\.android\.server|com\.android\.bluetooth
+ - - registerNetworkCallback\(
+ - setMobileDataEnabled\(
+ - setRadios\(
+ - listenForNetwork\(
+ - untether\(
+ - setConfiguration\(
+ - requestRouteToHost\(
+ - setNetworkPreference\(
+ - tether\(
+ - setBluetoothTethering\(
+ - registerDefaultNetworkCallback\(
+ - setProcessDefaultNetwork\(
+ - pendingRequestForNetwork\(
+ - bindProcessToNetwork\(
+ - requestRouteToHostAddress\(
+ - stopUsingNetworkFeature\(
+ - setRadio\(
+ - startUsingNetworkFeature\(
+ - setGlobalProxy\(
+ - setUsbTethering\(
+ - requestNetwork\(
+ - setWifiApEnabled\(
+ input_case: exact
+ severity: info
+- id: android.permission.INTERNET
+ message: android.permission.INTERNET
+ type: RegexAndOr
+ pattern:
+ - android\.net\.ConnectivityManager|com\.android\.server|com\.android\.providers|java\.net|org\.apache\.http|javax\.net\.ssl|okhttp3\.OkHttpClient
+ - - getMessenger\(
+ - setConnectTimeout\(
+ - openConnection\(
+ - setUseCaches\(
+ - setDoOutput\(
+ - connect\(
+ - disconnect\(
+ - setRequestProperty\(
+ - setInstanceFollowRedirects\(
+ - reportNetworkConnectivity\(
+ - getInputStream\(
+ - getOutputStream\(
+ - setRequestMethod\(
+ - reportInetCondition\(
+ - setReadTimeout\(
+ - reportBadNetwork\(
+ - setFixedLengthStreamingMode\(
+ - setDoInput\(
+ - setIfModifiedSince\(
+ - setChunkedStreamingMode\(
+ - setAllowUserInteraction\(
+ - setDefaultUseCaches\(
+ - openStream\(
+ - AndroidHttpClient\(
+ - newParams\(
+ - setSSLSocketFactory\(
+ - getContentLength\(
+ - getContentEncoding\(
+ - openSecureConnection\(
+ - getResponseCode\(
+ - setInstanceFollowRedirects\(
+ - okHttpClient\(
+ - addHeader\(
+ - Request\.Builder\(
+ - OkHttpClient\.Builder\(
+ input_case: exact
+ severity: info
+- id: android.permission.USE_SIP
+ message: android.permission.USE_SIP
+ type: RegexAndOr
+ pattern:
+ - android\.net\.sip|com\.android\.server|android\.net\.sip\.SipManager
+ - - makeAudioCall\(
+ - createSession\(
+ - takeVideoCall\(
+ - register\(
+ - createSipSession\(
+ - open\(
+ - close\(
+ - isRegistered\(
+ - getListOfProfiles\(
+ - unregister\(
+ - open3\(
+ - makeVideoCall\(
+ - setRegistrationListener\(
+ - getSessionFor\(
+ - isOpened\(
+ - takeAudioCall\(
+ - getPendingSession\(
+ input_case: exact
+ severity: info
+- id: android.permission.CHANGE_WIFI_MULTICAST_STATE
+ message: android.permission.CHANGE_WIFI_MULTICAST_STATE
+ type: RegexAndOr
+ pattern:
+ - android\.net\.wifi|com\.android\.server
+ - - acquireMulticastLock\(
+ - releaseMulticastLock\(
+ - initializeMulticastFiltering\(
+ - acquire\(
+ - release\(
+ input_case: exact
+ severity: info
+- id: android.permission.CHANGE_WIFI_STATE
+ message: android.permission.CHANGE_WIFI_STATE
+ type: RegexAndOr
+ pattern:
+ - android\.net\.wifi|com\.android\.server
+ - - removeNetwork\(
+ - startWifi\(
+ - getMessenger\(
+ - setCountryCode\(
+ - setFrequencyBand\(
+ - addToBlacklist\(
+ - startScan\(
+ - clearBlacklist\(
+ - cancelWps\(
+ - requestBatchedScan\(
+ - stopWifi\(
+ - setWifiApConfiguration\(
+ - pollBatchedScan\(
+ - enableNetwork\(
+ - getWifiStateMachineMessenger\(
+ - disableEphemeralNetwork\(
+ - initialize\(
+ - reassociate\(
+ - setWifiEnabled\(
+ - disconnect\(
+ - startWps\(
+ - setEnableAutoJoinWhenAssociated\(
+ - factoryReset\(
+ - disableNetwork\(
+ - saveConfiguration\(
+ - stopBatchedScan\(
+ - addOrUpdateNetwork\(
+ - getWifiServiceMessenger\(
+ - addNetwork\(
+ - getP2pStateMachineMessenger\(
+ - reconnect\(
+ - updateNetwork\(
+ - setWifiApEnabled\(
+ input_case: exact
+ severity: info
+- id: android.permission.VIBRATE
+ message: android.permission.VIBRATE
+ type: RegexAndOr
+ pattern:
+ - android\.os\.SystemVibrator|com\.android\.server|android\.os\.Vibrator
+ - - cancelVibrate\(
+ - vibratePattern\(
+ - cancel\(
+ - vibrate\(
+ input_case: exact
+ severity: info
+- id: android.permission.RECEIVE_MMS
+ message: android.permission.RECEIVE_MMS
+ type: RegexAndOr
+ pattern:
+ - android\.telephony\.SmsManager|com\.android\.server|android\.content\.BroadcastReceiver
+ - - downloadMessage\(
+ - downloadMultimediaMessage\(
+ - onReceive\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_EXTERNAL_STORAGE
+ message: android.permission.READ_EXTERNAL_STORAGE
+ type: RegexAndOr
+ pattern:
+ - android\.telephony\.SmsManager|android\.telephony\.gsm|android\.view\.inputmethod|com\.android\.internal|com\.android\.server|com\.android\.providers|android\.content\.Context|java\.io\.FileInputStream
+ - - sendTextMessage\(
+ - sendDataForSubscriberWithSelfPermissions\(
+ - sendTextForSubscriber\(
+ - openFile\(
+ - sendTextForSubscriberWithSelfPermissions\(
+ - sendDataMessage\(
+ - showInputMethodAndSubtypeEnablerFromClient\(
+ - sendStoredText\(
+ - sendDataForSubscriber\(
+ - showInputMethodAndSubtypeEnabler\(
+ - sendMultipartTextMessage\(
+ - InputStreamReader\(
+ - send\(
+ - sendStoredMultipartText\(
+ - sendMultipartTextForSubscriber\(
+ - FileInputStream\(
+ input_case: exact
+ severity: info
+- id: android.permission.SEND_SMS
+ message: android.permission.SEND_SMS
+ type: RegexAndOr
+ pattern:
+ - android\.telephony\.SmsManager|android\.telephony\.gsm|com\.android\.internal|com\.android\.server
+ - - sendDataMessage\(
+ - sendMessage\(
+ - copyMessageToIccEf\(
+ - updateMessageOnIccEfForSubscriber\(
+ - sendData\(
+ - sendTextForSubscriber\(
+ - updateMessageOnIccEf\(
+ - sendMultimediaMessage\(
+ - sendStoredMessage\(
+ - sendMultipartText\(
+ - sendMultipartTextMessage\(
+ - sendStoredMultipartText\(
+ - sendMultipartTextForSubscriber\(
+ - sendTextMessage\(
+ - sendDataForSubscriberWithSelfPermissions\(
+ - sendTextForSubscriberWithSelfPermissions\(
+ - sendStoredText\(
+ - sendDataForSubscriber\(
+ - sendText\(
+ - vnd\.android-dir/mms-sms
+ - copyMessageToIccEfForSubscriber\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_PHONE_STATE
+ message: android.permission.READ_PHONE_STATE
+ type: RegexAndOr
+ pattern:
+ - android\.telephony\.TelephonyManager|com\.android\.server|com\.android\.internal|android\.telecom\.TelecomManager|android\.telephony\.PhoneNumberUtils|android\.telephony\.SmsManager|android\.telephony\.SubscriptionManager|android\.telephony\.gsm|com\.android\.phone
+ - - isTtySupported\(
+ - getAllSubInfoCount\(
+ - getMsisdn\(
+ - getDeviceId\(
+ - getSimSerialNumber\(
+ - setColor\(
+ - getPcscfAddress\(
+ - getLine1NumberForDisplay\(
+ - getVoiceMailAlphaTag\(
+ - divideMessage\(
+ - listen\(
+ - addSubInfoRecord\(
+ - getActiveSubInfoList\(
+ - getLine1AlphaTag\(
+ - setDataRoaming\(
+ - getActiveSubscriptionInfoForSimSlotIndex\(
+ - getDeviceSvn\(
+ - getCalculatedPreferredNetworkType\(
+ - clearDefaultsForInactiveSubIds\(
+ - getVoiceMailNumber\(
+ - getLine1AlphaTagForDisplay\(
+ - addOnSubscriptionsChangedListener\(
+ - getCallState\(
+ - getSubscriberId\(
+ - getLine1Number\(
+ - isRinging\(
+ - getIccSerialNumber\(
+ - getGroupIdLevel1\(
+ - getAllSubInfoList\(
+ - getActiveSubscriptionInfoList\(
+ - setDisplayNameUsingSrc\(
+ - isInCall\(
+ - getNetworkPolicies\(
+ - listenForSubscriber\(
+ - getMeid\(
+ - getSubInfoUsingSlotId\(
+ - getSubInfoForSubscriber\(
+ - getActiveSubscriptionInfoCount\(
+ - getDeviceIdForPhone\(
+ - getSubInfoUsingIccId\(
+ - isVoiceMailNumber\(
+ - setDisplayNumberFormat\(
+ - getDeviceSoftwareVersion\(
+ - getActiveSubscriptionInfo\(
+ - getImei\(
+ - clearSubInfo\(
+ - setDisplayNumber\(
+ - getCurrentTtyMode\(
+ - getActiveSubInfoCount\(
+ - isSimPinEnabled\(
+ - getSimplifiedNetworkSettingsEnabledForSubscriber\(
+ - showInCallScreen\(
+ - setDisplayName\(
+ input_case: exact
+ severity: info
+- id: android.permission.LOCATION_HARDWARE
+ message: android.permission.LOCATION_HARDWARE
+ type: RegexAndOr
+ pattern:
+ - android\.hardware\.location|com\.android\.server
+ - - loadNanoApp\(
+ - unloadNanoApp\(
+ - isActivitySupported\(
+ - enableActivityEvent\(
+ - registerSink\(
+ - getNanoAppInstanceInfo\(
+ - findNanoAppOnHub\(
+ - sendMessage\(
+ - getP2pStateMachineMessenger\(
+ - startScan\(
+ - getSupportedActivities\(
+ - disableActivityEvent\(
+ - getContextHubHandles\(
+ - registerCallback\(
+ - getContextHubInfo\(
+ - unregisterSink\(
+ - flush\(
+ input_case: exact
+ severity: info
+- id: android.permission.BLUETOOTH_PRIVILEGED
+ message: android.permission.BLUETOOTH_PRIVILEGED
+ type: RegexAndOr
+ pattern:
+ - com\.android\.bluetooth
+ - - createBond\(
+ - createBondOutOfBand\(
+ - isActivityAndEnergyReportingSupported\(
+ - removeBond\(
+ - reportActivityInfo\(
+ - requestActivityInfo\(
+ - setMessageAccessPermission\(
+ - setPairingConfirmation\(
+ - setPhonebookAccessPermission\(
+ - setSimAccessPermission\(
+ - readCharacteristic\(
+ - readDescriptor\(
+ - registerForNotification\(
+ - startScan\(
+ - writeCharacteristic\(
+ - writeDescriptor\(
+ - getActivityEnergyInfoFromController\(
+ - getAdvManufacturerData\(
+ - getAdvServiceData\(
+ - getAdvServiceUuids\(
+ - isAdvertising\(
+ - removeAdvManufacturerCodeAndData\(
+ - setAdvManufacturerCodeAndData\(
+ - setAdvServiceData\(
+ - startAdvertising\(
+ - stopAdvertising\(
+ input_case: exact
+ severity: info
+- id: android.permission.PEERS_MAC_ADDRESS
+ message: android.permission.PEERS_MAC_ADDRESS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.bluetooth|com\.android\.server
+ - - startScan\(
+ - getScanResults\(
+ input_case: exact
+ severity: info
+- id: android.permission.UPDATE_DEVICE_STATS
+ message: android.permission.UPDATE_DEVICE_STATS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.bluetooth|com\.android\.server|android\.os\.BatteryStatsImpl
+ - - finishSubActivity\(
+ - killUid\(
+ - startScan\(
+ - noteWifiBatchedScanStoppedFromSource\(
+ - noteStartGps\(
+ - unbindBackupAgent\(
+ - noteLongPartialWakelockStart\(
+ - notePauseComponent\(
+ - noteBluetoothOff\(
+ - setLockScreenShown\(
+ - noteNetworkStatsEnabled\(
+ - noteStartCamera\(
+ - startActivityFromRecents\(
+ - moveTaskToFront\(
+ - startUserInBackground\(
+ - noteBleScanStopped\(
+ - noteModemControllerActivity\(
+ - noteStopWakelockFromSource\(
+ - noteStopVideo\(
+ - scheduleAsPackage\(
+ - bindBackupAgent\(
+ - noteBluetoothOn\(
+ - noteWifiScanStartedFromSource\(
+ - noteResetFlashlight\(
+ - noteSyncFinish\(
+ - noteScanWifiLockAcquired\(
+ - noteUserActivity\(
+ - noteBluetoothState\(
+ - noteWifiBatchedScanStartedFromSource\(
+ - startActivityAndWait\(
+ - startActivityAsCaller\(
+ - noteChangeWakelockFromSource\(
+ - shutdown\(
+ - noteWifiMulticastEnabled\(
+ - startVoiceActivity\(
+ - removeTask\(
+ - noteWifiRunning\(
+ - noteInputEvent\(
+ - updateWifiLockWorkSource\(
+ - startActivities\(
+ - noteScreenOff\(
+ - noteWifiStopped\(
+ - navigateUpTo\(
+ - update\(
+ - noteStartWakelock\(
+ - setFrontActivityScreenCompatMode\(
+ - acquireWakeLock\(
+ - finishHeavyWeightApp\(
+ - noteWifiScanStopped\(
+ - startActivity\(
+ - noteBleScanStarted\(
+ - requestBatchedScan\(
+ - noteWakeupAlarm\(
+ - notePhoneState\(
+ - startLockTaskMode\(
+ - setServiceForeground\(
+ - noteWifiScanStarted\(
+ - notePhoneDataConnectionState\(
+ - releaseActivityInstance\(
+ - noteResetAudio\(
+ - setPackageScreenCompatMode\(
+ - moveTaskToBack\(
+ - setDebugApp\(
+ - startNextMatchingActivity\(
+ - noteScanWifiLockReleased\(
+ - noteVibratorOn\(
+ - noteFullWifiLockReleased\(
+ - noteStartWakelockFromSource\(
+ - unregisterReceiver\(
+ - setFocusedStack\(
+ - noteWifiMulticastDisabled\(
+ - updateAllPhoneStateLocked\(
+ - noteResetCamera\(
+ - stopLockTaskModeOnCurrent\(
+ - noteFlashlightOn\(
+ - noteEvent\(
+ - noteNetworkInterfaceType\(
+ - noteWifiControllerActivity\(
+ - updateConfiguration\(
+ - noteFlashlightOff\(
+ - requestLocationUpdates\(
+ - noteMobileRadioPowerState\(
+ - stopAppSwitches\(
+ - handleApplicationCrash\(
+ - activityIdle\(
+ - noteWifiRunningChanged\(
+ - noteBluetoothControllerActivity\(
+ - noteScanWifiLockReleasedFromSource\(
+ - acquireWifiLock\(
+ - noteStopGps\(
+ - noteStopAudio\(
+ - removeContentProvider\(
+ - noteWakeUp\(
+ - moveTaskToStack\(
+ - noteScanWifiLockAcquiredFromSource\(
+ - noteJobFinish\(
+ - noteScreenState\(
+ - startActivityAsUser\(
+ - updatePersistentConfiguration\(
+ - notePhoneOn\(
+ - moveActivityTaskToBack\(
+ - noteJobStart\(
+ - unbindFinished\(
+ - finishActivityAffinity\(
+ - noteWifiOff\(
+ - noteResumeComponent\(
+ - startActivityWithConfig\(
+ - noteFullWifiLockAcquired\(
+ - noteWifiMulticastDisabledFromSource\(
+ - requestVisibleBehind\(
+ - noteDeviceIdleMode\(
+ - notePhoneOff\(
+ - noteStopSensor\(
+ - noteFullWifiLockReleasedFromSource\(
+ - noteScreenOn\(
+ - noteVibratorOff\(
+ - noteFullWifiLockAcquiredFromSource\(
+ - setBatteryState\(
+ - noteStopCamera\(
+ - noteInteractive\(
+ - activitySlept\(
+ - noteWifiState\(
+ - noteResetBleScan\(
+ - handleApplicationWtf\(
+ - updateWakeLockWorkSource\(
+ - publishContentProviders\(
+ - activityPaused\(
+ - noteStartAudio\(
+ - set\(
+ - noteWifiSupplicantStateChanged\(
+ - convertFromTranslucent\(
+ - noteWifiOn\(
+ - backgroundResourcesReleased\(
+ - publishService\(
+ - noteStartSensor\(
+ - forceStopPackage\(
+ - noteResetVideo\(
+ - keyguardWaitingForActivityDrawn\(
+ - noteLongPartialWakelockFinish\(
+ - noteWifiRssiChanged\(
+ - updateWakeLockUids\(
+ - noteLaunchTime\(
+ - noteConnectivityChanged\(
+ - noteWifiMulticastEnabledFromSource\(
+ - setProcessLimit\(
+ - unhandledBack\(
+ - setProcessForeground\(
+ - noteScreenBrightness\(
+ - noteSyncStart\(
+ - noteWifiRadioPowerState\(
+ - noteWifiScanStoppedFromSource\(
+ - startLockTaskModeOnCurrent\(
+ - noteStopWakelock\(
+ - noteStartVideo\(
+ - notePhoneSignalStrength\(
+ input_case: exact
+ severity: info
+- id: android.permission.MODIFY_PHONE_STATE
+ message: android.permission.MODIFY_PHONE_STATE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.bluetooth|com\.android\.internal|com\.android\.phone|com\.android\.server|android\.media\.AudioService
+ - - notifyPreciseDataConnectionFailed\(
+ - unregisterMediaButtonEventReceiverForCalls\(
+ - setDisplayName\(
+ - playDtmfTone\(
+ - toggleHold\(
+ - enableVideoCalling\(
+ - notifyDataConnectionRealTimeInfo\(
+ - notifyDataConnection\(
+ - supplyPukReportResult\(
+ - notifyDataActivity\(
+ - notifyCellLocation\(
+ - setMode\(
+ - notifyMessageWaitingChanged\(
+ - iccCloseLogicalChannel\(
+ - setDataEnabled\(
+ - handlePinMmi\(
+ - addSubInfoRecord\(
+ - setImsRegistrationState\(
+ - toggleRadioOnOffForSubscriber\(
+ - setNetworkSelectionModeAutomatic\(
+ - cancelMissedCallsNotification\(
+ - answerRingingCall\(
+ - getCdmaMdn\(
+ - notifyCellLocationForSubscriber\(
+ - factoryReset\(
+ - nvWriteCdmaPrl\(
+ - notifyCarrierNetworkChange\(
+ - setRadioPower\(
+ - iccOpenLogicalChannel\(
+ - enableDataConnectivity\(
+ - supplyPinReportResultForSubscriber\(
+ - notifyCallState\(
+ - notifyCallForwardingChangedForSubscriber\(
+ - carrierActionSetMeteredApnsEnabled\(
+ - supplyPukForSubscriber\(
+ - supplyPukReportResultForSubscriber\(
+ - nvResetConfig\(
+ - setAllowedCarriers\(
+ - iccTransmitApduLogicalChannel\(
+ - setLine1NumberForDisplayForSubscriber\(
+ - notifyMessageWaitingChangedForPhoneId\(
+ - swap\(
+ - notifyOemHookRawEventForSubscriber\(
+ - setOperatorBrandOverride\(
+ - setDisplayNumber\(
+ - supplyPinForSubscriber\(
+ - setSimProvisioningStatus\(
+ - shutdownMobileRadios\(
+ - setNetworkSelectionModeManual\(
+ - setVisualVoicemailEnabled\(
+ - setFlags\(
+ - iccExchangeSimIO\(
+ - iccTransmitApduBasicChannel\(
+ - sendEnvelopeWithStatus\(
+ - getTetherApnRequired\(
+ - getPreferredNetworkType\(
+ - roamChanged\(
+ - nvReadItem\(
+ - acceptRingingCall\(
+ - setDefaultSmsSubId\(
+ - clccResponse\(
+ - notifySignalStrengthForSubscriber\(
+ - endCall\(
+ - handlePinMmiForSubscriber\(
+ - notifyCallStateForPhoneId\(
+ - setPreferredNetworkType\(
+ - unregisterPhoneAccount\(
+ - updateConfigForPhoneId\(
+ - disableApnType\(
+ - notifyOtaspChanged\(
+ - setDefaultDataSubId\(
+ - setIconTint\(
+ - phoneStateChanged\(
+ - notifyDataConnectionFailed\(
+ - notifyDataActivityForSubscriber\(
+ - notifyCellInfo\(
+ - notifyCallStateForSubscriber\(
+ - silenceRinger\(
+ - notifyDisconnectCause\(
+ - getTelephonyHistograms\(
+ - disableDataConnectivity\(
+ - enableSimplifiedNetworkSettingsForSubscriber\(
+ - merge\(
+ - registerMediaButtonEventReceiverForCalls\(
+ - supplyPuk\(
+ - setSubscriptionProperty\(
+ - notifyConfigChangedForSubId\(
+ - requestAudioFocus\(
+ - nvWriteItem\(
+ - carrierActionSetRadioEnabled\(
+ - setSimCallManager\(
+ - getCdmaMin\(
+ - setRadio\(
+ - setPolicyDataEnabled\(
+ - toggleRadioOnOff\(
+ - notifyPreciseCallState\(
+ - notifyDataConnectionForSubscriber\(
+ - enableApnType\(
+ - notifySignalStrength\(
+ - setRadioForSubscriber\(
+ - requestModemActivityInfo\(
+ - getCellNetworkScanResults\(
+ - notifyServiceState\(
+ - setDataRoaming\(
+ - setDefaultVoiceSubId\(
+ - notifySignalStrengthForPhoneId\(
+ - notifyCellInfoForSubscriber\(
+ - clearAccounts\(
+ - setUserSelectedOutgoingPhoneAccount\(
+ - notifyDataConnectionFailedForSubscriber\(
+ - notifyCallForwardingChanged\(
+ - notifyServiceStateForPhoneId\(
+ - supplyPinReportResult\(
+ - clearSubInfo\(
+ - answerRingingCallForSubscriber\(
+ - registerPhoneAccount\(
+ - setDisplayNameUsingSrc\(
+ - mute\(
+ - clearDefaultsForInactiveSubIds\(
+ - stopDtmfTone\(
+ - invokeOemRilRequestRaw\(
+ - notifyVoLteServiceStateChanged\(
+ - supplyPin\(
+ input_case: exact
+ severity: info
+- id: android.permission.TETHER_PRIVILEGED
+ message: android.permission.TETHER_PRIVILEGED
+ type: RegexAndOr
+ pattern:
+ - com\.android\.bluetooth|com\.android\.server
+ - - startTethering\(
+ - factoryReset\(
+ - stopTethering\(
+ - tether\(
+ - untether\(
+ - setUsbTethering\(
+ - setWifiApEnabled\(
+ - setBluetoothTethering\(
+ input_case: exact
+ severity: info
+- id: android.car.permission.CAR_RADIO
+ message: android.car.permission.CAR_RADIO
+ type: RegexAndOr
+ pattern:
+ - com\.android\.car
+ - - setPreset\(
+ - getCarService\(
+ input_case: exact
+ severity: info
+- id: android.car.permission.CAR_CAMERA
+ message: android.car.permission.CAR_CAMERA
+ type: RegexAndOr
+ pattern:
+ - com\.android\.car
+ - - getCarService\(
+ input_case: exact
+ severity: info
+- id: android.car.permission.CAR_HVAC
+ message: android.car.permission.CAR_HVAC
+ type: RegexAndOr
+ pattern:
+ - com\.android\.car
+ - - getCarService\(
+ input_case: exact
+ severity: info
+- id: android.car.permission.CAR_MOCK_VEHICLE_HAL
+ message: android.car.permission.CAR_MOCK_VEHICLE_HAL
+ type: RegexAndOr
+ pattern:
+ - com\.android\.car
+ - - getCarService\(
+ input_case: exact
+ severity: info
+- id: android.car.permission.CAR_NAVIGATION_MANAGER
+ message: android.car.permission.CAR_NAVIGATION_MANAGER
+ type: RegexAndOr
+ pattern:
+ - com\.android\.car
+ - - getCarService\(
+ input_case: exact
+ severity: info
+- id: android.car.permission.CAR_PROJECTION
+ message: android.car.permission.CAR_PROJECTION
+ type: RegexAndOr
+ pattern:
+ - com\.android\.car
+ - - getCarService\(
+ input_case: exact
+ severity: info
+- id: android.car.permission.CONTROL_APP_BLOCKING
+ message: android.car.permission.CONTROL_APP_BLOCKING
+ type: RegexAndOr
+ pattern:
+ - com\.android\.car
+ - - setAppBlockingPolicy\(
+ input_case: exact
+ severity: info
+- id: android.permission.CALL_PRIVILEGED
+ message: android.permission.CALL_PRIVILEGED
+ type: RegexAndOr
+ pattern:
+ - com\.android\.internal|android\.telecom\.TelecomManager
+ - - getCompleteVoiceMailNumberForSubscriber\(
+ - placeCall\(
+ - acceptRingingCall\(
+ - endCall\(
+ - getCompleteVoiceMailNumber\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_PRIVILEGED_PHONE_STATE
+ message: android.permission.READ_PRIVILEGED_PHONE_STATE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.internal|com\.android\.phone|com\.android\.server
+ - - getVoiceMailNumberForSubscriber\(
+ - getCdmaEriIconIndex\(
+ - getAllSubInfoList\(
+ - addListener\(
+ - setRestrictBackground\(
+ - getCdmaPrlVersion\(
+ - getIccSerialNumber\(
+ - getImeiForSubscriber\(
+ - getNaiForSubscriber\(
+ - getCdmaEriIconModeForSubscriber\(
+ - getDeviceSoftwareVersionForSlot\(
+ - getActiveSubscriptionInfoList\(
+ - getAllSubInfoCount\(
+ - getAidForAppType\(
+ - getVoiceMailAlphaTagForSubscriber\(
+ - factoryReset\(
+ - setDeviceIdleMode\(
+ - getLine1Number\(
+ - getDataNetworkTypeForSubscriber\(
+ - isRingingForSubscriber\(
+ - getActiveSubscriptionInfoForIccId\(
+ - getPcscfAddress\(
+ - listenForSubscriber\(
+ - getDataNetworkType\(
+ - isRinging\(
+ - getConfigForSubId\(
+ - isRadioOn\(
+ - isWorldPhone\(
+ - getCdmaEriTextForSubscriber\(
+ - getLteOnCdmaMode\(
+ - getLteOnCdmaModeForSubscriber\(
+ - getDeviceIdForPhone\(
+ - getDeviceSvn\(
+ - isIdle\(
+ - getVoiceNetworkTypeForSubscriber\(
+ - getIsimIst\(
+ - getIsimChallengeResponse\(
+ - getMergedSubscriberIds\(
+ - getSubscriberId\(
+ - getDeviceId\(
+ - getActiveSubscriptionInfo\(
+ - getServiceStateForSubscriber\(
+ - removeListener\(
+ - getNetworkTypeForSubscriber\(
+ - isIdleForSubscriber\(
+ - getSystemVisualVoicemailSmsFilterSettings\(
+ - isVisualVoicemailEnabled\(
+ - getIsimImpu\(
+ - isVideoCallingEnabled\(
+ - getCalculatedPreferredNetworkType\(
+ - getIccSimChallengeResponse\(
+ - getVoiceMailNumber\(
+ - getVoiceMailAlphaTag\(
+ - addOnSubscriptionsChangedListener\(
+ - getCdmaEriIconIndexForSubscriber\(
+ - isRadioOnForSubscriber\(
+ - getIsimDomain\(
+ - getImeiForSlot\(
+ - listen\(
+ - getMsisdnForSubscriber\(
+ - getCdmaEriText\(
+ - getIsimPcscf\(
+ - canChangeDtmfToneLength\(
+ - getActiveSubInfoCount\(
+ - getLine1NumberForSubscriber\(
+ - getCdmaEriIconMode\(
+ - getGroupIdLevel1\(
+ - getMsisdn\(
+ - isSimPinEnabled\(
+ - getLine1AlphaTag\(
+ - getActiveSubscriptionInfoForSimSlotIndex\(
+ - getNetworkPolicies\(
+ - getAllowedCarriers\(
+ - getSubscriberIdForSubscriber\(
+ - getRadioAccessFamily\(
+ - getGroupIdLevel1ForSubscriber\(
+ - getEsn\(
+ - getDeviceSvnUsingSubId\(
+ - getLine1AlphaTagForDisplay\(
+ - isOffhookForSubscriber\(
+ - isOffhook\(
+ - getSubscriptionProperty\(
+ - getLine1AlphaTagForSubscriber\(
+ - getIsimImpi\(
+ - getLine1NumberForDisplay\(
+ - getIccSerialNumberForSubscriber\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_CONTACTS
+ message: android.permission.READ_CONTACTS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.internal|com\.android\.server|android\.provider\.ContactsContract
+ - - query\(
+ - getAdnRecordsInEfForSubscriber\(
+ - getSeparateProfileChallengeEnabled\(
+ - openContactPhotoInputStream\(
+ - getAdnRecordsInEf\(
+ - systemReady\(
+ - getString\(
+ - lookupContact\(
+ input_case: exact
+ severity: info
+- id: android.permission.WRITE_CONTACTS
+ message: android.permission.WRITE_CONTACTS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.internal|android\.provider\.ContactsContract
+ - - update\(
+ - updateAdnRecordsInEfBySearch\(
+ - updateAdnRecordsInEfByIndex\(
+ - insert\(
+ - updateAdnRecordsInEfByIndexForSubscriber\(
+ - updateAdnRecordsInEfBySearchForSubscriber\(
+ input_case: exact
+ severity: info
+- id: android.permission.RECEIVE_SMS
+ message: android.permission.RECEIVE_SMS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.internal|android\.content\.BroadcastReceiver
+ - - disableCellBroadcastRange\(
+ - enableCellBroadcastRange\(
+ - Telephony\.SMS_RECEIVED
+ - disableCellBroadcastRangeForSubscriber\(
+ - getMessagesFromIntent\(
+ - getAllMessagesFromIccEf\(
+ - "\\.createFromPdu\\("
+ - updateMessageOnIccEf\(
+ - disableCellBroadcast\(
+ - enableCellBroadcastForSubscriber\(
+ - disableCellBroadcastForSubscriber\(
+ - onReceive\(
+ - copyMessageToIccEf\(
+ - getAllMessagesFromIccEfForSubscriber\(
+ - enableCellBroadcast\(
+ - enableCellBroadcastRangeForSubscriber\(
+ - updateMessageOnIccEfForSubscriber\(
+ - copyMessageToIccEfForSubscriber\(
+ input_case: exact
+ severity: info
+- id: android.permission.SEND_SMS_NO_CONFIRMATION
+ message: android.permission.SEND_SMS_NO_CONFIRMATION
+ type: RegexAndOr
+ pattern:
+ - com\.android\.internal
+ - - sendDataForSubscriber\(
+ - sendDataForSubscriberWithSelfPermissions\(
+ - sendMultipartTextForSubscriber\(
+ - sendStoredMultipartText\(
+ - sendStoredText\(
+ - sendTextForSubscriber\(
+ - sendTextForSubscriberWithSelfPermissions\(
+ - sendData\(
+ - sendMultipartText\(
+ - sendText\(
+ input_case: exact
+ severity: info
+- id: android.permission.CALL_PHONE
+ message: android.permission.CALL_PHONE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.phone|android\.telecom\.TelecomManager|android\.content\.Intent
+ - - placeCall\(
+ - endCallForSubscriber\(
+ - acceptRingingCall\(
+ - endCall\(
+ - call\(
+ - ACTION_CALL
+ input_case: exact
+ severity: info
+- id: android.permission.CONTROL_LOCATION_UPDATES
+ message: android.permission.CONTROL_LOCATION_UPDATES
+ type: RegexAndOr
+ pattern:
+ - com\.android\.phone
+ - - disableLocationUpdates\(
+ - disableLocationUpdatesForSubscriber\(
+ - enableLocationUpdates\(
+ - enableLocationUpdatesForSubscriber\(
+ input_case: exact
+ severity: info
+- id: android.permission.CONNECTIVITY_INTERNAL
+ message: android.permission.CONNECTIVITY_INTERNAL
+ type: RegexAndOr
+ pattern:
+ - com\.android\.phone|com\.android\.server|com\.android\.bluetooth|android\.net\.wifi
+ - - getInterfaceTxThrottle\(
+ - setInterfaceDown\(
+ - setConfiguration\(
+ - clearHostExemption\(
+ - logEvent\(
+ - stopAccessPoint\(
+ - createPhysicalNetwork\(
+ - setConnectivityListener\(
+ - setDnsInterfaceForPid\(
+ - setRestrictBackground\(
+ - getNetworkStatsUidDetail\(
+ - clearDnsInterfaceForPid\(
+ - checkMobileProvisioning\(
+ - getIpForwardingEnabled\(
+ - getWpsNfcConfigurationToken\(
+ - setDefaultNetId\(
+ - setMarkedForwarding\(
+ - createVirtualNetwork\(
+ - setInterfaceUp\(
+ - setUidCleartextNetworkPolicy\(
+ - addRoute\(
+ - enableIpv6\(
+ - isTetheringStarted\(
+ - disableNat\(
+ - setDnsForwarders\(
+ - setMtu\(
+ - getMarkForProtect\(
+ - removeIdleTimer\(
+ - getCountryCode\(
+ - addInterfaceToNetwork\(
+ - enableWifiConnectivityManager\(
+ - wifiFirmwareReload\(
+ - setUidRangeRoute\(
+ - registerNetworkAgent\(
+ - setDataDependency\(
+ - factoryReset\(
+ - addUidPolicy\(
+ - setDefaultInterfaceForDns\(
+ - getP2pStateMachineMessenger\(
+ - removeVpnUidRanges\(
+ - setInterfaceIpv6NdOffload\(
+ - setMiracastMode\(
+ - removeUidPolicy\(
+ - logEvents\(
+ - setBluetoothTethering\(
+ - setUidPolicy\(
+ - clearDefaultNetId\(
+ - setNetworkPolicies\(
+ - schedule\(
+ - attachPppd\(
+ - setDnsServersForInterface\(
+ - flushDefaultDnsCache\(
+ - clearInterfaceAddresses\(
+ - setWifiApEnabled\(
+ - setGlobalAlert\(
+ - requestNetworkTransitionWakelock\(
+ - setAirplaneMode\(
+ - advisePersistThreshold\(
+ - getMarkForUid\(
+ - addVpnUidRanges\(
+ - setPermission\(
+ - requestRouteToHost\(
+ - getActiveNetworkInfoForUid\(
+ - disableIpv6\(
+ - listenForNetwork\(
+ - flushInterfaceDnsCache\(
+ - pendingRequestForNetwork\(
+ - requestRouteToHostAddress\(
+ - clearDnsInterfaceForUidRange\(
+ - setGlobalProxy\(
+ - unregisterNetworkFactory\(
+ - registerListener\(
+ - removeInterfaceFromNetwork\(
+ - stopClatd\(
+ - getAlwaysOnVpnPackage\(
+ - getAllVpnInfo\(
+ - setAcceptUnvalidated\(
+ - getActiveNetworkForUid\(
+ - clearMarkedForwarding\(
+ - stopTethering\(
+ - listInterfaces\(
+ - updateLockdownVpn\(
+ - setMarkedForwardingRoute\(
+ - setHostExemption\(
+ - allowProtect\(
+ - registerObserver\(
+ - setUidMeteredNetworkWhitelist\(
+ - setUidMeteredNetworkBlacklist\(
+ - interfaceAdded\(
+ - removeInterfaceFromLocalNetwork\(
+ - setNetworkPermission\(
+ - setDnsInterfaceForUidRange\(
+ - tetherInterface\(
+ - stopWifi\(
+ - removeInterfaceAlert\(
+ - scheduleAsPackage\(
+ - setProvisioningNotificationVisible\(
+ - enableNat\(
+ - untether\(
+ - setUsbTethering\(
+ - setUidNetworkRules\(
+ - clearUidRangeRoute\(
+ - unregisterListener\(
+ - startLegacyVpn\(
+ - getTetheredDhcpRanges\(
+ - setIpForwardingEnabled\(
+ - getAllNetworkState\(
+ - getDnsForwarders\(
+ - addIdleTimer\(
+ - clearPermission\(
+ - pendingListenForNetwork\(
+ - addInterfaceToLocalNetwork\(
+ - listTtys\(
+ - untetherInterface\(
+ - registerNetworkFactory\(
+ - stopInterfaceForwarding\(
+ - getMobileRedirectedProvisioningUrl\(
+ - startInterfaceForwarding\(
+ - getRoutes\(
+ - stopReverseTethering\(
+ - findConnectionTypeForIface\(
+ - setInterfaceIpv6PrivacyExtensions\(
+ - startTethering\(
+ - startWifi\(
+ - prepareVpn\(
+ - detachPppd\(
+ - removeSecondaryRoute\(
+ - addSecondaryRoute\(
+ - setInterfaceThrottle\(
+ - startClatd\(
+ - listTetheredInterfaces\(
+ - getInterfaceConfig\(
+ - removeRoutesFromLocalNetwork\(
+ - getNetworkStatsDetail\(
+ - denyProtect\(
+ - requestNetwork\(
+ - getNetworkStatsSummaryXt\(
+ - tether\(
+ - clearMarkedForwardingRoute\(
+ - clearDnsInterfaceMaps\(
+ - isBandwidthControlEnabled\(
+ - setInterfaceQuota\(
+ - interfaceStatusChanged\(
+ - setInterfaceConfig\(
+ - captivePortalCheckCompleted\(
+ - removeRoute\(
+ - setInterfaceAlert\(
+ - setAvoidUnvalidated\(
+ - getNetworkStatsSummaryDev\(
+ - setEnabled\(
+ - isClatdStarted\(
+ - captivePortalCheckComplete\(
+ - setCountryCode\(
+ - supplyMessenger\(
+ - interfaceLinkStateChanged\(
+ - getMobileProvisioningUrl\(
+ - startAccessPoint\(
+ - removeNetwork\(
+ - unregisterObserver\(
+ - setDnsServersForNetwork\(
+ - removeInterfaceQuota\(
+ - startUsingNetworkFeature\(
+ - startReverseTethering\(
+ - setAlwaysOnVpnPackage\(
+ - setAccessPoint\(
+ - getNetworkStatsTethering\(
+ - setDnsConfigurationForNetwork\(
+ - getInterfaceRxThrottle\(
+ - flushNetworkDnsCache\(
+ - addLegacyRouteForNetId\(
+ input_case: exact
+ severity: info
+- id: android.permission.INTERACT_ACROSS_USERS_FULL
+ message: android.permission.INTERACT_ACROSS_USERS_FULL
+ type: RegexAndOr
+ pattern:
+ - com\.android\.phone|com\.android\.server|com\.android\.internal|android\.content\.ContentService|com\.android\.providers
+ - - getReceiverInfo\(
+ - unregisterReceiver\(
+ - setUserRestriction\(
+ - isProvisioningAllowed\(
+ - isEphemeralApplication\(
+ - handleApplicationCrash\(
+ - handleApplicationWtf\(
+ - getOrganizationNameForUser\(
+ - getLockTaskPackages\(
+ - setRestrictionsProvider\(
+ - moveActivityTaskToBack\(
+ - sendText\(
+ - installPackageAsUser\(
+ - setAccountManagementDisabled\(
+ - startLockTaskModeOnCurrent\(
+ - setPermittedInputMethods\(
+ - enableSystemAppWithIntent\(
+ - getStorageEncryptionStatus\(
+ - canForwardTo\(
+ - factoryReset\(
+ - onSendMultipartSmsComplete\(
+ - sendMultipartText\(
+ - isAffiliatedUser\(
+ - sendTextForSubscriber\(
+ - stopAppSwitches\(
+ - setApplicationHiddenSettingAsUser\(
+ - getComponentEnabledSetting\(
+ - setPermissionGrantState\(
+ - getMaximumTimeToLock\(
+ - getAccounts\(
+ - setSecurityLoggingEnabled\(
+ - startPrinterStateTracking\(
+ - createUser\(
+ - getPasswordMinimumUpperCase\(
+ - getCrossProfileWidgetProviders\(
+ - getShortSupportMessage\(
+ - setPasswordQuality\(
+ - notifySuggestionPicked\(
+ - addSharedAccountsFromParentUser\(
+ - removeAccountAsUser\(
+ - getAccountsAsUser\(
+ - setPasswordMinimumLength\(
+ - getAlwaysOnVpnPackage\(
+ - deletePackageAsUser\(
+ - setComponentEnabledSetting\(
+ - getPasswordExpirationTimeout\(
+ - setCertInstallerPackage\(
+ - reportFailedFingerprintAttempt\(
+ - installCaCert\(
+ - sync\(
+ - confirmCredentialsAsUser\(
+ - setHomeActivity\(
+ - enableSystemApp\(
+ - requestBugreport\(
+ - updateExternalMediaStatus\(
+ - setPackageStoppedState\(
+ - getApplicationInfo\(
+ - installPackage\(
+ - getCurrentFailedPasswordAttempts\(
+ - setTrustAgentConfiguration\(
+ - putCache\(
+ - showSoftInput\(
+ - setDeviceOwnerLockScreenInfo\(
+ - sendMultipartTextForSubscriber\(
+ - getVpnConfig\(
+ - stopPrinterStateTracking\(
+ - getRestrictionsProvider\(
+ - getPermissionGrantState\(
+ - getMasterSyncAutomaticallyAsUser\(
+ - setPasswordMinimumLetters\(
+ - getPasswordMinimumLetters\(
+ - getPermissionPolicy\(
+ - setUserEnabled\(
+ - prepareVpn\(
+ - removeUser\(
+ - retrievePreRebootSecurityLogs\(
+ - createAndInitializeUser\(
+ - setStatusBarDisabled\(
+ - getStorageEncryption\(
+ - getAllSessions\(
+ - getActiveAdmins\(
+ - getCache\(
+ - isActivePasswordSufficient\(
+ - packageHasActiveAdmins\(
+ - setUserIcon\(
+ - print\(
+ - isPackageSuspended\(
+ - setRecommendedGlobalProxy\(
+ - clearDeviceOwner\(
+ - getPackageGids\(
+ - setOrganizationName\(
+ - addCrossProfileIntentFilter\(
+ - getDoNotAskCredentialsOnBoot\(
+ - clearLastInputMethodWindowForTransition\(
+ - getLastInputMethodSubtype\(
+ - getBluetoothContactSharingDisabledForUser\(
+ - sendData\(
+ - setAffiliationIds\(
+ - registerSuggestionSpansForNotification\(
+ - switchToLastInputMethod\(
+ - isInputMethodPermittedByAdmin\(
+ - setUninstallBlocked\(
+ - hideSoftInput\(
+ - getMaximumFailedPasswordsForWipe\(
+ - registerUserSwitchObserver\(
+ - addPersistentPreferredActivity\(
+ - setStorageEncryption\(
+ - getShortSupportMessageForUser\(
+ - getBluetoothContactSharingDisabled\(
+ - isAdminActive\(
+ - getSyncAdapterTypesAsUser\(
+ - getMySessions\(
+ - uninstall\(
+ - unbindBackupAgent\(
+ - verifyPendingInstall\(
+ - setKeyguardDisabled\(
+ - getCurrentSyncsAsUser\(
+ - uninstallCaCerts\(
+ - queryIntentActivities\(
+ - setMasterMute\(
+ - setSecureSetting\(
+ - getInputMethodList\(
+ - installKeyPair\(
+ - getSyncStatusAsUser\(
+ - getTrustAgentConfiguration\(
+ - getNeighboringCellInfo\(
+ - setScreenCaptureDisabled\(
+ - getProfileWithMinimumFailedPasswordsForWipe\(
+ - reportSuccessfulPasswordAttempt\(
+ - resolveIntent\(
+ - setPermissionPolicy\(
+ - unbindFinished\(
+ - isSystemOnlyUser\(
+ - sendStoredText\(
+ - startLockTaskMode\(
+ - isApplicationHidden\(
+ - getAccountsByTypeForPackage\(
+ - clearProfileOwner\(
+ - getKeepUninstalledPackages\(
+ - getPasswordMinimumNonLetter\(
+ - getCrossProfileContactsSearchDisabled\(
+ - setPasswordMinimumSymbols\(
+ - setOrganizationColor\(
+ - getActivityInfo\(
+ - removeAccount\(
+ - isCaCertApproved\(
+ - setLastChosenActivity\(
+ - isLockTaskPermitted\(
+ - injectSmsPduForSubscriber\(
+ - setCurrentInputMethodSubtype\(
+ - getHomeActivities\(
+ - getCertInstallerPackage\(
+ - setGlobalSetting\(
+ - call\(
+ - getPermittedInputMethods\(
+ - reboot\(
+ - showMySoftInput\(
+ - isSyncPendingAsUser\(
+ - getApplicationEnabledSetting\(
+ - startUserInBackground\(
+ - getPrintJobInfos\(
+ - addCrossProfileWidgetProvider\(
+ - getEnabledInputMethodList\(
+ - getLastChosenActivity\(
+ - getPermittedAccessibilityServices\(
+ - extendVerificationTimeout\(
+ - isCallerApplicationRestrictionsManagingPackage\(
+ - getApplicationRestrictions\(
+ - updatePermissionFlagsForAllApps\(
+ - updateStatusIcon\(
+ - getApplicationBlockedSettingAsUser\(
+ - getPermissionFlags\(
+ - insert\(
+ - setCrossProfileContactsSearchDisabled\(
+ - getPasswordHistoryLength\(
+ - isDeviceProvisioningConfigApplied\(
+ - getIsSyncableAsUser\(
+ - setMasterVolumeMuted\(
+ - setInputMethodAndSubtype\(
+ - cancelSync\(
+ - isSyncPending\(
+ - isPermissionRevokedByPolicy\(
+ - delete\(
+ - removeClient\(
+ - getPermittedAccessibilityServicesForUser\(
+ - setShortSupportMessage\(
+ - startInput\(
+ - queryIntentReceivers\(
+ - setDeviceInitializer\(
+ - getLongSupportMessage\(
+ - cancelSyncAsUser\(
+ - hasGrantedPolicy\(
+ - removeContentProvider\(
+ - windowGainedFocus\(
+ - setSyncAutomaticallyAsUser\(
+ - getPasswordMinimumLowerCase\(
+ - getSyncStatus\(
+ - isBackupServiceEnabled\(
+ - reportFailedPasswordAttempt\(
+ - getProviderInfo\(
+ - deletePackage\(
+ - setProfileOwner\(
+ - getPackageSizeInfo\(
+ - getServiceInfo\(
+ - getCurrentInputMethodSubtype\(
+ - sendDataForSubscriberWithSelfPermissions\(
+ - setPasswordMinimumUpperCase\(
+ - isPackageSuspendedForUser\(
+ - setPackagesSuspended\(
+ - revokeRuntimePermission\(
+ - addPrintJobStateChangeListener\(
+ - retrieveSecurityLogs\(
+ - getScanResults\(
+ - resetPassword\(
+ - restartPrintJob\(
+ - setAutoTimeRequired\(
+ - getInstalledPrintServices\(
+ - getCameraDisabled\(
+ - clearApplicationUserData\(
+ - setOrganizationColorForUser\(
+ - setInputMethodEnabled\(
+ - setMasterSyncAutomaticallyAsUser\(
+ - grantRuntimePermission\(
+ - setServiceForeground\(
+ - finishSubActivity\(
+ - setMasterSyncAutomatically\(
+ - stopPrinterDiscovery\(
+ - setKeepUninstalledPackages\(
+ - activityIdle\(
+ - setForceEphemeralUsers\(
+ - isProfileActivePasswordSufficientForParent\(
+ - setVpnPackageAuthorization\(
+ - setRequiredStrongAuthTimeout\(
+ - getLegacyVpnInfo\(
+ - rejectCall\(
+ - getLongSupportMessageForUser\(
+ - removeCrossProfileWidgetProvider\(
+ - setPasswordMinimumNumeric\(
+ - setApplicationRestrictions\(
+ - setBackupServiceEnabled\(
+ - getAuthenticatorTypes\(
+ - setLockTaskPackages\(
+ - enforceCanManageCaCerts\(
+ - setDeviceProvisioningConfigApplied\(
+ - getTaskDescriptionIcon\(
+ - showInputMethodAndSubtypeEnablerFromClient\(
+ - clearDeviceInitializer\(
+ - isManagedProfile\(
+ - setMicrophoneMute\(
+ - setDefaultBrowserPackageName\(
+ - flushPackageRestrictionsAsUser\(
+ - getCellLocation\(
+ - setLongSupportMessage\(
+ - setSystemUpdatePolicy\(
+ - getPasswordMinimumLength\(
+ - getCrossProfileCallerIdDisabled\(
+ - getOrganizationColor\(
+ - movePackage\(
+ - setPasswordMinimumNonLetter\(
+ - createInputContentUriToken\(
+ - getPrintJobInfo\(
+ - getOrganizationName\(
+ - uninstallPackageWithActiveAdmins\(
+ - setPackagesSuspendedAsUser\(
+ - killUid\(
+ - setApplicationRestrictionsManagingPackage\(
+ - reportSuccessfulFingerprintAttempt\(
+ - approveCaCert\(
+ - setKeyguardDisabledFeatures\(
+ - getIsSyncable\(
+ - isRemovingAdmin\(
+ - getSyncAdapterPackagesForAuthorityAsUser\(
+ - getTrustAgentFeaturesEnabled\(
+ - startInputOrWindowGainedFocus\(
+ - setInputMethod\(
+ - getAccountTypesWithManagementDisabledAsUser\(
+ - unlockUser\(
+ - getPasswordQuality\(
+ - reportKeyguardDismissed\(
+ - getPackageUid\(
+ - getCurrentSyncs\(
+ - getMaximumTimeToLockForUserAndProfiles\(
+ - deleteApplicationCacheFilesAsUser\(
+ - startNextMatchingActivity\(
+ - getEnabledInputMethodSubtypeList\(
+ - addClient\(
+ - setUserProvisioningState\(
+ - getAutoTimeRequired\(
+ - navigateUpTo\(
+ - setBluetoothContactSharingDisabled\(
+ - cancelPrintJob\(
+ - getSyncAutomatically\(
+ - update\(
+ - setAdditionalInputMethodSubtypes\(
+ - showInputMethodPickerFromClient\(
+ - sendTextForSubscriberWithSelfPermissions\(
+ - shouldShowRequestPermissionRationale\(
+ - registerContentObserver\(
+ - stopUser\(
+ - clearCrossProfileIntentFilters\(
+ - bulkInsert\(
+ - registerCallback\(
+ - getApplicationRestrictionsManagingPackage\(
+ - clearPackagePersistentPreferredActivities\(
+ - setPermittedAccessibilityServices\(
+ - getUserProvisioningState\(
+ - getSyncAdapterTypes\(
+ - getForceEphemeralUsers\(
+ - reportKeyguardSecured\(
+ - setProcessLimit\(
+ - setSyncAutomatically\(
+ - setApplicationEnabledSetting\(
+ - setCameraDisabled\(
+ - getKeyguardDisabledFeatures\(
+ - switchUser\(
+ - getWifiMacAddress\(
+ - forceRemoveActiveAdmin\(
+ - getGlobalProxyAdmin\(
+ - createAndManageUser\(
+ - resetRuntimePermissions\(
+ - getUserRestrictions\(
+ - queryIntentServices\(
+ - publishContentProviders\(
+ - choosePrivateKeyAlias\(
+ - validatePrinters\(
+ - setApplicationBlockedSettingAsUser\(
+ - systemReady\(
+ - startPrinterDiscovery\(
+ - isAccessibilityServicePermittedByAdmin\(
+ - getScreenCaptureDisabled\(
+ - setProfileEnabled\(
+ - uninstallCaCert\(
+ - setActivePasswordState\(
+ - copyAccountToUser\(
+ - isSecurityLoggingEnabled\(
+ - setGlobalProxy\(
+ - setTaskDescription\(
+ - installExistingPackageAsUser\(
+ - getAccountTypesWithManagementDisabled\(
+ - getSyncAutomaticallyAsUser\(
+ - setPasswordExpirationTimeout\(
+ - switchToNextInputMethod\(
+ - sendDataForSubscriber\(
+ - shouldOfferSwitchingToNextInputMethod\(
+ - getMasterSyncAutomatically\(
+ - setPasswordHistoryLength\(
+ - getRemoveWarning\(
+ - setActiveAdmin\(
+ - removePrintJobStateChangeListener\(
+ - setMaximumFailedPasswordsForWipe\(
+ - sendStoredMultipartText\(
+ - destroyPrinterDiscoverySession\(
+ - resolveService\(
+ - addAccountAsUser\(
+ - setMaximumTimeToLock\(
+ - setPasswordMinimumLowerCase\(
+ - publishService\(
+ - removeKeyPair\(
+ - getPasswordExpiration\(
+ - getPasswordMinimumNumeric\(
+ - getPasswordMinimumSymbols\(
+ - syncAsUser\(
+ - createSession\(
+ - finishSessionAsUser\(
+ - getAccountsForPackage\(
+ - createPrinterDiscoverySession\(
+ - removeActiveAdmin\(
+ - wipeData\(
+ - getInstalledPackages\(
+ - lockNow\(
+ - setCrossProfileCallerIdDisabled\(
+ - getApplicationHiddenSettingAsUser\(
+ - isPackageAvailable\(
+ - setApplicationHidden\(
+ - hideMySoftInput\(
+ - getCrossProfileCallerIdDisabledForUser\(
+ - deleteApplicationCacheFiles\(
+ - setProfileName\(
+ - replacePreferredActivity\(
+ - isMasterVolumeMuted\(
+ - notifyLockTaskModeChanged\(
+ - getRequiredStrongAuthTimeout\(
+ - getEnabledPrintServices\(
+ - setDeviceOwner\(
+ - getOrganizationColorForUser\(
+ - setTrustAgentFeaturesEnabled\(
+ - queryIntentActivityOptions\(
+ - queryIntentContentProviders\(
+ - hasUserSetupCompleted\(
+ - isUninstallBlocked\(
+ - getPermittedInputMethodsForCurrentUser\(
+ - getAllCellInfo\(
+ - setAlwaysOnVpnPackage\(
+ - updatePermissionFlags\(
+ - addPreferredActivity\(
+ - getPackageInfo\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_NETWORK_USAGE_HISTORY
+ message: android.permission.READ_NETWORK_USAGE_HISTORY
+ type: RegexAndOr
+ pattern:
+ - com\.android\.phone|com\.android\.server
+ - - setNetworkPolicies\(
+ - setRestrictBackground\(
+ - getVtDataUsage\(
+ - openSession\(
+ - getNetworkTotalBytes\(
+ - forceUpdateIfaces\(
+ - forceUpdate\(
+ - registerUsageCallback\(
+ input_case: exact
+ severity: info
+- id: android.permission.INTERACT_ACROSS_USERS
+ message: android.permission.INTERACT_ACROSS_USERS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.providers|com\.android\.server
+ - - setSoftKeyboardShowMode\(
+ - getEnabledAccessibilityServiceList\(
+ - findAccessibilityNodeInfosByText\(
+ - disableSelf\(
+ - getMagnificationCenterY\(
+ - getCrossProfileContactsSearchDisabledForUser\(
+ - setMagnificationScaleAndCenter\(
+ - setUserRestriction\(
+ - performGlobalAction\(
+ - findAccessibilityNodeInfosByViewId\(
+ - findFocus\(
+ - getMagnificationRegion\(
+ - getInstalledAccessibilityServiceList\(
+ - sendAccessibilityEvent\(
+ - cancelPrintJob\(
+ - getCrossProfileCallerIdDisabledForUser\(
+ - removePrintJobStateChangeListener\(
+ - computeClickPointInScreen\(
+ - getAccountsByTypeForPackage\(
+ - startPrinterStateTracking\(
+ - getPrintJobInfos\(
+ - destroyPrinterDiscoverySession\(
+ - findAccessibilityNodeInfoByViewId\(
+ - disableAccessibilityService\(
+ - validatePrinters\(
+ - interrupt\(
+ - stopPrinterDiscovery\(
+ - isUserRunning\(
+ - startPrinterDiscovery\(
+ - getEnabledPrintServices\(
+ - getWindows\(
+ - addAccessibilityInteractionConnection\(
+ - removeAccessibilityInteractionConnection\(
+ - print\(
+ - findAccessibilityNodeInfoByAccessibilityId\(
+ - getWindow\(
+ - stopPrinterStateTracking\(
+ - resetMagnification\(
+ - getType\(
+ - performAccessibilityAction\(
+ - getRunningUserIds\(
+ - addPrintJobStateChangeListener\(
+ - getPrintJobInfo\(
+ - addClient\(
+ - getCurrentUser\(
+ - createPrinterDiscoverySession\(
+ - restartPrintJob\(
+ - getMagnificationScale\(
+ - focusSearch\(
+ - getInstalledPrintServices\(
+ - enableAccessibilityService\(
+ - getMagnificationCenterX\(
+ input_case: exact
+ severity: info
+- id: android.permission.UPDATE_APP_OPS_STATS
+ message: android.permission.UPDATE_APP_OPS_STATS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|com\.android\.internal
+ - - sendTextForSubscriber\(
+ - createProjection\(
+ - sendStoredText\(
+ - requestLocationUpdates\(
+ - convertFromTranslucent\(
+ - finishOperation\(
+ - vibrate\(
+ - vibratePattern\(
+ - sendStoredMultipartText\(
+ - sendTextForSubscriberWithSelfPermissions\(
+ - copyMessageToIccEfForSubscriber\(
+ - setMode\(
+ - getAllMessagesFromIccEfForSubscriber\(
+ - sendText\(
+ - sendDataForSubscriberWithSelfPermissions\(
+ - sendMultipartTextForSubscriber\(
+ - updateMessageOnIccEfForSubscriber\(
+ - setUidMode\(
+ - startOperation\(
+ - resetAllModes\(
+ - noteOperation\(
+ - requestVisibleBehind\(
+ - setAudioRestriction\(
+ - onSendMultipartSmsComplete\(
+ - sendMultipartText\(
+ - checkOperation\(
+ - checkAudioOperation\(
+ - finishActivityAffinity\(
+ - sendDataForSubscriber\(
+ input_case: exact
+ severity: info
+- id: android.permission.GET_APP_OPS_STATS
+ message: android.permission.GET_APP_OPS_STATS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getOpsForPackage\(
+ - getPackagesForOps\(
+ - shutdown\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_APP_OPS_RESTRICTIONS
+ message: android.permission.MANAGE_APP_OPS_RESTRICTIONS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - setUserRestriction\(
+ input_case: exact
+ severity: info
+- id: android.permission.LOCAL_MAC_ADDRESS
+ message: android.permission.LOCAL_MAC_ADDRESS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getAddress\(
+ input_case: exact
+ severity: info
+- id: android.permission.CONTROL_VPN
+ message: android.permission.CONTROL_VPN
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - factoryReset\(
+ - getAlwaysOnVpnPackage\(
+ - getLegacyVpnInfo\(
+ - getVpnConfig\(
+ - prepareVpn\(
+ - setAlwaysOnVpnPackage\(
+ - setVpnPackageAuthorization\(
+ - startLegacyVpn\(
+ input_case: exact
+ severity: info
+- id: android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS
+ message: android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - pendingRequestForNetwork\(
+ - requestNetwork\(
+ input_case: exact
+ severity: info
+- id: android.permission.PACKET_KEEPALIVE_OFFLOAD
+ message: android.permission.PACKET_KEEPALIVE_OFFLOAD
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - startNattKeepalive\(
+ input_case: exact
+ severity: info
+- id: android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST
+ message: android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - addPowerSaveTempWhitelistApp\(
+ - addPowerSaveTempWhitelistAppForMms\(
+ - addPowerSaveTempWhitelistAppForSms\(
+ input_case: exact
+ severity: info
+- id: android.permission.DEVICE_POWER
+ message: android.permission.DEVICE_POWER
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - addPowerSaveWhitelistApp\(
+ - exitIdle\(
+ - removePowerSaveWhitelistApp\(
+ - setLockScreenShown\(
+ - boostScreenBrightness\(
+ - goToSleep\(
+ - nap\(
+ - powerHint\(
+ - setAttentionLight\(
+ - setPowerSaveMode\(
+ - setTemporaryScreenAutoBrightnessAdjustmentSettingOverride\(
+ - setTemporaryScreenBrightnessSettingOverride\(
+ - userActivity\(
+ - wakeUp\(
+ - lockNow\(
+ - goingToSleep\(
+ - wakingUp\(
+ - showAssistant\(
+ - clearUserActivityTimeout\(
+ - goToSleepWithReason\(
+ - preventScreenOn\(
+ - releaseWakeLock\(
+ - setAutoBrightnessAdjustment\(
+ - setBacklightBrightness\(
+ - setPokeLock\(
+ - userActivityWithForce\(
+ input_case: exact
+ severity: info
+- id: android.permission.WRITE_SECURE_SETTINGS
+ message: android.permission.WRITE_SECURE_SETTINGS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|com\.android\.nfc|android\.server\.BluetoothService|android\.provider\.Settings\.Secure
+ - - setCurrentSpellChecker\(
+ - enableFallbackLogic\(
+ - put\(
+ - invokeBeamInternal\(
+ - resumePolling\(
+ - addNfcUnlockHandler\(
+ - switchToLastInputMethod\(
+ - call\(
+ - update\(
+ - setForcedDisplayDensity\(
+ - setOverscan\(
+ - clearForcedDisplayDensityForUser\(
+ - setInputMethod\(
+ - enable\(
+ - delete\(
+ - disable\(
+ - changeProviderAndSetting\(
+ - switchToNextInputMethod\(
+ - putFloat\(
+ - putInt\(
+ - setMaximumScreenOffTimeount\(
+ - setP2pModes\(
+ - setInputMethodEnabled\(
+ - setDefaultForNextTap\(
+ - insert\(
+ - setForcedDisplayScalingMode\(
+ - setInputMethodAndSubtype\(
+ - dispatch\(
+ - setInstallLocation\(
+ - setDefaultServiceForCategory\(
+ - setForcedDisplayDensityForUser\(
+ - getServices\(
+ - clearForcedDisplaySize\(
+ - bulkInsert\(
+ - setScanMode\(
+ - disableNdefPush\(
+ - clearForcedDisplayDensity\(
+ - setForcedDisplaySize\(
+ - setCurrentSpellCheckerSubtype\(
+ - putLong\(
+ - enableNdefPush\(
+ - setSpellCheckerEnabled\(
+ - pausePolling\(
+ input_case: exact
+ severity: info
+- id: android.permission.INSTALL_LOCATION_PROVIDER
+ message: android.permission.INSTALL_LOCATION_PROVIDER
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - reportLocation\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_KEYGUARD_SECURE_STORAGE
+ message: android.permission.ACCESS_KEYGUARD_SECURE_STORAGE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - checkPassword\(
+ - checkPattern\(
+ - checkVoldPassword\(
+ - getBoolean\(
+ - getLong\(
+ - getSeparateProfileChallengeEnabled\(
+ - getString\(
+ - getStrongAuthForUser\(
+ - registerStrongAuthTracker\(
+ - requireStrongAuth\(
+ - resetKeyStore\(
+ - setBoolean\(
+ - setLockPassword\(
+ - setLockPattern\(
+ - setLong\(
+ - setSeparateProfileChallengeEnabled\(
+ - setString\(
+ - systemReady\(
+ - unregisterStrongAuthTracker\(
+ - userPresent\(
+ - verifyPassword\(
+ - verifyPattern\(
+ - verifyTiedProfileChallenge\(
+ - getPassword\(
+ - removeUser\(
+ input_case: exact
+ severity: info
+- id: android.permission.STORAGE_INTERNAL
+ message: android.permission.STORAGE_INTERNAL
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - addUserKeyAuth\(
+ - clearPassword\(
+ - createUserKey\(
+ - destroyUserKey\(
+ - destroyUserStorage\(
+ - fixateNewestUserKeyAuth\(
+ - getField\(
+ - getPassword\(
+ - getPasswordType\(
+ - isConvertibleToFBE\(
+ - lockUserKey\(
+ - prepareUserStorage\(
+ - setField\(
+ - unlockUserKey\(
+ input_case: exact
+ severity: info
+- id: android.permission.MOUNT_FORMAT_FILESYSTEMS
+ message: android.permission.MOUNT_FORMAT_FILESYSTEMS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - benchmark\(
+ - format\(
+ - formatVolume\(
+ - partitionMixed\(
+ - partitionPrivate\(
+ - partitionPublic\(
+ input_case: exact
+ severity: info
+- id: android.permission.CRYPT_KEEPER
+ message: android.permission.CRYPT_KEEPER
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - changeEncryptionPassword\(
+ - decryptStorage\(
+ - encryptStorage\(
+ - getEncryptionState\(
+ - verifyEncryptionPassword\(
+ input_case: exact
+ severity: info
+- id: android.permission.ASEC_CREATE
+ message: android.permission.ASEC_CREATE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - createSecureContainer\(
+ - finalizeSecureContainer\(
+ - fixPermissionsSecureContainer\(
+ - resizeSecureContainer\(
+ input_case: exact
+ severity: info
+- id: android.permission.ASEC_DESTROY
+ message: android.permission.ASEC_DESTROY
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - destroySecureContainer\(
+ input_case: exact
+ severity: info
+- id: android.permission.MOUNT_UNMOUNT_FILESYSTEMS
+ message: android.permission.MOUNT_UNMOUNT_FILESYSTEMS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - forgetAllVolumes\(
+ - forgetVolume\(
+ - getPrimaryStorageUuid\(
+ - getStorageUsers\(
+ - mount\(
+ - mountVolume\(
+ - runMaintenance\(
+ - setDebugFlags\(
+ - setPrimaryStorageUuid\(
+ - setVolumeNickname\(
+ - setVolumeUserFlags\(
+ - unmount\(
+ - unmountVolume\(
+ - getMoveStatus\(
+ - registerMoveCallback\(
+ - unregisterMoveCallback\(
+ - setUsbMassStorageEnabled\(
+ input_case: exact
+ severity: info
+- id: android.permission.ASEC_ACCESS
+ message: android.permission.ASEC_ACCESS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getSecureContainerFilesystemPath\(
+ - getSecureContainerList\(
+ - getSecureContainerPath\(
+ - isSecureContainerMounted\(
+ input_case: exact
+ severity: info
+- id: android.permission.ASEC_MOUNT_UNMOUNT
+ message: android.permission.ASEC_MOUNT_UNMOUNT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - mountSecureContainer\(
+ - unmountSecureContainer\(
+ input_case: exact
+ severity: info
+- id: android.permission.ASEC_RENAME
+ message: android.permission.ASEC_RENAME
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - renameSecureContainer\(
+ input_case: exact
+ severity: info
+- id: android.permission.SHUTDOWN
+ message: android.permission.SHUTDOWN
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - shutdown\(
+ input_case: exact
+ severity: info
+- id: android.permission.BROADCAST_NETWORK_PRIVILEGED
+ message: android.permission.BROADCAST_NETWORK_PRIVILEGED
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - clearScores\(
+ - registerNetworkScoreCache\(
+ - disableScoring\(
+ input_case: exact
+ severity: info
+- id: android.permission.SCORE_NETWORKS
+ message: android.permission.SCORE_NETWORKS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - clearScores\(
+ - disableScoring\(
+ - setActiveScorer\(
+ - updateScores\(
+ - getScanResults\(
+ input_case: exact
+ severity: info
+- id: android.permission.RECOVERY
+ message: android.permission.RECOVERY
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - clearBcb\(
+ - rebootRecoveryWithCommand\(
+ - setupBcb\(
+ - uncrypt\(
+ - reboot\(
+ input_case: exact
+ severity: info
+- id: android.permission.SERIAL_PORT
+ message: android.permission.SERIAL_PORT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getSerialPorts\(
+ - openSerialPort\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_PRECISE_PHONE_STATE
+ message: android.permission.READ_PRECISE_PHONE_STATE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - listen\(
+ - listenForSubscriber\(
+ input_case: exact
+ severity: info
+- id: android.permission.UPDATE_LOCK
+ message: android.permission.UPDATE_LOCK
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - acquireUpdateLock\(
+ - releaseUpdateLock\(
+ input_case: exact
+ severity: info
+- id: getWindowToken
+ message: getWindowToken
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getWindowToken\(
+ input_case: exact
+ severity: info
+- id: android.permission.REMOVE_TASKS
+ message: android.permission.REMOVE_TASKS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - appNotRespondingViaProvider\(
+ - removeTask\(
+ - removeSubTask\(
+ input_case: exact
+ severity: info
+- id: android.permission.CONFIRM_FULL_BACKUP
+ message: android.permission.CONFIRM_FULL_BACKUP
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - bindBackupAgent\(
+ input_case: exact
+ severity: info
+- id: android.permission.START_ANY_ACTIVITY
+ message: android.permission.START_ANY_ACTIVITY
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - bindBackupAgent\(
+ - bindService\(
+ - navigateUpTo\(
+ - stopService\(
+ - stopServiceToken\(
+ - unbindService\(
+ - send\(
+ - activityDestroyed\(
+ - activityIdle\(
+ - activityPaused\(
+ - activitySlept\(
+ - backgroundResourcesReleased\(
+ - closeSystemDialogs\(
+ - convertFromTranslucent\(
+ - convertToTranslucent\(
+ - finishActivity\(
+ - finishVoiceTask\(
+ - keyguardWaitingForActivityDrawn\(
+ - moveActivityTaskToBack\(
+ - moveTaskToBack\(
+ - moveTaskToFront\(
+ - moveTaskToStack\(
+ - releaseActivityInstance\(
+ - releaseSomeActivities\(
+ - reportAssistContextExtras\(
+ - setFocusedStack\(
+ - setLockScreenShown\(
+ - setProcessLimit\(
+ - setRequestedOrientation\(
+ - shutdown\(
+ - startLockTaskMode\(
+ - startLockTaskModeOnCurrent\(
+ - startUserInBackground\(
+ - stopAppSwitches\(
+ - stopLockTaskMode\(
+ - unregisterReceiver\(
+ - dismissKeyguardOnNextActivity\(
+ - activityStopped\(
+ - finishHeavyWeightApp\(
+ - finishReceiver\(
+ - forceStopPackage\(
+ - goingToSleep\(
+ - handleApplicationCrash\(
+ - handleApplicationWtf\(
+ - inputDispatchingTimedOut\(
+ - killAllBackgroundProcesses\(
+ - killUid\(
+ - removeContentProviderExternal\(
+ - setFrontActivityScreenCompatMode\(
+ - setPackageScreenCompatMode\(
+ - setProcessForeground\(
+ - startRunning\(
+ - wakingUp\(
+ - switchUser\(
+ input_case: exact
+ severity: info
+- id: android.permission.START_TASKS_FROM_RECENTS
+ message: android.permission.START_TASKS_FROM_RECENTS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - bindBackupAgent\(
+ - bindService\(
+ - navigateUpTo\(
+ - startActivityFromRecents\(
+ - stopService\(
+ - stopServiceToken\(
+ - unbindService\(
+ - send\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_DEBUG_APP
+ message: android.permission.SET_DEBUG_APP
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - bindService\(
+ - navigateUpTo\(
+ - setDebugApp\(
+ - setDumpHeapDebugLimit\(
+ - startActivities\(
+ - startActivity\(
+ - startActivityAndWait\(
+ - startActivityAsCaller\(
+ - startActivityAsUser\(
+ - startActivityWithConfig\(
+ - stopService\(
+ - stopServiceToken\(
+ - unbindService\(
+ - startActivityIntentSender\(
+ - startActivitiesInPackage\(
+ - startActivityInPackage\(
+ input_case: exact
+ severity: info
+- id: android.permission.CLEAR_APP_GRANTED_URI_PERMISSIONS
+ message: android.permission.CLEAR_APP_GRANTED_URI_PERMISSIONS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - clearGrantedUriPermissions\(
+ input_case: exact
+ severity: info
+- id: android.permission.BACKUP
+ message: android.permission.BACKUP
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - clearPendingBackup\(
+ - getAvailableRestoreSets\(
+ - restoreAll\(
+ - restorePackage\(
+ - restoreSome\(
+ - acknowledgeFullBackupOrRestore\(
+ - backupNow\(
+ - beginRestoreSession\(
+ - clearBackupData\(
+ - dataChanged\(
+ - fullBackup\(
+ - fullRestore\(
+ - fullTransportBackup\(
+ - getAvailableRestoreToken\(
+ - getConfigurationIntent\(
+ - getCurrentTransport\(
+ - getDataManagementIntent\(
+ - getDataManagementLabel\(
+ - getDestinationString\(
+ - hasBackupPassword\(
+ - isAppEligibleForBackup\(
+ - isBackupEnabled\(
+ - listAllTransports\(
+ - requestBackup\(
+ - restoreAtInstall\(
+ - selectBackupTransport\(
+ - setAutoRestore\(
+ - setBackupEnabled\(
+ - setBackupPassword\(
+ - setBackupProvisioned\(
+ - bindBackupAgent\(
+ input_case: exact
+ severity: info
+- id: android.permission.FORCE_STOP_PACKAGES
+ message: android.permission.FORCE_STOP_PACKAGES
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - crashApplication\(
+ - finishHeavyWeightApp\(
+ - forceStopPackage\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_ACTIVITY_STACKS
+ message: android.permission.MANAGE_ACTIVITY_STACKS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - createStackOnDisplay\(
+ - createVirtualActivityContainer\(
+ - deleteActivityContainer\(
+ - getAllStackInfos\(
+ - getStackInfo\(
+ - getTaskBounds\(
+ - isInHomeStack\(
+ - moveTaskToDockedStack\(
+ - moveTaskToStack\(
+ - moveTasksToFullscreenStack\(
+ - moveTopActivityToPinnedStack\(
+ - positionTaskInStack\(
+ - registerTaskStackListener\(
+ - removeStack\(
+ - resizeDockedStack\(
+ - resizePinnedStack\(
+ - resizeStack\(
+ - resizeTask\(
+ - setFocusedStack\(
+ - setFocusedTask\(
+ - startConfirmDeviceCredentialIntent\(
+ - startSystemLockTaskMode\(
+ - stopLockTaskMode\(
+ - stopSystemLockTaskMode\(
+ - suppressResizeConfigChanges\(
+ - swapDockedAndFullscreenStack\(
+ - startLockTaskModeOnCurrent\(
+ - stopLockTaskModeOnCurrent\(
+ - bindService\(
+ - createActivityContainer\(
+ - getHomeActivityToken\(
+ - activityDestroyed\(
+ - createStack\(
+ - dismissKeyguardOnNextActivity\(
+ - getStackBoxInfo\(
+ - getStackBoxes\(
+ - moveActivityTaskToBack\(
+ - navigateUpTo\(
+ - resizeStackBox\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_ACTIVITY_WATCHER
+ message: android.permission.SET_ACTIVITY_WATCHER
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - dumpHeap\(
+ - hang\(
+ - performIdleMaintenance\(
+ - profileControl\(
+ - registerProcessObserver\(
+ - registerUidObserver\(
+ - restart\(
+ - sendIdleJobTrigger\(
+ - setActivityController\(
+ - startBinderTracking\(
+ - stopBinderTrackingAndDump\(
+ input_case: exact
+ severity: info
+- id: android.permission.GET_TOP_ACTIVITY_INFO
+ message: android.permission.GET_TOP_ACTIVITY_INFO
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getAssistContextExtras\(
+ - launchAssistIntent\(
+ - requestAssistContextExtras\(
+ - getTopActivityExtras\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY
+ message: android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getContentProviderExternal\(
+ - removeContentProviderExternal\(
+ input_case: exact
+ severity: info
+- id: android.permission.GET_APP_GRANTED_URI_PERMISSIONS
+ message: android.permission.GET_APP_GRANTED_URI_PERMISSIONS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getGrantedUriPermissions\(
+ input_case: exact
+ severity: info
+- id: android.permission.GET_INTENT_SENDER_INTENT
+ message: android.permission.GET_INTENT_SENDER_INTENT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getIntentForIntentSender\(
+ input_case: exact
+ severity: info
+- id: android.permission.PACKAGE_USAGE_STATS
+ message: android.permission.PACKAGE_USAGE_STATS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getPackageProcessState\(
+ - getCurrentStats\(
+ - getStatsOverTime\(
+ - registerUsageCallback\(
+ - queryConfigurationStats\(
+ - queryEvents\(
+ - queryUsageStats\(
+ - getAllPkgUsageStats\(
+ - getPkgUsageStats\(
+ input_case: exact
+ severity: info
+- id: android.permission.GET_DETAILED_TASKS
+ message: android.permission.GET_DETAILED_TASKS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getRecentTasks\(
+ input_case: exact
+ severity: info
+- id: android.permission.REAL_GET_TASKS
+ message: android.permission.REAL_GET_TASKS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getRecentTasks\(
+ - getRunningAppProcesses\(
+ - getRunningExternalApplications\(
+ - getTasks\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_FRAME_BUFFER
+ message: android.permission.READ_FRAME_BUFFER
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getTaskThumbnail\(
+ - requestAssistScreenshot\(
+ - screenshotApplications\(
+ - screenshotWallpaper\(
+ - getTaskThumbnails\(
+ - getTaskTopThumbnail\(
+ input_case: exact
+ severity: info
+- id: android.permission.FILTER_EVENTS
+ message: android.permission.FILTER_EVENTS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - inputDispatchingTimedOut\(
+ - setInputFilter\(
+ input_case: exact
+ severity: info
+- id: android.permission.KILL_UID
+ message: android.permission.KILL_UID
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - killPackageDependents\(
+ - killUid\(
+ input_case: exact
+ severity: info
+- id: android.permission.DUMP
+ message: android.permission.DUMP
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - requestBugReport\(
+ - getEvents\(
+ - register\(
+ - unregister\(
+ - isViewServerRunning\(
+ - startViewServer\(
+ - stopViewServer\(
+ input_case: exact
+ severity: info
+- id: android.permission.STOP_APP_SWITCHES
+ message: android.permission.STOP_APP_SWITCHES
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - resumeAppSwitches\(
+ - stopAppSwitches\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_ALWAYS_FINISH
+ message: android.permission.SET_ALWAYS_FINISH
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - setAlwaysFinish\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_SCREEN_COMPATIBILITY
+ message: android.permission.SET_SCREEN_COMPATIBILITY
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - setFrontActivityScreenCompatMode\(
+ - setPackageAskScreenCompat\(
+ - setPackageScreenCompatMode\(
+ input_case: exact
+ severity: info
+- id: android.permission.INTERNAL_SYSTEM_WINDOW
+ message: android.permission.INTERNAL_SYSTEM_WINDOW
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - setHasTopUi\(
+ - setLockWallpaperCallback\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_PROCESS_LIMIT
+ message: android.permission.SET_PROCESS_LIMIT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - setLenientBackgroundCheck\(
+ - setProcessForeground\(
+ - setProcessLimit\(
+ input_case: exact
+ severity: info
+- id: android.permission.SIGNAL_PERSISTENT_PROCESSES
+ message: android.permission.SIGNAL_PERSISTENT_PROCESSES
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.app\.ActivityManager
+ - - signalPersistentProcesses\(
+ - killBackgroundProcesses\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_VOICE_INTERACTION
+ message: android.permission.BIND_VOICE_INTERACTION
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.service\.voice\.VoiceInteractionService
+ - - onCreate\(
+ - onBind\(
+ - startVoiceActivity\(
+ - onUnbind\(
+ input_case: exact
+ severity: info
+- id: android.permission.FORCE_BACK
+ message: android.permission.FORCE_BACK
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - unhandledBack\(
+ input_case: exact
+ severity: info
+- id: android.permission.CHANGE_CONFIGURATION
+ message: android.permission.CHANGE_CONFIGURATION
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - updateConfiguration\(
+ - updatePersistentConfiguration\(
+ input_case: exact
+ severity: info
+- id: android.permission.BATTERY_STATS
+ message: android.permission.BATTERY_STATS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getAwakeTimeBattery\(
+ - getAwakeTimePlugged\(
+ - getStatistics\(
+ - getStatisticsStream\(
+ - takeUidSnapshot\(
+ - takeUidSnapshots\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_APPWIDGET
+ message: android.permission.BIND_APPWIDGET
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - bindAppWidgetId\(
+ - bindRemoteViewsService\(
+ - createAppWidgetConfigIntentSender\(
+ - deleteAppWidgetId\(
+ - getAppWidgetInfo\(
+ - getAppWidgetOptions\(
+ - getAppWidgetViews\(
+ - notifyAppWidgetViewDataChanged\(
+ - partiallyUpdateAppWidgetIds\(
+ - unbindRemoteViewsService\(
+ - updateAppWidgetIds\(
+ - updateAppWidgetOptions\(
+ - bindAppWidgetIdIfAllowed\(
+ - updateAppWidgetProvider\(
+ input_case: exact
+ severity: info
+- id: android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS
+ message: android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - hasBindAppWidgetPermission\(
+ - setBindAppWidgetPermission\(
+ input_case: exact
+ severity: info
+- id: android.permission.STATUS_BAR_SERVICE
+ message: android.permission.STATUS_BAR_SERVICE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.media\.AudioService
+ - - onNotificationClick\(
+ - onNotificationError\(
+ - disableSafeMediaVolume\(
+ - setRemoteStreamVolume\(
+ - clearNotificationEffects\(
+ - onNotificationActionClick\(
+ - onNotificationVisibilityChanged\(
+ - setVolumePolicy\(
+ - notifyVolumeControllerVisible\(
+ - onClearAllNotifications\(
+ - setVolumeController\(
+ - registerStatusBar\(
+ - onPanelRevealed\(
+ - onPanelHidden\(
+ - setRingerModeInternal\(
+ - setSystemUiVisibility\(
+ - onNotificationClear\(
+ - onNotificationExpansionChanged\(
+ input_case: exact
+ severity: info
+- id: android.permission.CAPTURE_AUDIO_OUTPUT
+ message: android.permission.CAPTURE_AUDIO_OUTPUT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.media\.AudioService
+ - - forceRemoteSubmixFullVolume\(
+ input_case: exact
+ severity: info
+- id: android.permission.MODIFY_AUDIO_ROUTING
+ message: android.permission.MODIFY_AUDIO_ROUTING
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.media\.AudioService
+ - - registerAudioPolicy\(
+ - setFocusPropertiesForPolicy\(
+ input_case: exact
+ severity: info
+- id: android.permission.REMOTE_AUDIO_PLAYBACK
+ message: android.permission.REMOTE_AUDIO_PLAYBACK
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.media\.AudioService
+ - - setRingtonePlayer\(
+ input_case: exact
+ severity: info
+- id: android.permission.WRITE_SYNC_SETTINGS
+ message: android.permission.WRITE_SYNC_SETTINGS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.content\.ContentService|android\.content\.ContentResolver
+ - - setMasterSyncAutomatically\(
+ - addPeriodicSync\(
+ - removePeriodicSync\(
+ - setSyncAutomatically\(
+ - setIsSyncable\(
+ - setSyncAutomaticallyAsUser\(
+ - setMasterSyncAutomaticallyAsUser\(
+ input_case: exact
+ severity: info
+- id: android.permission.CACHE_CONTENT
+ message: android.permission.CACHE_CONTENT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getCache\(
+ - putCache\(
+ input_case: exact
+ severity: info
+- id: android.permission.GET_ACCOUNTS
+ message: android.permission.GET_ACCOUNTS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.accounts\.AccountManager
+ - - getAccountsByTypeForPackage\(
+ - addOnAccountsUpdatedListener\(
+ - getAccountsByFeatures\(
+ - hasFeatures\(
+ - getAccountsByTypeAndFeatures\(
+ - getAccountsForPackage\(
+ - getAccountsByType\(
+ - getAccountsAsUser\(
+ - getAccounts\(
+ - getCurrentSyncsAsUser\(
+ - getCurrentSyncs\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_SYNC_STATS
+ message: android.permission.READ_SYNC_STATS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.content\.ContentService
+ - - getCurrentSyncs\(
+ - getSyncStatus\(
+ - isSyncActive\(
+ - getCurrentSyncsAsUser\(
+ - isSyncPending\(
+ - getSyncStatusAsUser\(
+ - isSyncPendingAsUser\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_SYNC_SETTINGS
+ message: android.permission.READ_SYNC_SETTINGS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.content\.ContentService
+ - - getSyncAutomaticallyAsUser\(
+ - getMasterSyncAutomatically\(
+ - getIsSyncableAsUser\(
+ - getPeriodicSyncs\(
+ - getSyncAutomatically\(
+ - getIsSyncable\(
+ - getMasterSyncAutomaticallyAsUser\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_USERS
+ message: android.permission.MANAGE_USERS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - approveCaCert\(
+ - createAndManageUser\(
+ - getDeviceOwnerComponent\(
+ - getDeviceOwnerName\(
+ - getDeviceOwnerUserId\(
+ - getProfileOwnerName\(
+ - isCaCertApproved\(
+ - isDeviceProvisioningConfigApplied\(
+ - setDeviceProvisioningConfigApplied\(
+ - setOrganizationColorForUser\(
+ - uninstallPackageWithActiveAdmins\(
+ - getApplicationHiddenSettingAsUser\(
+ - setApplicationHiddenSettingAsUser\(
+ - setPackagesSuspendedAsUser\(
+ - createAndInitializeUser\(
+ - setProfileOwner\(
+ - getApplicationBlockedSettingAsUser\(
+ - setApplicationBlockedSettingAsUser\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_DEVICE_ADMINS
+ message: android.permission.MANAGE_DEVICE_ADMINS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - createAndManageUser\(
+ - isUninstallInQueue\(
+ - removeActiveAdmin\(
+ - setActiveAdmin\(
+ - uninstallPackageWithActiveAdmins\(
+ - createAndInitializeUser\(
+ - setDeviceInitializer\(
+ - setUserEnabled\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS
+ message: android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - createAndManageUser\(
+ - setDeviceOwner\(
+ - setProfileOwner\(
+ - setUserProvisioningState\(
+ - createAndInitializeUser\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_CA_CERTIFICATES
+ message: android.permission.MANAGE_CA_CERTIFICATES
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - enforceCanManageCaCerts\(
+ - installCaCert\(
+ - uninstallCaCerts\(
+ - uninstallCaCert\(
+ input_case: exact
+ severity: info
+- id: android.permission.QUERY_DO_NOT_ASK_CREDENTIALS_ON_BOOT
+ message: android.permission.QUERY_DO_NOT_ASK_CREDENTIALS_ON_BOOT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getDoNotAskCredentialsOnBoot\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_DEVICE_ADMIN
+ message: android.permission.BIND_DEVICE_ADMIN
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.app\.admin\.DeviceAdminReceiver
+ - - getRemoveWarning\(
+ - reportFailedPasswordAttempt\(
+ - reportFailedFingerprintAttempt\(
+ - onEnabled\(
+ - onDisabled\(
+ - onPasswordFailed\(
+ - onPasswordExpiring\(
+ - onPasswordSucceeded\(
+ - setActiveAdmin\(
+ - setActivePasswordState\(
+ - removeActiveAdmin\(
+ - onPasswordChanged\(
+ - onProfileProvisioningComplete\(
+ - reportSuccessfulFingerprintAttempt\(
+ - onReceive\(
+ - reportSuccessfulPasswordAttempt\(
+ - reportKeyguardDismissed\(
+ - reportKeyguardSecured\(
+ input_case: exact
+ severity: info
+- id: android.permission.NOTIFY_PENDING_SYSTEM_UPDATE
+ message: android.permission.NOTIFY_PENDING_SYSTEM_UPDATE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - notifyPendingSystemUpdate\(
+ input_case: exact
+ severity: info
+- id: android.permission.CONFIGURE_WIFI_DISPLAY
+ message: android.permission.CONFIGURE_WIFI_DISPLAY
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - connectWifiDisplay\(
+ - forgetWifiDisplay\(
+ - pauseWifiDisplay\(
+ - renameWifiDisplay\(
+ - resumeWifiDisplay\(
+ - startWifiDisplayScan\(
+ - stopWifiDisplayScan\(
+ - registerClientAsUser\(
+ input_case: exact
+ severity: info
+- id: android.permission.CAPTURE_SECURE_VIDEO_OUTPUT
+ message: android.permission.CAPTURE_SECURE_VIDEO_OUTPUT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - createVirtualDisplay\(
+ input_case: exact
+ severity: info
+- id: android.permission.CAPTURE_VIDEO_OUTPUT
+ message: android.permission.CAPTURE_VIDEO_OUTPUT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - createVirtualDisplay\(
+ input_case: exact
+ severity: info
+- id: android.permission.CONFIGURE_DISPLAY_COLOR_MODE
+ message: android.permission.CONFIGURE_DISPLAY_COLOR_MODE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - requestColorMode\(
+ input_case: exact
+ severity: info
+- id: android.permission.WRITE_DREAM_STATE
+ message: android.permission.WRITE_DREAM_STATE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - awaken\(
+ - dream\(
+ - setDreamComponents\(
+ - testDream\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_DREAM_STATE
+ message: android.permission.READ_DREAM_STATE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getDefaultDreamComponent\(
+ - getDreamComponents\(
+ - isDreaming\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_FINGERPRINT
+ message: android.permission.MANAGE_FINGERPRINT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - authenticate\(
+ - cancelEnrollment\(
+ - enroll\(
+ - postEnroll\(
+ - preEnroll\(
+ - remove\(
+ - rename\(
+ - setActiveUser\(
+ input_case: exact
+ severity: info
+- id: android.permission.RESET_FINGERPRINT_LOCKOUT
+ message: android.permission.RESET_FINGERPRINT_LOCKOUT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - resetTimeout\(
+ input_case: exact
+ severity: info
+- id: android.permission.HDMI_CEC
+ message: android.permission.HDMI_CEC
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - addDeviceEventListener\(
+ - addHdmiMhlVendorCommandListener\(
+ - addHotplugEventListener\(
+ - addSystemAudioModeChangeListener\(
+ - addVendorCommandListener\(
+ - canChangeSystemAudioMode\(
+ - clearTimerRecording\(
+ - deviceSelect\(
+ - getActiveSource\(
+ - getDeviceList\(
+ - getInputDevices\(
+ - getPortInfo\(
+ - getSupportedTypes\(
+ - getSystemAudioMode\(
+ - oneTouchPlay\(
+ - portSelect\(
+ - queryDisplayStatus\(
+ - removeHotplugEventListener\(
+ - removeSystemAudioModeChangeListener\(
+ - sendKeyEvent\(
+ - sendMhlVendorCommand\(
+ - sendStandby\(
+ - sendVendorCommand\(
+ - setArcMode\(
+ - setHdmiRecordListener\(
+ - setInputChangeListener\(
+ - setProhibitMode\(
+ - setSystemAudioMode\(
+ - setSystemAudioMute\(
+ - setSystemAudioVolume\(
+ - startOneTouchRecord\(
+ - startTimerRecording\(
+ - stopOneTouchRecord\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_KEYBOARD_LAYOUT
+ message: android.permission.SET_KEYBOARD_LAYOUT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - addKeyboardLayoutForInputDevice\(
+ - removeKeyboardLayoutForInputDevice\(
+ - setCurrentKeyboardLayoutForInputDevice\(
+ - setKeyboardLayoutForInputDevice\(
+ input_case: exact
+ severity: info
+- id: android.permission.TABLET_MODE
+ message: android.permission.TABLET_MODE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - isInTabletMode\(
+ - registerTabletModeChangedListener\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_INPUT_CALIBRATION
+ message: android.permission.SET_INPUT_CALIBRATION
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - setTouchCalibrationForInputDevice\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_POINTER_SPEED
+ message: android.permission.SET_POINTER_SPEED
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - tryPointerSpeed\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_MEDIA_PROJECTION
+ message: android.permission.MANAGE_MEDIA_PROJECTION
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - addCallback\(
+ - createProjection\(
+ - getActiveProjectionInfo\(
+ - removeCallback\(
+ - stopActiveProjection\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_NETWORK_POLICY
+ message: android.permission.MANAGE_NETWORK_POLICY
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - addRestrictBackgroundWhitelistedUid\(
+ - addUidPolicy\(
+ - factoryReset\(
+ - getNetworkPolicies\(
+ - getRestrictBackground\(
+ - getRestrictBackgroundWhitelistedUids\(
+ - getUidPolicy\(
+ - getUidsWithPolicy\(
+ - isUidForeground\(
+ - onTetheringChanged\(
+ - removeRestrictBackgroundWhitelistedUid\(
+ - removeUidPolicy\(
+ - setDeviceIdleMode\(
+ - setNetworkPolicies\(
+ - setRestrictBackground\(
+ - setUidPolicy\(
+ - snoozeLimit\(
+ - setPolicyDataEnable\(
+ - getPowerSaveAppIdWhitelist\(
+ - getAppPolicy\(
+ - getAppsWithPolicy\(
+ - setAppPolicy\(
+ input_case: exact
+ severity: info
+- id: android.permission.MODIFY_NETWORK_ACCOUNTING
+ message: android.permission.MODIFY_NETWORK_ACCOUNTING
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - advisePersistThreshold\(
+ - incrementOperationCount\(
+ - setUidForeground\(
+ - setRestrictBackground\(
+ - setUidPolicy\(
+ input_case: exact
+ severity: info
+- id: android.permission.INSTALL_PACKAGES
+ message: android.permission.INSTALL_PACKAGES
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - setPermissionsResult\(
+ - installExistingPackageAsUser\(
+ - installPackageAsUser\(
+ - installPackage\(
+ - installPackageWithVerification\(
+ - installPackageWithVerificationAndEncryption\(
+ - installExistingPackage\(
+ input_case: exact
+ severity: info
+- id: android.permission.DELETE_PACKAGES
+ message: android.permission.DELETE_PACKAGES
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - uninstall\(
+ - deletePackage\(
+ - deletePackageAsUser\(
+ - setBlockUninstallForUser\(
+ input_case: exact
+ severity: info
+- id: android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS
+ message: android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - addOnPermissionsChangeListener\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_PREFERRED_APPLICATIONS
+ message: android.permission.SET_PREFERRED_APPLICATIONS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|com\.android\.phone
+ - - updateIntentVerificationStatus\(
+ - verifyPendingInstall\(
+ - setHomeActivity\(
+ - replacePreferredActivity\(
+ - updateExternalMediaStatus\(
+ - deletePackage\(
+ - setDefaultBrowserPackageName\(
+ - systemReady\(
+ - getPackageSizeInfo\(
+ - installPackage\(
+ - resetApplicationPreferences\(
+ - extendVerificationTimeout\(
+ - installPackageAsUser\(
+ - clearPackagePreferredActivities\(
+ - movePackage\(
+ - setLastChosenActivity\(
+ - deletePackageAsUser\(
+ - rejectCall\(
+ - resetPreferredActivities\(
+ - addPreferredActivity\(
+ input_case: exact
+ severity: info
+- id: android.permission.CLEAR_APP_USER_DATA
+ message: android.permission.CLEAR_APP_USER_DATA
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - clearApplicationUserData\(
+ input_case: exact
+ severity: info
+- id: android.permission.DELETE_CACHE_FILES
+ message: android.permission.DELETE_CACHE_FILES
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - deleteApplicationCacheFiles\(
+ - deleteApplicationCacheFilesAsUser\(
+ input_case: exact
+ severity: info
+- id: android.permission.GRANT_RUNTIME_PERMISSIONS
+ message: android.permission.GRANT_RUNTIME_PERMISSIONS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - deletePackage\(
+ - deletePackageAsUser\(
+ - extendVerificationTimeout\(
+ - getPackageSizeInfo\(
+ - getPermissionFlags\(
+ - grantRuntimePermission\(
+ - installPackageAsUser\(
+ - movePackage\(
+ - setDefaultBrowserPackageName\(
+ - setPermissionEnforced\(
+ - updateExternalMediaStatus\(
+ - updatePermissionFlags\(
+ - updatePermissionFlagsForAllApps\(
+ - verifyPendingInstall\(
+ - systemReady\(
+ - setPermissionGrantState\(
+ - installPackage\(
+ input_case: exact
+ severity: info
+- id: android.permission.REVOKE_RUNTIME_PERMISSIONS
+ message: android.permission.REVOKE_RUNTIME_PERMISSIONS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - deletePackage\(
+ - deletePackageAsUser\(
+ - extendVerificationTimeout\(
+ - getPackageSizeInfo\(
+ - getPermissionFlags\(
+ - installPackageAsUser\(
+ - movePackage\(
+ - resetRuntimePermissions\(
+ - revokeRuntimePermission\(
+ - setDefaultBrowserPackageName\(
+ - updateExternalMediaStatus\(
+ - updatePermissionFlags\(
+ - updatePermissionFlagsForAllApps\(
+ - verifyPendingInstall\(
+ - systemReady\(
+ - setPermissionGrantState\(
+ - installPackage\(
+ input_case: exact
+ severity: info
+- id: android.permission.PACKAGE_VERIFICATION_AGENT
+ message: android.permission.PACKAGE_VERIFICATION_AGENT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - extendVerificationTimeout\(
+ - getVerifierDeviceIdentity\(
+ - verifyPendingInstall\(
+ input_case: exact
+ severity: info
+- id: android.permission.CLEAR_APP_CACHE
+ message: android.permission.CLEAR_APP_CACHE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.content\.pm\.PackageManager
+ - - deleteApplicationCacheFiles\(
+ - freeStorageAndNotify\(
+ - freeStorage\(
+ input_case: exact
+ severity: info
+- id: android.permission.GET_PACKAGE_SIZE
+ message: android.permission.GET_PACKAGE_SIZE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getPackageSizeInfo\(
+ input_case: exact
+ severity: info
+- id: android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS
+ message: android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - installPackageAsUser\(
+ - installPackage\(
+ input_case: exact
+ severity: info
+- id: android.permission.MOVE_PACKAGE
+ message: android.permission.MOVE_PACKAGE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - movePackage\(
+ - movePrimaryStorage\(
+ input_case: exact
+ severity: info
+- id: android.permission.CHANGE_COMPONENT_ENABLED_STATE
+ message: android.permission.CHANGE_COMPONENT_ENABLED_STATE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - setApplicationEnabledSetting\(
+ - setComponentEnabledSetting\(
+ - setPackageStoppedState\(
+ - systemReady\(
+ input_case: exact
+ severity: info
+- id: android.permission.INTENT_FILTER_VERIFICATION_AGENT
+ message: android.permission.INTENT_FILTER_VERIFICATION_AGENT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - verifyIntentFilter\(
+ input_case: exact
+ severity: info
+- id: android.permission.RESET_SHORTCUT_MANAGER_THROTTLING
+ message: android.permission.RESET_SHORTCUT_MANAGER_THROTTLING
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - onApplicationActive\(
+ input_case: exact
+ severity: info
+- id: android.permission.REBOOT
+ message: android.permission.REBOOT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - crash\(
+ - reboot\(
+ - rebootSafeMode\(
+ - shutdown\(
+ input_case: exact
+ severity: info
+- id: com.android.printspooler.permission.ACCESS_ALL_PRINT_JOBS
+ message: com.android.printspooler.permission.ACCESS_ALL_PRINT_JOBS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - addPrintJobStateChangeListener\(
+ - cancelPrintJob\(
+ - getPrintJobInfo\(
+ - getPrintJobInfos\(
+ - print\(
+ - restartPrintJob\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_SOUND_TRIGGER
+ message: android.permission.MANAGE_SOUND_TRIGGER
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - deleteSoundModel\(
+ - getSoundModel\(
+ - startRecognition\(
+ - stopRecognition\(
+ - updateSoundModel\(
+ input_case: exact
+ severity: info
+- id: android.permission.STATUS_BAR
+ message: android.permission.STATUS_BAR
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.app\.StatusBarManager
+ - - setCurrentInputMethodSubtype\(
+ - setRecentsVisibility\(
+ - showInputMethodAndSubtypeEnablerFromClient\(
+ - switchToLastInputMethod\(
+ - disableForUser\(
+ - updateStatusIcon\(
+ - setTvPipVisibility\(
+ - addTile\(
+ - setImeWindowStatus\(
+ - disable2\(
+ - setInputMethod\(
+ - disable2ForUser\(
+ - disable\(
+ - topAppWindowChanged\(
+ - switchToNextInputMethod\(
+ - reportInetCondition\(
+ - setIcon\(
+ - setInputMethodAndSubtype\(
+ - clickTile\(
+ - disableAll\(
+ - startInput\(
+ - remTile\(
+ - hideSoftInput\(
+ - windowGainedFocus\(
+ - disableForPackage\(
+ - removeIcon\(
+ - setIconVisibility\(
+ - statusBarVisibilityChanged\(
+ input_case: exact
+ severity: info
+- id: android.permission.EXPAND_STATUS_BAR
+ message: android.permission.EXPAND_STATUS_BAR
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - collapsePanels\(
+ - expandNotificationsPanel\(
+ - expandSettingsPanel\(
+ - handleSystemNavigationKey\(
+ - collapse\(
+ - expand\(
+ input_case: exact
+ severity: info
+- id: android.permission.TV_INPUT_HARDWARE
+ message: android.permission.TV_INPUT_HARDWARE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - acquireTvInputHardware\(
+ - getHardwareList\(
+ - releaseTvInputHardware\(
+ - addHardwareInput\(
+ - addHdmiInput\(
+ - removeHardwareInput\(
+ - addHardwareTvInput\(
+ - addHdmiTvInput\(
+ - removeTvInput\(
+ input_case: exact
+ severity: info
+- id: android.permission.MODIFY_PARENTAL_CONTROLS
+ message: android.permission.MODIFY_PARENTAL_CONTROLS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - addBlockedRating\(
+ - removeBlockedRating\(
+ - setParentalControlsEnabled\(
+ - unblockContent\(
+ input_case: exact
+ severity: info
+- id: android.permission.CAPTURE_TV_INPUT
+ message: android.permission.CAPTURE_TV_INPUT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - captureFrame\(
+ - getAvailableTvStreamConfigList\(
+ input_case: exact
+ severity: info
+- id: android.permission.DVB_DEVICE
+ message: android.permission.DVB_DEVICE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getDvbDeviceList\(
+ - openDvbDevice\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_CARRIER_SERVICES
+ message: android.permission.BIND_CARRIER_SERVICES
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.service\.carrier\.CarrierService
+ - - onCarrierPrivilegedAppsChanged\(
+ - onBind\(
+ input_case: exact
+ severity: info
+- id: android.permission.CHANGE_APP_IDLE_STATE
+ message: android.permission.CHANGE_APP_IDLE_STATE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - setAppInactive\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_USB
+ message: android.permission.MANAGE_USB
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - allowUsbDebugging\(
+ - clearDefaults\(
+ - clearUsbDebuggingKeys\(
+ - denyUsbDebugging\(
+ - getPortStatus\(
+ - getPorts\(
+ - grantAccessoryPermission\(
+ - grantDevicePermission\(
+ - hasDefaults\(
+ - isFunctionEnabled\(
+ - setAccessoryPackage\(
+ - setCurrentFunction\(
+ - setDevicePackage\(
+ - setPortRoles\(
+ - setUsbDataUnlocked\(
+ - setMassStorageBackingFile\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_VOICE_INTERACTION_SERVICE
+ message: android.permission.ACCESS_VOICE_INTERACTION_SERVICE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - activeServiceSupportsAssist\(
+ - activeServiceSupportsLaunchFromKeyguard\(
+ - getActiveServiceComponentName\(
+ - hideCurrentSession\(
+ - isSessionRunning\(
+ - launchVoiceAssistFromKeyguard\(
+ - onLockscreenShown\(
+ - registerVoiceInteractionSessionListener\(
+ - showSessionForActiveService\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_VOICE_KEYPHRASES
+ message: android.permission.MANAGE_VOICE_KEYPHRASES
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - deleteKeyphraseSoundModel\(
+ - getKeyphraseSoundModel\(
+ - updateKeyphraseSoundModel\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_WALLPAPER_COMPONENT
+ message: android.permission.SET_WALLPAPER_COMPONENT
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - setWallpaperComponent\(
+ - setWallpaperComponentChecked\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_WIFI_CREDENTIAL
+ message: android.permission.READ_WIFI_CREDENTIAL
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getConnectionStatistics\(
+ - getPrivilegedConfiguredNetworks\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_APP_TOKENS
+ message: android.permission.MANAGE_APP_TOKENS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - addAppToken\(
+ - addWindowToken\(
+ - executeAppTransition\(
+ - notifyAppResumed\(
+ - notifyAppStopped\(
+ - pauseKeyDispatching\(
+ - prepareAppTransition\(
+ - removeAppToken\(
+ - removeWindowToken\(
+ - resumeKeyDispatching\(
+ - setAppOrientation\(
+ - setAppStartingWindow\(
+ - setAppTask\(
+ - setAppVisibility\(
+ - setEventDispatching\(
+ - setFocusedApp\(
+ - setNewConfiguration\(
+ - startAppFreezingScreen\(
+ - stopAppFreezingScreen\(
+ - updateOrientationFromAppTokens\(
+ - setAppWillBeHidden\(
+ - activityIdle\(
+ - activityPaused\(
+ - activitySlept\(
+ - backgroundResourcesReleased\(
+ - convertFromTranslucent\(
+ - finishActivityAffinity\(
+ - finishHeavyWeightApp\(
+ - handleApplicationCrash\(
+ - handleApplicationWtf\(
+ - keyguardWaitingForActivityDrawn\(
+ - moveActivityTaskToBack\(
+ - navigateUpTo\(
+ - releaseActivityInstance\(
+ - requestVisibleBehind\(
+ - setFocusedStack\(
+ - setFrontActivityScreenCompatMode\(
+ - setPackageScreenCompatMode\(
+ - shutdown\(
+ - startLockTaskMode\(
+ - startLockTaskModeOnCurrent\(
+ - startNextMatchingActivity\(
+ - stopAppSwitches\(
+ - setAppGroupId\(
+ - moveAppToken\(
+ - moveAppTokensToBottom\(
+ - moveAppTokensToTop\(
+ input_case: exact
+ severity: info
+- id: android.permission.FRAME_STATS
+ message: android.permission.FRAME_STATS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - clearWindowContentFrameStats\(
+ - getWindowContentFrameStats\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_ORIENTATION
+ message: android.permission.SET_ORIENTATION
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - freezeRotation\(
+ - thawRotation\(
+ input_case: exact
+ severity: info
+- id: android.permission.REGISTER_WINDOW_MANAGER_LISTENERS
+ message: android.permission.REGISTER_WINDOW_MANAGER_LISTENERS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - registerDockedStackListener\(
+ - registerShortcutKey\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_ANIMATION_SCALE
+ message: android.permission.SET_ANIMATION_SCALE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - setAnimationScale\(
+ - setAnimationScales\(
+ input_case: exact
+ severity: info
+- id: android.permission.FREEZE_SCREEN
+ message: android.permission.FREEZE_SCREEN
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - startFreezingScreen\(
+ - stopFreezingScreen\(
+ input_case: exact
+ severity: info
+- id: android.permission.GET_PROCESS_STATE_AND_OOM_SCORE
+ message: android.permission.GET_PROCESS_STATE_AND_OOM_SCORE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getProcessStatesAndOomScoresFromPids\(
+ - getProcessStatesFromPids\(
+ input_case: exact
+ severity: info
+- id: android.permission.CONFIGURE_DISPLAY_COLOR_TRANSFORM
+ message: android.permission.CONFIGURE_DISPLAY_COLOR_TRANSFORM
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - requestColorTransform\(
+ input_case: exact
+ severity: info
+- id: android.permission.NFC
+ message: android.permission.NFC
+ type: RegexAndOr
+ pattern:
+ - android\.nfc\.NfcAdapter|android\.nfc\.cardemulation|android\.nfc\.tech|com\.android\.nfc
+ - - getAidGroupForService\(
+ - transfer\(
+ - enableForegroundDispatch\(
+ - transceive\(
+ - restore\(
+ - unsetPreferredService\(
+ - increment\(
+ - setCardEmulationRoute\(
+ - getNdefMessage\(
+ - getTimeout\(
+ - getTechList\(
+ - formatReadOnly\(
+ - disableForegroundNdefPush\(
+ - reconnect\(
+ - readPages\(
+ - writePage\(
+ - ndefWrite\(
+ - getAidsForService\(
+ - connect\(
+ - rediscover\(
+ - decrement\(
+ - open\(
+ - close\(
+ - setNdefPushMessage\(
+ - readBlock\(
+ - ndefMakeReadOnly\(
+ - enableForegroundNdefPush\(
+ - ndefRead\(
+ - setForegroundDispatch\(
+ - getNfcAdapterExtrasInterface\(
+ - authenticateSectorWithKeyB\(
+ - format\(
+ - setAppCallback\(
+ - makeReadOnly\(
+ - enableReaderMode\(
+ - writeNdefMessage\(
+ - setNdefPushCallback\(
+ - setPreferredService\(
+ - getDriverName\(
+ - registerAidGroupForService\(
+ - authenticate\(
+ - getCardEmulationRoute\(
+ - invokeBeam\(
+ - authenticateSectorWithKeyA\(
+ - setTimeout\(
+ - formatNdef\(
+ - registerAidsForService\(
+ - writeBlock\(
+ - setBeamPushUrisCallback\(
+ - isDefaultServiceForAid\(
+ - setBeamPushUris\(
+ - resetTimeouts\(
+ - setOnNdefPushCompleteCallback\(
+ - isNdef\(
+ - removeAidGroupForService\(
+ - setNdefPushMessageCallback\(
+ - verifyNfcPermission\(
+ - disableForegroundDispatch\(
+ - removeAidsForService\(
+ - isDefaultServiceForCategory\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCOUNT_MANAGER
+ message: android.permission.ACCOUNT_MANAGER
+ type: RegexAndOr
+ pattern:
+ - android\.accounts\.AbstractAccountAuthenticator
+ - - addAccount\(
+ - addAccountFromCredentials\(
+ - confirmCredentials\(
+ - editProperties\(
+ - getAccountCredentialsForCloning\(
+ - getAccountRemovalAllowed\(
+ - getAuthToken\(
+ - getAuthTokenLabel\(
+ - hasFeatures\(
+ - updateCredentials\(
+ input_case: exact
+ severity: info
+- id: android.permission.SEND_RESPOND_VIA_MESSAGE
+ message: android.permission.SEND_RESPOND_VIA_MESSAGE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.internal|android\.telecom\.TelecomManager
+ - - isInCall\(
+ - sendDataForSubscriberWithSelfPermissions\(
+ - onSendMultipartSmsComplete\(
+ - sendTextForSubscriber\(
+ - sendTextForSubscriberWithSelfPermissions\(
+ - allowRespondViaMessageForCalls\(
+ - sendDataForSubscriber\(
+ - sendStoredText\(
+ - sendStoredMultipartText\(
+ - sendMultipartTextForSubscriber\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_LOGS
+ message: android.permission.READ_LOGS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getNextEntry\(
+ input_case: exact
+ severity: info
+- id: android.permission.MEDIA_CONTENT_CONTROL
+ message: android.permission.MEDIA_CONTENT_CONTROL
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.media\.AudioService
+ - - registerRemoteControlDisplay\(
+ - registerRemoteController\(
+ input_case: exact
+ severity: info
+- id: android.permission.TABLET_MODE_LISTENER
+ message: android.permission.TABLET_MODE_LISTENER
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - registerTabletModeChangedListener\(
+ input_case: exact
+ severity: info
+- id: android.permission.AUTHENTICATE_ACCOUNTS
+ message: android.permission.AUTHENTICATE_ACCOUNTS
+ type: RegexAndOr
+ pattern:
+ - android\.accounts\.AccountManager|com\.android\.server
+ - - setPassword\(
+ - addAccount\(
+ - addAccountExplicitly\(
+ - setUserData\(
+ - getUserData\(
+ - removeAccountExplicitly\(
+ - setAuthToken\(
+ - peekAuthToken\(
+ - renameAccount\(
+ - getPassword\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_ACCOUNTS
+ message: android.permission.MANAGE_ACCOUNTS
+ type: RegexAndOr
+ pattern:
+ - android\.accounts\.AccountManager|com\.android\.server
+ - - updateCredentials\(
+ - removeAccount\(
+ - addAccount\(
+ - clearPassword\(
+ - editProperties\(
+ - addAccountAsUser\(
+ - confirmCredentials\(
+ - addAcount\(
+ - removeAccountAsUser\(
+ - confirmCredentialsAsUser\(
+ - invalidateAuthToken\(
+ input_case: exact
+ severity: info
+- id: android.permission.USE_CREDENTIALS
+ message: android.permission.USE_CREDENTIALS
+ type: RegexAndOr
+ pattern:
+ - android\.accounts\.AccountManager|com\.android\.server
+ - - getAuthToken\(
+ - invalidateAuthToken\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_MOCK_LOCATION
+ message: android.permission.ACCESS_MOCK_LOCATION
+ type: RegexAndOr
+ pattern:
+ - android\.location\.LocationManager|com\.android\.server
+ - - clearTestProviderLocation\(
+ - setTestProviderEnabled\(
+ - setTestProviderStatus\(
+ - clearTestProviderStatus\(
+ - addTestProvider\(
+ - clearTestProviderEnabled\(
+ - removeTestProvider\(
+ - setTestProviderLocation\(
+ input_case: exact
+ severity: info
+- id: android.permission.RECEIVE_BLUETOOTH_MAP
+ message: android.permission.RECEIVE_BLUETOOTH_MAP
+ type: RegexAndOr
+ pattern:
+ - com\.android\.bluetooth
+ - - fetchRemoteMasInstances\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_SOCIAL_STREAM
+ message: android.permission.READ_SOCIAL_STREAM
+ type: RegexAndOr
+ pattern:
+ - com\.android\.providers
+ - - getType\(
+ - bulkInsert\(
+ - call\(
+ - delete\(
+ - insert\(
+ - update\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_PROFILE
+ message: android.permission.READ_PROFILE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|com\.android\.providers
+ - - openAssetFile\(
+ - getString\(
+ - getBoolean\(
+ - getLong\(
+ input_case: exact
+ severity: info
+- id: android.permission.WRITE_SMS
+ message: android.permission.WRITE_SMS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - addMultimediaMessageDraft\(
+ - addTextMessageDraft\(
+ - archiveStoredConversation\(
+ - deleteStoredConversation\(
+ - deleteStoredMessage\(
+ - importMultimediaMessage\(
+ - importTextMessage\(
+ - setAutoPersisting\(
+ - updateStoredMessageStatus\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_ALL_EXTERNAL_STORAGE
+ message: android.permission.ACCESS_ALL_EXTERNAL_STORAGE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getVolumeList\(
+ input_case: exact
+ severity: info
+- id: android.permission.BROADCAST_SCORE_NETWORKS
+ message: android.permission.BROADCAST_SCORE_NETWORKS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - clearScores\(
+ - disableScoring\(
+ - registerNetworkScoreCache\(
+ - setActiveScorer\(
+ input_case: exact
+ severity: info
+- id: android.permission.GRANT_REVOKE_PERMISSIONS
+ message: android.permission.GRANT_REVOKE_PERMISSIONS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - grantPermission\(
+ - revokePermission\(
+ - setPermissionEnforced\(
+ input_case: exact
+ severity: info
+- id: android.permission.WRITE_SETTINGS
+ message: android.permission.WRITE_SETTINGS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server|android\.provider\.Settings\.System
+ - - put\(
+ - setStayOnSetting\(
+ - putLong\(
+ - putFloat\(
+ - putInt\(
+ input_case: exact
+ severity: info
+- id: com.android.server.telecom.permission.REGISTER_PROVIDER_OR_SUBSCRIPTION
+ message: com.android.server.telecom.permission.REGISTER_PROVIDER_OR_SUBSCRIPTION
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - registerPhoneAccount\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_TIME_ZONE
+ message: android.permission.SET_TIME_ZONE
+ type: RegexAndOr
+ pattern:
+ - android\.app\.AlarmManager|com\.android\.server
+ - - setTimeZone\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_TIME
+ message: android.permission.SET_TIME
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - setTime\(
+ input_case: exact
+ severity: info
+- id: android.permission.MARK_NETWORK_SOCKET
+ message: android.permission.MARK_NETWORK_SOCKET
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - markSocketAsUser\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_NOTIFICATIONS
+ message: android.permission.ACCESS_NOTIFICATIONS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getActiveNotifications\(
+ - getHistoricalNotifications\(
+ input_case: exact
+ severity: info
+- id: android.permission.MAGNIFY_DISPLAY
+ message: android.permission.MAGNIFY_DISPLAY
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getCompatibleMagnificationSpecForWindow\(
+ - setMagnificationCallbacks\(
+ - setMagnificationSpec\(
+ - magnifyDisplay\(
+ input_case: exact
+ severity: info
+- id: android.permission.RETRIEVE_WINDOW_INFO
+ message: android.permission.RETRIEVE_WINDOW_INFO
+ type: RegexAndOr
+ pattern:
+ - com\.android\.server
+ - - getFocusedWindowToken\(
+ - getWindowFrame\(
+ - addDisplayContentChangeListener\(
+ - getVisibleWindowsForDisplay\(
+ - getWindowCompatibilityScale\(
+ - getWindowInfo\(
+ - removeDisplayContentChangeListener\(
+ input_case: exact
+ severity: info
+- id: ti.permission.FMRX_ADMIN
+ message: ti.permission.FMRX_ADMIN
+ type: RegexAndOr
+ pattern:
+ - com\.ti\.server
+ - - resumeFm\(
+ - rxChangeAudioTarget\(
+ - rxChangeDigitalTargetConfiguration\(
+ - rxCompleteScan_nb\(
+ - rxDisable\(
+ - rxDisableAudioRouting\(
+ - rxDisableRds\(
+ - rxDisableRds_nb\(
+ - rxEnable\(
+ - rxEnableAudioRouting\(
+ - rxEnableRds\(
+ - rxEnableRds_nb\(
+ - rxGetBand\(
+ - rxGetBand_nb\(
+ - rxGetChannelSpacing\(
+ - rxGetChannelSpacing_nb\(
+ - rxGetCompleteScanProgress\(
+ - rxGetCompleteScanProgress_nb\(
+ - rxGetDeEmphasisFilter\(
+ - rxGetDeEmphasisFilter_nb\(
+ - rxGetFwVersion\(
+ - rxGetMonoStereoMode\(
+ - rxGetMonoStereoMode_nb\(
+ - rxGetMuteMode\(
+ - rxGetMuteMode_nb\(
+ - rxGetRdsAfSwitchMode\(
+ - rxGetRdsAfSwitchMode_nb\(
+ - rxGetRdsGroupMask\(
+ - rxGetRdsGroupMask_nb\(
+ - rxGetRdsSystem\(
+ - rxGetRdsSystem_nb\(
+ - rxGetRfDependentMuteMode\(
+ - rxGetRfDependentMuteMode_nb\(
+ - rxGetRssi\(
+ - rxGetRssiThreshold\(
+ - rxGetRssiThreshold_nb\(
+ - rxGetRssi_nb\(
+ - rxGetTunedFrequency\(
+ - rxGetTunedFrequency_nb\(
+ - rxGetVolume\(
+ - rxGetVolume_nb\(
+ - rxIsValidChannel\(
+ - rxSeek_nb\(
+ - rxSetBand\(
+ - rxSetBand_nb\(
+ - rxSetChannelSpacing\(
+ - rxSetChannelSpacing_nb\(
+ - rxSetDeEmphasisFilter\(
+ - rxSetDeEmphasisFilter_nb\(
+ - rxSetMonoStereoMode\(
+ - rxSetMonoStereoMode_nb\(
+ - rxSetMuteMode\(
+ - rxSetMuteMode_nb\(
+ - rxSetRdsAfSwitchMode\(
+ - rxSetRdsAfSwitchMode_nb\(
+ - rxSetRdsGroupMask\(
+ - rxSetRdsGroupMask_nb\(
+ - rxSetRdsSystem\(
+ - rxSetRdsSystem_nb\(
+ - rxSetRfDependentMuteMode\(
+ - rxSetRfDependentMuteMode_nb\(
+ - rxSetRssiThreshold\(
+ - rxSetRssiThreshold_nb\(
+ - rxSetVolume\(
+ - rxStopCompleteScan\(
+ - rxStopCompleteScan_nb\(
+ - rxStopSeek\(
+ - rxStopSeek_nb\(
+ - rxTune_nb\(
+ - txChangeAudioSource\(
+ - txChangeDigitalSourceConfiguration\(
+ - txDisable\(
+ - txDisableRds\(
+ - txEnable\(
+ - txEnableRds\(
+ - txSetMonoStereoMode\(
+ - txSetMuteMode\(
+ - txSetPowerLevel\(
+ - txSetPreEmphasisFilter\(
+ - txSetRdsAfCode\(
+ - txSetRdsECC\(
+ - txSetRdsMusicSpeechFlag\(
+ - txSetRdsPiCode\(
+ - txSetRdsPsDisplayMode\(
+ - txSetRdsPsScrollSpeed\(
+ - txSetRdsPtyCode\(
+ - txSetRdsTextPsMsg\(
+ - txSetRdsTextRepertoire\(
+ - txSetRdsTextRtMsg\(
+ - txSetRdsTrafficCodes\(
+ - txSetRdsTransmissionMode\(
+ - txSetRdsTransmittedGroupsMask\(
+ - txStartTransmission\(
+ - txStopTransmission\(
+ - txTune\(
+ - txWriteRdsRawData\(
+ input_case: exact
+ severity: info
+- id: ti.permission.FMRX
+ message: ti.permission.FMRX
+ type: RegexAndOr
+ pattern:
+ - com\.ti\.server
+ - - rxEnable\(
+ - rxGetFMState\(
+ - rxIsEnabled\(
+ - rxIsFMPaused\(
+ - txEnable\(
+ - txGetFMState\(
+ input_case: exact
+ severity: info
+- id: com.android.email.permission.ACCESS_PROVIDER
+ message: com.android.email.permission.ACCESS_PROVIDER
+ type: RegexAndOr
+ pattern:
+ - com\.android\.email
+ - - openFile\(
+ input_case: exact
+ severity: info
+- id: android.permission.WRITE_PROFILE
+ message: android.permission.WRITE_PROFILE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.providers
+ - - bulkInsert\(
+ - delete\(
+ - insert\(
+ - update\(
+ - openAssetFile\(
+ input_case: exact
+ severity: info
+- id: com.android.voicemail.permission.ADD_VOICEMAIL
+ message: com.android.voicemail.permission.ADD_VOICEMAIL
+ type: RegexAndOr
+ pattern:
+ - com\.android\.providers
+ - - delete\(
+ - insert\(
+ - update\(
+ - openFile\(
+ input_case: exact
+ severity: info
+- id: android.permission.WRITE_SOCIAL_STREAM
+ message: android.permission.WRITE_SOCIAL_STREAM
+ type: RegexAndOr
+ pattern:
+ - com\.android\.providers
+ - - delete\(
+ - insert\(
+ - update\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_ALL_DOWNLOADS
+ message: android.permission.ACCESS_ALL_DOWNLOADS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.providers
+ - - delete\(
+ - openFile\(
+ - update\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_CACHE_FILESYSTEM
+ message: android.permission.ACCESS_CACHE_FILESYSTEM
+ type: RegexAndOr
+ pattern:
+ - com\.android\.providers
+ - - insert\(
+ - openFile\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_DOWNLOAD_MANAGER
+ message: android.permission.ACCESS_DOWNLOAD_MANAGER
+ type: RegexAndOr
+ pattern:
+ - com\.android\.providers
+ - - insert\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED
+ message: android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED
+ type: RegexAndOr
+ pattern:
+ - com\.android\.providers
+ - - insert\(
+ input_case: exact
+ severity: info
+- id: android.permission.DOWNLOAD_CACHE_NON_PURGEABLE
+ message: android.permission.DOWNLOAD_CACHE_NON_PURGEABLE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.providers
+ - - insert\(
+ input_case: exact
+ severity: info
+- id: android.permission.DOWNLOAD_WITHOUT_NOTIFICATION
+ message: android.permission.DOWNLOAD_WITHOUT_NOTIFICATION
+ type: RegexAndOr
+ pattern:
+ - com\.android\.providers
+ - - insert\(
+ input_case: exact
+ severity: info
+- id: android.permission.WRITE_EXTERNAL_STORAGE
+ message: android.permission.WRITE_EXTERNAL_STORAGE
+ type: RegexAndOr
+ pattern:
+ - com\.android\.providers|java\.io\.FileOutputStream
+ - - FileOutputStream\(
+ - insert\(
+ - openFile\(
+ - write\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_DRM
+ message: android.permission.ACCESS_DRM
+ type: RegexAndOr
+ pattern:
+ - com\.android\.providers
+ - - delete\(
+ - update\(
+ - openAssetFile\(
+ - openFile\(
+ input_case: exact
+ severity: info
+- id: android.permission.INSTALL_DRM
+ message: android.permission.INSTALL_DRM
+ type: RegexAndOr
+ pattern:
+ - com\.android\.providers
+ - - insert\(
+ input_case: exact
+ severity: info
+- id: android.permission.WRITE_APN_SETTINGS
+ message: android.permission.WRITE_APN_SETTINGS
+ type: RegexAndOr
+ pattern:
+ - com\.android\.providers|android\.provider\.Telephony\.ApnSetting\.Builder
+ - - update\(
+ - setApnName\(
+ - setProxyAddress\(
+ - setProxyPort\(
+ - insert\(
+ - setMmsc\(
+ - setMmsProxyPort\(
+ - delete\(
+ - setMmsProxyAddress\(
+ input_case: exact
+ severity: info
+- id: android.permission.CAMERA
+ message: android.permission.CAMERA
+ type: RegexAndOr
+ pattern:
+ - android\.hardware\.Camera|com\.google\.android\.cameraview
+ - - createCaptureSession\(
+ - open\(
+ - TakePicture\(
+ - takePicture\(
+ - isCameraOpened\(
+ - REQUEST_IMAGE_CAPTURE
+ - ACTION_IMAGE_CAPTURE
+ - getCameras\(
+ - getCameraFacing\(
+ - getMaxZoom\(
+ - onCaptureQueueEmpty\(
+ - CAMERA_FACING
+ - LENS_FACING_FRONT
+ - USE_FRONT_CAMERA
+ input_case: exact
+ severity: info
+- id: android.permission.RECORD_AUDIO
+ message: android.permission.RECORD_AUDIO
+ type: RegexAndOr
+ pattern:
+ - android\.media\.AudioRecord|android\.media\.MediaRecorder
+ - - read\(
+ - startRecording\(
+ - setAudioSource\(
+ - setAudioEncoder\(
+ - setOutputFormat\(
+ - setOutputFile\(
+ - start\(
+ - prepare\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_NOTIFICATION_POLICY
+ message: android.permission.ACCESS_NOTIFICATION_POLICY
+ type: RegexAndOr
+ pattern:
+ - android\.app\.NotificationManager
+ - - setInterruptionFilter\(
+ - isNotificationPolicyAccessGranted\(
+ input_case: exact
+ severity: info
+- id: android.permission.BODY_SENSORS
+ message: android.permission.BODY_SENSORS
+ type: RegexAndOr
+ pattern:
+ - android\.hardware\.SensorManager
+ - - getDefaultSensor\(
+ - registerListener\(
+ - unregisterListener\(
+ input_case: exact
+ severity: info
+- id: android.permission.SYSTEM_ALERT_WINDOW
+ message: android.permission.SYSTEM_ALERT_WINDOW
+ type: RegexAndOr
+ pattern:
+ - android\.view\.WindowManager
+ - - addView\(
+ - removeView\(
+ - updateViewLayout\(
+ - getSystemService\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_OWN_CALLS
+ message: android.permission.MANAGE_OWN_CALLS
+ type: RegexAndOr
+ pattern:
+ - android\.telecom\.TelecomManager
+ - - endCall\(
+ - acceptRingingCall\(
+ - silenceRinger\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_SMS
+ message: android.permission.READ_SMS
+ type: RegexAndOr
+ pattern:
+ - android\.content\.ContentResolver
+ - - query\(
+ input_case: exact
+ severity: info
+- id: android.permission.RECEIVE_WAP_PUSH
+ message: android.permission.RECEIVE_WAP_PUSH
+ type: RegexAndOr
+ pattern:
+ - android\.content\.BroadcastReceiver
+ - - onReceive\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_CALL_LOG
+ message: android.permission.READ_CALL_LOG
+ type: RegexAndOr
+ pattern:
+ - android\.content\.ContentResolver
+ - - query\(
+ input_case: exact
+ severity: info
+- id: android.permission.WRITE_CALL_LOG
+ message: android.permission.WRITE_CALL_LOG
+ type: RegexAndOr
+ pattern:
+ - android\.content\.ContentResolver
+ - - update\(
+ - delete\(
+ - insert\(
+ input_case: exact
+ severity: info
+- id: android.permission.ADD_VOICEMAIL
+ message: android.permission.ADD_VOICEMAIL
+ type: RegexAndOr
+ pattern:
+ - android\.provider\.VoicemailContract\.Voicemails
+ - - update\(
+ - insert\(
+ input_case: exact
+ severity: info
+- id: android.permission.PROCESS_OUTGOING_CALLS
+ message: android.permission.PROCESS_OUTGOING_CALLS
+ type: RegexAndOr
+ pattern:
+ - android\.content\.BroadcastReceiver
+ - - onReceive\(
+ - addNewIncomingCall\(
+ - TelephonyManager\.CALL_STATE_OFFHOOK
+ - TelephonyManager\.EXTRA_INCOMING_NUMBER
+ input_case: exact
+ severity: info
+- id: android.permission.ANSWER_PHONE_CALLS
+ message: android.permission.ANSWER_PHONE_CALLS
+ type: RegexAndOr
+ pattern:
+ - android\.telecom\.TelecomManager
+ - - silenceRinger\(
+ - acceptRingingCall\(
+ - endCall\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_PHONE_NUMBERS
+ message: android.permission.READ_PHONE_NUMBERS
+ type: RegexAndOr
+ pattern:
+ - android\.telephony\.TelephonyManager
+ - - getVoiceMailAlphaTag\(
+ - getVoiceMailNumber\(
+ - getLine1Number\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_ACCESSIBILITY_SERVICE
+ message: android.permission.BIND_ACCESSIBILITY_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.accessibilityservice\.AccessibilityService
+ - - onInterrupt\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_AUTOFILL_SERVICE
+ message: android.permission.BIND_AUTOFILL_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.service\.autofill\.AutofillService
+ - - onFillRequest\(
+ - onSaveRequest\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_CALL_REDIRECTION_SERVICE
+ message: android.permission.BIND_CALL_REDIRECTION_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.telecom\.CallRedirectionService
+ - - onSilenceCall\(
+ - onPlaceCall\(
+ - onRejectCall\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_CHOOSER_TARGET_SERVICE
+ message: android.permission.BIND_CHOOSER_TARGET_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.service\.chooser\.ChooserTargetService
+ - - onGetChooserTargets\(
+ - onChoose\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_CONDITION_PROVIDER_SERVICE
+ message: android.permission.BIND_CONDITION_PROVIDER_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.service\.notification\.ConditionProviderService
+ - - onRequestConditions\(
+ - onSubscribe\(
+ - onUnsubscribe\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_DREAM_SERVICE
+ message: android.permission.BIND_DREAM_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.service\.dreams\.DreamService
+ - - onDreamingStopped\(
+ - onDreamingStarted\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_INCALL_SERVICE
+ message: android.permission.BIND_INCALL_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.telecom\.InCallService
+ - - onCallRemoved\(
+ - onCanAddCallChanged\(
+ - onCallAdded\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_INPUT_METHOD
+ message: android.permission.BIND_INPUT_METHOD
+ type: RegexAndOr
+ pattern:
+ - android\.inputmethodservice\.InputMethodService
+ - - onStartInput\(
+ - onBindInput\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_MIDI_DEVICE_SERVICE
+ message: android.permission.BIND_MIDI_DEVICE_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.media\.midi\.MidiDeviceService
+ - - onGetInputPortReceivers\(
+ - onGetOutputPortReceivers\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_NFC_SERVICE
+ message: android.permission.BIND_NFC_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.nfc\.cardemulation\.HostApduService
+ - - onDeactivated\(
+ - processCommandApdu\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_NOTIFICATION_LISTENER_SERVICE
+ message: android.permission.BIND_NOTIFICATION_LISTENER_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.service\.notification
+ - - getSnoozedNotifications\(
+ - cancelAllNotifications\(
+ - getActiveNotifications\(
+ - onNotificationRemoved\(
+ - onListenerDisconnected\(
+ - onNotificationPosted\(
+ - cancelNotification\(
+ - onListenerConnected\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_PRINT_SERVICE
+ message: android.permission.BIND_PRINT_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.printservice\.PrintService
+ - - onPrintJobQueued\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_QUICK_SETTINGS_TILE
+ message: android.permission.BIND_QUICK_SETTINGS_TILE
+ type: RegexAndOr
+ pattern:
+ - android\.service\.quicksettings\.TileService
+ - - onStartListening\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_REMOTEVIEWS
+ message: android.permission.BIND_REMOTEVIEWS
+ type: RegexAndOr
+ pattern:
+ - android\.widget\.RemoteViewsService
+ - - onGetViewFactory\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_SCREENING_SERVICE
+ message: android.permission.BIND_SCREENING_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.telecom\.CallScreeningService
+ - - onScreenCall\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_TELECOM_CONNECTION_SERVICE
+ message: android.permission.BIND_TELECOM_CONNECTION_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.telecom\.ConnectionService
+ - - onHandoverComplete\(
+ - onCreateOutgoingConnectionFailed\(
+ - onCreateOutgoingConnection\(
+ - onCreateIncomingConnection\(
+ - onConference\(
+ - onAddParticipant\(
+ - onCreateIncomingConnectionFailed\(
+ - onHandoverFailed\(
+ - onRemoteRttRequest\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_TEXT_SERVICE
+ message: android.permission.BIND_TEXT_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.service\.textservice\.SpellCheckerService
+ - - onBind\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_TV_INPUT
+ message: android.permission.BIND_TV_INPUT
+ type: RegexAndOr
+ pattern:
+ - android\.media\.tv\.TvInputService
+ - - onSessionCreated\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_VISUAL_VOICEMAIL_SERVICE
+ message: android.permission.BIND_VISUAL_VOICEMAIL_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.telephony\.VisualVoicemailService
+ - - onCellServiceConnected\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_VPN_SERVICE
+ message: android.permission.BIND_VPN_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.net\.VpnService
+ - - addDisallowedApplication\(
+ - addAllowedApplication\(
+ - addRoute\(
+ - addAddress\(
+ - addDnsServer\(
+ - addSearchDomain\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_VR_LISTENER_SERVICE
+ message: android.permission.BIND_VR_LISTENER_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.service\.vr\.VrListenerService
+ - - onBind\(
+ - onUnbind\(
+ - onCurrentVrActivityChanged\(
+ input_case: exact
+ severity: info
+- id: android.permission.BIND_WALLPAPER
+ message: android.permission.BIND_WALLPAPER
+ type: RegexAndOr
+ pattern:
+ - android\.service\.wallpaper\.WallpaperService
+ - - onCreateEngine\(
+ input_case: exact
+ severity: info
+- id: android.permission.MANAGE_DOCUMENTS
+ message: android.permission.MANAGE_DOCUMENTS
+ type: RegexAndOr
+ pattern:
+ - android\.provider\.DocumentsProvider
+ - - queryChildDocuments\(
+ - queryRoots\(
+ - queryDocument\(
+ input_case: exact
+ severity: info
+- id: android.permission.USE_BIOMETRIC
+ message: android.permission.USE_BIOMETRIC
+ type: RegexAndOr
+ pattern:
+ - android\.hardware\.biometrics\.BiometricPrompt
+ - - authenticate\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_VOICEMAIL
+ message: android.permission.READ_VOICEMAIL
+ type: RegexAndOr
+ pattern:
+ - android\.provider\.VoicemailContract\.Voicemails
+ - - query\(
+ input_case: exact
+ severity: info
+- id: android.permission.SET_ALARM
+ message: android.permission.SET_ALARM
+ type: RegexAndOr
+ pattern:
+ - android\.app\.AlarmManager
+ - - setExact\(
+ - setRepeating\(
+ - setInexactRepeating\(
+ - set\(
+ input_case: exact
+ severity: info
+- id: android.permission.UNINSTALL_SHORTCUT
+ message: android.permission.UNINSTALL_SHORTCUT
+ type: RegexAndOr
+ pattern:
+ - android\.content\.pm\.ShortcutManager
+ - - removeDynamicShortcuts\(
+ - disableShortcuts\(
+ - removeAllDynamicShortcuts\(
+ input_case: exact
+ severity: info
+- id: android.permission.WRITE_CALENDAR
+ message: android.permission.WRITE_CALENDAR
+ type: RegexAndOr
+ pattern:
+ - android\.content\.ContentResolver
+ - - insert\(
+ - vnd\.android\.cursor\.item/event
+ input_case: exact
+ severity: info
+- id: android.permission.WRITE_GSERVICES
+ message: android.permission.WRITE_GSERVICES
+ type: RegexAndOr
+ pattern:
+ - com\.google\.android\.gsf\.GoogleServicesFramework
+ - - setSetting\(
+ - setSettingAsBooleanForPackage\(
+ - setSettingForPackage\(
+ input_case: exact
+ severity: info
+- id: android.permission.WRITE_VOICEMAIL
+ message: android.permission.WRITE_VOICEMAIL
+ type: RegexAndOr
+ pattern:
+ - android\.provider\.VoicemailContract\.Voicemails
+ - - update\(
+ - insert\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_BACKGROUND_LOCATION
+ message: android.permission.ACCESS_BACKGROUND_LOCATION
+ type: RegexAndOr
+ pattern:
+ - android\.location\.Location
+ - - requestLocationUpdates\(
+ - addGeofences\(
+ - Manifest\.permission\.ACCESS_BACKGROUND_LOCATION
+ input_case: exact
+ severity: info
+- id: android.permission.ACCESS_MEDIA_LOCATION
+ message: android.permission.ACCESS_MEDIA_LOCATION
+ type: RegexAndOr
+ pattern:
+ - android\.provider\.MediaStore
+ - - Images\.Media\.EXTERNAL_CONTENT_URI
+ - MediaStore\.setRequireOriginal\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACTIVITY_RECOGNITION
+ message: android.permission.ACTIVITY_RECOGNITION
+ type: RegexAndOr
+ pattern:
+ - com\.google\.android\.gms\.location\.ActivityRecognitionClient
+ - - removeActivityUpdates\(
+ - requestActivityUpdates\(
+ input_case: exact
+ severity: info
+- id: android.permission.FOREGROUND_SERVICE
+ message: android.permission.FOREGROUND_SERVICE
+ type: RegexAndOr
+ pattern:
+ - android\.content\.Context
+ - - startForegroundService\(
+ input_case: exact
+ severity: info
+- id: android.permission.POST_NOTIFICATIONS
+ message: android.permission.POST_NOTIFICATIONS
+ type: RegexAndOr
+ pattern:
+ - android\.app\.NotificationManager
+ - - notify\(
+ - notifyAsPackage\(
+ input_case: exact
+ severity: info
+- id: android.permission.BLUETOOTH_CONNECT
+ message: android.permission.BLUETOOTH_CONNECT
+ type: RegexAndOr
+ pattern:
+ - android\.bluetooth\.BluetoothDevice
+ - - setPairingConfirmation\(
+ - connect\(
+ - createBond\(
+ input_case: exact
+ severity: info
+- id: android.permission.BLUETOOTH_SCAN
+ message: android.permission.BLUETOOTH_SCAN
+ type: RegexAndOr
+ pattern:
+ - android\.bluetooth\.BluetoothAdapter
+ - - getBluetoothLeScanner\(
+ - getRemoteDevice\(
+ - startDiscovery\(
+ input_case: exact
+ severity: info
+- id: android.permission.USE_FULL_SCREEN_INTENT
+ message: android.permission.USE_FULL_SCREEN_INTENT
+ type: RegexAndOr
+ pattern:
+ - android\.app\.Notification\.Builder
+ - - setFullScreenIntent\(
+ input_case: exact
+ severity: info
+- id: android.permission.REQUEST_INSTALL_PACKAGES
+ message: android.permission.REQUEST_INSTALL_PACKAGES
+ type: RegexAndOr
+ pattern:
+ - android\.content\.pm\.PackageManager
+ - - installPackage\(
+ - deletePackage\(
+ input_case: exact
+ severity: info
+- id: android.permission.ACCEPT_HANDOVER
+ message: android.permission.ACCEPT_HANDOVER
+ type: RegexAndOr
+ pattern:
+ - android\.telecom\.ConnectionService
+ - - onHandoverComplete\(
+ - onHandoverFailed\(
+ input_case: exact
+ severity: info
+- id: android.permission.READ_CALENDAR
+ message: android.permission.READ_CALENDAR
+ type: RegexAndOr
+ pattern:
+ - android\.content\.ContentResolver
+ - - query\(
+ - readEventsAsync\(
+ - getCalendarsById\(
+ - setEventsQueryToken\(
+ input_case: exact
+ severity: info
+- id: android.permission.QUERY_ALL_PACKAGES
+ message: android.permission.QUERY_ALL_PACKAGES
+ type: RegexAndOr
+ pattern:
+ - android\.content\.pm\.PackageManager
+ - - queryIntentActivities\(
+ input_case: exact
+ severity: info
+- id: android.permission.FLASHLIGHT
+ message: android.permission.FLASHLIGHT
+ type: RegexAndOr
+ pattern:
+ - android\.hardware\.camera
+ - - TorchCallback\(
+ - setTorchMode\(
+ - unregisterTorchCallback\(
+ - registerTorchCallback\(
+ input_case: exact
+ severity: info
+- id: com.google.android.c2dm.permission.RECEIVE
+ message: com.google.android.c2dm.permission.RECEIVE
+ type: RegexAndOr
+ pattern:
+ - android\.content\.Intent
+ - - com\.google\.android\.c2dm\.intent\.REGISTRATION"
+ input_case: exact
+ severity: info
+- id: com.google.android.c2dm.permission.SEND
+ message: com.google.android.c2dm.permission.SEND
+ type: RegexAndOr
+ pattern:
+ - android\.content\.Intent
+ - - com\.google\.android\.c2dm\.intent\.REGISTER
+ input_case: exact
+ severity: info
\ No newline at end of file
diff --git a/mobsf/StaticAnalyzer/views/android/so.py b/mobsf/StaticAnalyzer/views/android/so.py
index 7d1ec9b9fd..e1ce96a26a 100644
--- a/mobsf/StaticAnalyzer/views/android/so.py
+++ b/mobsf/StaticAnalyzer/views/android/so.py
@@ -98,6 +98,7 @@ def so_analysis(request, app_dic, rescan, api):
apkid_results = {}
code_an_dic = {
'api': {},
+ 'perm_mappings': {},
'findings': {},
'niap': {},
'urls_list': [],
diff --git a/mobsf/StaticAnalyzer/views/android/static_analyzer.py b/mobsf/StaticAnalyzer/views/android/static_analyzer.py
index 8fd28ce131..12a0be6054 100755
--- a/mobsf/StaticAnalyzer/views/android/static_analyzer.py
+++ b/mobsf/StaticAnalyzer/views/android/static_analyzer.py
@@ -235,7 +235,8 @@ def static_analyzer(request, checksum, api=False):
code_an_dic = code_analysis(
app_dic['app_dir'],
'apk',
- app_dic['manifest_file'])
+ app_dic['manifest_file'],
+ man_data_dic['perm'])
quark_results = quark_analysis(
app_dic['app_dir'],
@@ -381,7 +382,8 @@ def static_analyzer(request, checksum, api=False):
code_an_dic = code_analysis(
app_dic['app_dir'],
pro_type,
- app_dic['manifest_file'])
+ app_dic['manifest_file'],
+ man_data_dic['perm'])
# Get the strings and metadata
get_strings_metadata(
diff --git a/mobsf/StaticAnalyzer/views/ios/db_interaction.py b/mobsf/StaticAnalyzer/views/ios/db_interaction.py
index 0ec13bdc77..fe2f530841 100755
--- a/mobsf/StaticAnalyzer/views/ios/db_interaction.py
+++ b/mobsf/StaticAnalyzer/views/ios/db_interaction.py
@@ -209,23 +209,18 @@ def save_get_ctx(app_dict, pdict, code_dict, bin_dict, all_files, rescan):
logger.info('Connecting to DB')
if rescan:
logger.info('Updating Database...')
- save_or_update(
- 'update',
- app_dict,
- pdict,
- code_dict,
- bin_dict,
- all_files)
+ action = 'update'
update_scan_timestamp(app_dict['md5_hash'])
else:
logger.info('Saving to Database')
- save_or_update(
- 'save',
- app_dict,
- pdict,
- code_dict,
- bin_dict,
- all_files)
+ action = 'save'
+ save_or_update(
+ action,
+ app_dict,
+ pdict,
+ code_dict,
+ bin_dict,
+ all_files)
return get_context_from_analysis(
app_dict,
pdict,
diff --git a/mobsf/templates/static_analysis/android_binary_analysis.html b/mobsf/templates/static_analysis/android_binary_analysis.html
index b8bb82b1bf..62b46a2ccb 100755
--- a/mobsf/templates/static_analysis/android_binary_analysis.html
+++ b/mobsf/templates/static_analysis/android_binary_analysis.html
@@ -751,6 +751,7 @@
{{ providers | length }}
STATUS |
INFO |
DESCRIPTION |
+ CODE MAPPINGS |
@@ -772,6 +773,25 @@ {{ providers | length }}
{{ desc.info }} |
{{ desc.description }} |
+
+ {% if perm in permission_mapping %}
+
+ Show Files
+
+
+ {% for k, v in permission_mapping.items %}
+ {% if k == perm %}
+ {% for file_path, lines in v.items %}
+
+ {{ file_path }}
+
+
+ {% endfor %}
+ {% endif %}
+ {% endfor %}
+
+ {% endif %}
+ |
{% endfor %}
diff --git a/mobsf/templates/static_analysis/android_source_analysis.html b/mobsf/templates/static_analysis/android_source_analysis.html
index 7f8444314c..e07c11a2ef 100755
--- a/mobsf/templates/static_analysis/android_source_analysis.html
+++ b/mobsf/templates/static_analysis/android_source_analysis.html
@@ -567,6 +567,7 @@ {{ providers | length }}
STATUS |
INFO |
DESCRIPTION |
+ CODE MAPPINGS |
@@ -588,6 +589,25 @@ {{ providers | length }}
{{ desc.info }} |
{{ desc.description }} |
+
+ {% if perm in permission_mapping %}
+
+ Show Files
+
+
+ {% for k, v in permission_mapping.items %}
+ {% if k == perm %}
+ {% for file_path, lines in v.items %}
+
+ {{ file_path }}
+
+
+ {% endfor %}
+ {% endif %}
+ {% endfor %}
+
+ {% endif %}
+ |
{% endfor %}