android-app-persistence/app/.Makefile.scripts/make--app-config.sh

691 lines
70 KiB
Bash
Executable file

#!/bin/bash
test -f app-config.sh && {
source app-config.sh
}
set -e
test -n "$LINES" || {
eval $(resize 2>/dev/null)
}
test -n "$LINES" || {
read -r LINES COLUMNS < <(stty size)
}
test -n "$LINES" || {
LINES=25
COLUMS=80
}
type whiptail &>/dev/null && {
ECHO(){
whiptail --msgbox "$1" $((LINES - 6)) $(( $COLUMNS - 6)) --title "incorrect input"
}
READ(){
whiptail --inputbox "$1" $((LINES - 6)) $(( $COLUMNS - 6)) --title "$2" 3>&1 1>&2 2>&3
}
} || {
ECHO(){
echo "$1"
read -N 1 OK
}
READ(){
cat >&2 << EOF
---------------------------------------------
$2
---------------------------------------------
$1
EOF
read RESULT
echo "$RESULT"
}
}
#APP_NAME
while test -z "${APP_NAME:-}"
do
APP_NAME="$(READ 'Please choose the name of the app: ' 'Create new Android-App step (1/)')"
done
#APP_PACKAGE
while test -z "${APP_PACKAGE:-}"
do
APP_PACKAGE_DEFAULT="${APP_NAME,,}"
APP_PACKAGE_DEFAULT="app.${APP_PACKAGE_DEFAULT//[!a-z0-9]/_}"
APP_PACKAGE="$(READ "Please provide a Package.Name for the App [default=$APP_PACKAGE_DEFAULT]: " 'Create new Android-App step (2/)' )"
APP_PACKAGE="${APP_PACKAGE:-$APP_PACKAGE_DEFAULT}"
APP_PACKAGE="${APP_PACKAGE,,}"
APP_PACKAGE="${APP_PACKAGE//[!a-z0-9\.]/}"
grep -qe '_\._' <<< "${APP_PACKAGE//[^.]/_}" || {
APP_PACKAGE=""
ECHO "error: package name needs to contain a '.' (dot)"
}
done
#APP_VERSION_SDK_TARGET
while test -z "${APP_VERSION_SDK_TARGET:-}"
do
APP_VERSION_SDK_TARGET_DEFAULT="33"
APP_VERSION_SDK_TARGET="$(READ "$(cat << API_LEVELS
Please Choose the Target SDK Version:
please choose [default=$APP_VERSION_SDK_TARGET_DEFAULT]:
35 = android 15 = 2024
34 = android 14 = 2023
33 = android 13 = 2022
32 = android 12l = 2022
31 = android 12 = 2021
30 = android 11 = 2020
20 = android 10 = 2019
(see https://apilevels.com/ for more info)
API_LEVELS
)" 'Create new Android-App step (4/)' )"
APP_VERSION_SDK_TARGET="${APP_VERSION_SDK_TARGET:-$APP_VERSION_SDK_TARGET_DEFAULT}"
test "$APP_VERSION_SDK_TARGET" -gt 0 || {
ECHO "error: APP_VERSION_SDK_TARGET '$APP_VERSION_SDK_TARGET' is not valid"
APP_VERSION_SDK_TARGET='';
}
done
#APP_VERSION_SDK_TARGET
while test -z "${APP_VERSION_SDK_MIN:-}"
do
APP_VERSION_SDK_MIN_DEFAULT="$(( $APP_VERSION_SDK_TARGET - 3))"
APP_VERSION_SDK_MIN="$(READ "$(cat << API_LEVELS
Please Choose the Target SDK Version:
please choose [default=$APP_VERSION_SDK_MIN_DEFAULT]:
35 = android 15 = 2024
34 = android 14 = 2023
33 = android 13 = 2022
32 = android 12l = 2022
31 = android 12 = 2021
30 = android 11 = 2020
20 = android 10 = 2019
(see https://apilevels.com/ for more info)
API_LEVELS
)" 'Create new Android-App step (5/)' )"
APP_VERSION_SDK_MIN="${APP_VERSION_SDK_MIN:-$APP_VERSION_SDK_MIN_DEFAULT}"
test "$APP_VERSION_SDK_MIN" -gt 0 || {
ECHO "error: APP_VERSION_SDK_MIN '$APP_VERSION_SDK_MIN' is not valid"
APP_VERSION_SDK_TARGET='';
}
done
APP_PERMISSIONS="${APP_PERMISSIONS:-"$(whiptail --nocancel --notags --checklist "please select the permissions" $((LINES - 6)) $(( $COLUMNS - 6)) $((LINES -14 )) 'android.permission.ACCEPT_HANDOVER' 'ACCEPT_HANDOVER - Allows a calling app to continue a call which was started in another app.' 0 \
'android.permission.INTERNET' 'INTERNET - Allows applications to open network sockets.' 1 \
'android.permission.READ_MEDIA_AUDIO' 'READ_MEDIA_AUDIO - Allows an application to read audio files from external storage.' 1 \
'android.permission.READ_MEDIA_IMAGES' 'READ_MEDIA_IMAGES - Allows an application to read image files from external storage.' 1 \
'android.permission.READ_MEDIA_VIDEO' 'READ_MEDIA_VIDEO - Allows an application to read video files from external storage.' 1 \
'android.permission.READ_MEDIA_VISUAL_USER_SELECTED' 'READ_MEDIA_VISUAL_USER_SELECTED - Allows an application to read image or video files from external storage that a user has selected via the permission prompt photo picker.' 1 \
'android.permission.POST_NOTIFICATIONS' 'POST_NOTIFICATIONS - Allows an app to post notifications' 1 \
'android.permission.ACCESS_ALL_DOWNLOADS' 'ACCESS_ALL_DOWNLOADS' 0 \
'android.permission.ACCESS_BACKGROUND_LOCATION' 'ACCESS_BACKGROUND_LOCATION - Allows an app to access location in the background.' 0 \
'android.permission.ACCESS_BLOBS_ACROSS_USERS' 'ACCESS_BLOBS_ACROSS_USERS - Allows an application to access data blobs across users.' 0 \
'android.permission.ACCESS_BLUETOOTH_SHARE' 'ACCESS_BLUETOOTH_SHARE' 0 \
'android.permission.ACCESS_CACHE_FILESYSTEM' 'ACCESS_CACHE_FILESYSTEM' 0 \
'android.permission.ACCESS_CHECKIN_PROPERTIES' 'ACCESS_CHECKIN_PROPERTIES - Allows read/write access to the "properties" table in the checkin database, to change values that get uploaded.' 0 \
'android.permission.ACCESS_COARSE_LOCATION' 'ACCESS_COARSE_LOCATION - Allows an app to access approximate location.' 0 \
'android.permission.ACCESS_CONTENT_PROVIDERS_EXTERNALLY' 'ACCESS_CONTENT_PROVIDERS_EXTERNALLY' 0 \
'android.permission.ACCESS_DOWNLOAD_MANAGER' 'ACCESS_DOWNLOAD_MANAGER' 0 \
'android.permission.ACCESS_DOWNLOAD_MANAGER_ADVANCED' 'ACCESS_DOWNLOAD_MANAGER_ADVANCED' 0 \
'android.permission.ACCESS_DRM_CERTIFICATES' 'ACCESS_DRM_CERTIFICATES' 0 \
'android.permission.ACCESS_EPHEMERAL_APPS' 'ACCESS_EPHEMERAL_APPS' 0 \
'android.permission.ACCESS_FINE_LOCATION' 'ACCESS_FINE_LOCATION - Allows an app to access precise location.' 0 \
'android.permission.ACCESS_FM_RADIO' 'ACCESS_FM_RADIO' 0 \
'android.permission.ACCESS_HIDDEN_PROFILES' 'ACCESS_HIDDEN_PROFILES - Allows applications to access profiles with android.content.pm.UserProperties#PROFILE_API_VISIBILITY_HIDDEN user property, e.g.' 0 \
'android.permission.ACCESS_INPUT_FLINGER' 'ACCESS_INPUT_FLINGER' 0 \
'android.permission.ACCESS_KEYGUARD_SECURE_STORAGE' 'ACCESS_KEYGUARD_SECURE_STORAGE' 0 \
'android.permission.ACCESS_LOCATION_EXTRA_COMMANDS' 'ACCESS_LOCATION_EXTRA_COMMANDS - Allows an application to access extra location provider commands.' 0 \
'android.permission.ACCESS_MEDIA_LOCATION' 'ACCESS_MEDIA_LOCATION - Allows an application to access any geographic locations persisted in the users shared collection.' 0 \
'android.permission.ACCESS_MOCK_LOCATION' 'ACCESS_MOCK_LOCATION' 0 \
'android.permission.ACCESS_MTP' 'ACCESS_MTP' 0 \
'android.permission.ACCESS_NETWORK_CONDITIONS' 'ACCESS_NETWORK_CONDITIONS' 0 \
'android.permission.ACCESS_NETWORK_STATE' 'ACCESS_NETWORK_STATE - Allows applications to access information about networks.' 0 \
'android.permission.ACCESS_NOTIFICATIONS' 'ACCESS_NOTIFICATIONS' 0 \
'android.permission.ACCESS_NOTIFICATION_POLICY' 'ACCESS_NOTIFICATION_POLICY - Marker permission for applications that wish to access notification policy.' 0 \
'android.permission.ACCESS_PDB_STATE' 'ACCESS_PDB_STATE' 0 \
'android.permission.ACCESS_SURFACE_FLINGER' 'ACCESS_SURFACE_FLINGER' 0 \
'android.permission.ACCESS_VOICE_INTERACTION_SERVICE' 'ACCESS_VOICE_INTERACTION_SERVICE' 0 \
'android.permission.ACCESS_VR_MANAGER' 'ACCESS_VR_MANAGER' 0 \
'android.permission.ACCESS_WIFI_STATE' 'ACCESS_WIFI_STATE - Allows applications to access information about Wi-Fi networks.' 0 \
'android.permission.ACCESS_WIMAX_STATE' 'ACCESS_WIMAX_STATE' 0 \
'android.permission.ACCOUNT_MANAGER' 'ACCOUNT_MANAGER - Allows applications to call into AccountAuthenticators.' 0 \
'android.permission.ACTIVITY_RECOGNITION' 'ACTIVITY_RECOGNITION - Allows an application to recognize physical activity.' 0 \
'android.permission.ADD_VOICEMAIL' 'ADD_VOICEMAIL - Allows an application to add voicemails into the system.' 0 \
'android.permission.ALLOW_ANY_CODEC_FOR_PLAYBACK' 'ALLOW_ANY_CODEC_FOR_PLAYBACK' 0 \
'android.permission.ANSWER_PHONE_CALLS' 'ANSWER_PHONE_CALLS - Allows the app to answer an incoming phone call.' 0 \
'android.permission.ASEC_ACCESS' 'ASEC_ACCESS' 0 \
'android.permission.ASEC_CREATE' 'ASEC_CREATE' 0 \
'android.permission.ASEC_DESTROY' 'ASEC_DESTROY' 0 \
'android.permission.ASEC_MOUNT_UNMOUNT' 'ASEC_MOUNT_UNMOUNT' 0 \
'android.permission.ASEC_RENAME' 'ASEC_RENAME' 0 \
'android.permission.AUTHENTICATE_ACCOUNTS' 'AUTHENTICATE_ACCOUNTS' 0 \
'android.permission.BACKUP' 'BACKUP' 0 \
'android.permission.BATTERY_STATS' 'BATTERY_STATS - Allows an application to collect battery statistics' 0 \
'android.permission.BATTERY_STATS' 'BATTERY_STATS - Protection level: signature|privileged|development' 0 \
'android.permission.BIND_ACCESSIBILITY_SERVICE' 'BIND_ACCESSIBILITY_SERVICE - Must be required by an AccessibilityService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_APPWIDGET' 'BIND_APPWIDGET - Allows an application to tell the AppWidget service which application can access AppWidgets data.' 0 \
'android.permission.BIND_APP_FUNCTION_SERVICE' 'BIND_APP_FUNCTION_SERVICE - Must be required by an AppFunctionService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_AUTOFILL_SERVICE' 'BIND_AUTOFILL_SERVICE - Must be required by a AutofillService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_CALL_REDIRECTION_SERVICE' 'BIND_CALL_REDIRECTION_SERVICE - Must be required by a CallRedirectionService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_CARRIER_MESSAGING_CLIENT_SERVICE' 'BIND_CARRIER_MESSAGING_CLIENT_SERVICE - A subclass of CarrierMessagingClientService must be protected with this permission.' 0 \
'android.permission.BIND_CARRIER_MESSAGING_SERVICE' 'BIND_CARRIER_MESSAGING_SERVICE - This constant was deprecated in API level 23. Use BIND_CARRIER_SERVICES instead' 0 \
'android.permission.BIND_CARRIER_SERVICES' 'BIND_CARRIER_SERVICES - The system process that is allowed to bind to services in carrier apps will have this permission.' 0 \
'android.permission.BIND_CHOOSER_TARGET_SERVICE' 'BIND_CHOOSER_TARGET_SERVICE - This constant was deprecated in API level 30. For publishing direct share targets, please follow the instructions in https://developer.android.com/training/sharing/receive.html#providing-direct-share-targets instead.' 0 \
'android.permission.BIND_COMPANION_DEVICE_SERVICE' 'BIND_COMPANION_DEVICE_SERVICE - Must be required by any CompanionDeviceServices to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_CONDITION_PROVIDER_SERVICE' 'BIND_CONDITION_PROVIDER_SERVICE - Must be required by a ConditionProviderService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_CONNECTION_SERVICE' 'BIND_CONNECTION_SERVICE' 0 \
'android.permission.BIND_CONTROLS' 'BIND_CONTROLS - Allows SystemUI to request third party controls.' 0 \
'android.permission.BIND_CREDENTIAL_PROVIDER_SERVICE' 'BIND_CREDENTIAL_PROVIDER_SERVICE - Must be required by a CredentialProviderService to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_DEVICE_ADMIN' 'BIND_DEVICE_ADMIN - Must be required by device administration receiver, to ensure that only the system can interact with it.' 0 \
'android.permission.BIND_DIRECTORY_SEARCH' 'BIND_DIRECTORY_SEARCH' 0 \
'android.permission.BIND_DREAM_SERVICE' 'BIND_DREAM_SERVICE - Must be required by an DreamService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_INCALL_SERVICE' 'BIND_INCALL_SERVICE - Must be required by a InCallService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_INPUT_METHOD' 'BIND_INPUT_METHOD - Must be required by an InputMethodService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_INTENT_FILTER_VERIFIER' 'BIND_INTENT_FILTER_VERIFIER' 0 \
'android.permission.BIND_JOB_SERVICE' 'BIND_JOB_SERVICE' 0 \
'android.permission.BIND_KEYGUARD_APPWIDGET' 'BIND_KEYGUARD_APPWIDGET' 0 \
'android.permission.BIND_MIDI_DEVICE_SERVICE' 'BIND_MIDI_DEVICE_SERVICE - Must be required by an MidiDeviceService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_NFC_SERVICE' 'BIND_NFC_SERVICE - Must be required by a HostApduService or OffHostApduService to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_NOTIFICATION_LISTENER_SERVICE' 'BIND_NOTIFICATION_LISTENER_SERVICE - Must be required by an NotificationListenerService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_NOTIFICATION_RANKER_SERVICE' 'BIND_NOTIFICATION_RANKER_SERVICE' 0 \
'android.permission.BIND_PACKAGE_VERIFIER' 'BIND_PACKAGE_VERIFIER' 0 \
'android.permission.BIND_PRINT_RECOMMENDATION_SERVICE' 'BIND_PRINT_RECOMMENDATION_SERVICE' 0 \
'android.permission.BIND_PRINT_SERVICE' 'BIND_PRINT_SERVICE - Must be required by a PrintService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_PRINT_SPOOLER_SERVICE' 'BIND_PRINT_SPOOLER_SERVICE' 0 \
'android.permission.BIND_QUICK_ACCESS_WALLET_SERVICE' 'BIND_QUICK_ACCESS_WALLET_SERVICE - Must be required by a QuickAccessWalletService to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_QUICK_SETTINGS_TILE' 'BIND_QUICK_SETTINGS_TILE - Allows an application to bind to third party quick settings tiles.' 0 \
'android.permission.BIND_REMOTEVIEWS' 'BIND_REMOTEVIEWS - Must be required by a RemoteViewsService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_REMOTE_DISPLAY' 'BIND_REMOTE_DISPLAY' 0 \
'android.permission.BIND_ROUTE_PROVIDER' 'BIND_ROUTE_PROVIDER' 0 \
'android.permission.BIND_RUNTIME_PERMISSION_PRESENTER_SERVICE' 'BIND_RUNTIME_PERMISSION_PRESENTER_SERVICE' 0 \
'android.permission.BIND_SCREENING_SERVICE' 'BIND_SCREENING_SERVICE - Must be required by a CallScreeningService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_TELECOM_CONNECTION_SERVICE' 'BIND_TELECOM_CONNECTION_SERVICE - Must be required by a ConnectionService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_TEXT_SERVICE' 'BIND_TEXT_SERVICE - Must be required by a TextService (e.g.SpellCheckerService) to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_TRUST_AGENT' 'BIND_TRUST_AGENT' 0 \
'android.permission.BIND_TV_INPUT' 'BIND_TV_INPUT - Must be required by a TvInputService to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_TV_INTERACTIVE_APP' 'BIND_TV_INTERACTIVE_APP - Must be required by a TvInteractiveAppService to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_TV_REMOTE_SERVICE' 'BIND_TV_REMOTE_SERVICE' 0 \
'android.permission.BIND_VISUAL_VOICEMAIL_SERVICE' 'BIND_VISUAL_VOICEMAIL_SERVICE - Must be required by a link VisualVoicemailService to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_VOICE_INTERACTION' 'BIND_VOICE_INTERACTION - Must be required by a VoiceInteractionService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_VPN_SERVICE' 'BIND_VPN_SERVICE - Must be required by a VpnService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_VR_LISTENER_SERVICE' 'BIND_VR_LISTENER_SERVICE - Must be required by an VrListenerService, to ensure that only the system can bind to it.' 0 \
'android.permission.BIND_WALLPAPER' 'BIND_WALLPAPER - Must be required by a WallpaperService, to ensure that only the system can bind to it.' 0 \
'android.permission.BLUETOOTH' 'BLUETOOTH - Allows applications to connect to paired bluetooth devices.' 0 \
'android.permission.BLUETOOTH_ADMIN' 'BLUETOOTH_ADMIN - Allows applications to discover and pair bluetooth devices.' 0 \
'android.permission.BLUETOOTH_ADVERTISE' 'BLUETOOTH_ADVERTISE - Required to be able to advertise to nearby Bluetooth devices.' 0 \
'android.permission.BLUETOOTH_CONNECT' 'BLUETOOTH_CONNECT - Required to be able to connect to paired Bluetooth devices.' 0 \
'android.permission.BLUETOOTH_MAP' 'BLUETOOTH_MAP' 0 \
'android.permission.BLUETOOTH_PRIVILEGED' 'BLUETOOTH_PRIVILEGED - Allows applications to pair bluetooth devices without user interaction, and to allow or disallow phonebook access or message access.' 0 \
'android.permission.BLUETOOTH_SCAN' 'BLUETOOTH_SCAN - Required to be able to discover and pair nearby Bluetooth devices.' 0 \
'android.permission.BLUETOOTH_STACK' 'BLUETOOTH_STACK' 0 \
'android.permission.BODY_SENSORS' 'BODY_SENSORS - Allows an application to access data from sensors that the user uses to measure what is happening inside their body, such as heart rate.' 0 \
'android.permission.BODY_SENSORS_BACKGROUND' 'BODY_SENSORS_BACKGROUND - Allows an application to access data from sensors that the user uses to measure what is happening inside their body, such as heart rate.' 0 \
'android.permission.BRICK' 'BRICK' 0 \
'android.permission.BROADCAST_CALLLOG_INFO' 'BROADCAST_CALLLOG_INFO' 0 \
'android.permission.BROADCAST_NETWORK_PRIVILEGED' 'BROADCAST_NETWORK_PRIVILEGED' 0 \
'android.permission.BROADCAST_PACKAGE_REMOVED' 'BROADCAST_PACKAGE_REMOVED - Allows an application to broadcast a notification that an application package has been removed.' 0 \
'android.permission.BROADCAST_PHONE_ACCOUNT_REGISTRATION' 'BROADCAST_PHONE_ACCOUNT_REGISTRATION' 0 \
'android.permission.BROADCAST_SMS' 'BROADCAST_SMS - Allows an application to broadcast an SMS receipt notification.' 0 \
'android.permission.BROADCAST_STICKY' 'BROADCAST_STICKY - Allows an application to broadcast sticky intents.' 0 \
'android.permission.BROADCAST_WAP_PUSH' 'BROADCAST_WAP_PUSH - Allows an application to broadcast a WAP PUSH receipt notification.' 0 \
'android.permission.CACHE_CONTENT' 'CACHE_CONTENT' 0 \
'android.permission.CALL_COMPANION_APP' 'CALL_COMPANION_APP - Allows an app which implements the InCallService API to be eligible to be enabled as a calling companion app.' 0 \
'android.permission.CALL_PHONE' 'CALL_PHONE - Allows an application to initiate a phone call without going through the Dialer user interface for the user to confirm the call.' 0 \
'android.permission.CALL_PRIVILEGED' 'CALL_PRIVILEGED - Allows an application to call any phone number, including emergency numbers, without going through the Dialer user interface for the user to confirm the call being placed.' 0 \
'android.permission.CAMERA' 'CAMERA - Required to be able to access the camera device.' 0 \
'android.permission.CAMERA_DISABLE_TRANSMIT_LED' 'CAMERA_DISABLE_TRANSMIT_LED' 0 \
'android.permission.CAMERA_SEND_SYSTEM_EVENTS' 'CAMERA_SEND_SYSTEM_EVENTS' 0 \
'android.permission.CAPTURE_AUDIO_HOTWORD' 'CAPTURE_AUDIO_HOTWORD' 0 \
'android.permission.CAPTURE_AUDIO_OUTPUT' 'CAPTURE_AUDIO_OUTPUT - Allows an application to capture audio output.' 0 \
'android.permission.CAPTURE_SECURE_VIDEO_OUTPUT' 'CAPTURE_SECURE_VIDEO_OUTPUT' 0 \
'android.permission.CAPTURE_TV_INPUT' 'CAPTURE_TV_INPUT' 0 \
'android.permission.CAPTURE_VIDEO_OUTPUT' 'CAPTURE_VIDEO_OUTPUT' 0 \
'android.permission.CARRIER_FILTER_SMS' 'CARRIER_FILTER_SMS' 0 \
'android.permission.CHANGE_APP_IDLE_STATE' 'CHANGE_APP_IDLE_STATE' 0 \
'android.permission.CHANGE_BACKGROUND_DATA_SETTING' 'CHANGE_BACKGROUND_DATA_SETTING' 0 \
'android.permission.CHANGE_COMPONENT_ENABLED_STATE' 'CHANGE_COMPONENT_ENABLED_STATE - Allows an application to change whether an application component (other than its own) is enabled or not.' 0 \
'android.permission.CHANGE_CONFIGURATION' 'CHANGE_CONFIGURATION - Allows an application to modify the current configuration, such as locale.' 0 \
'android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST' 'CHANGE_DEVICE_IDLE_TEMP_WHITELIST' 0 \
'android.permission.CHANGE_NETWORK_STATE' 'CHANGE_NETWORK_STATE - Allows applications to change network connectivity state.' 0 \
'android.permission.CHANGE_WIFI_MULTICAST_STATE' 'CHANGE_WIFI_MULTICAST_STATE - Allows applications to enter Wi-Fi Multicast mode.' 0 \
'android.permission.CHANGE_WIFI_STATE' 'CHANGE_WIFI_STATE - Allows applications to change Wi-Fi connectivity state.' 0 \
'android.permission.CHANGE_WIMAX_STATE' 'CHANGE_WIMAX_STATE' 0 \
'android.permission.CLEAR_APP_CACHE' 'CLEAR_APP_CACHE - Allows an application to clear the caches of all installed applications on the device.' 0 \
'android.permission.CLEAR_APP_GRANTED_URI_PERMISSIONS' 'CLEAR_APP_GRANTED_URI_PERMISSIONS' 0 \
'android.permission.CLEAR_APP_USER_DATA' 'CLEAR_APP_USER_DATA' 0 \
'android.permission.CONFIGURE_DISPLAY_COLOR_TRANSFORM' 'CONFIGURE_DISPLAY_COLOR_TRANSFORM' 0 \
'android.permission.CONFIGURE_WIFI_DISPLAY' 'CONFIGURE_WIFI_DISPLAY - Allows an application to configure and connect to Wifi displays' 0 \
'android.permission.CONFIRM_FULL_BACKUP' 'CONFIRM_FULL_BACKUP' 0 \
'android.permission.CONNECTIVITY_INTERNAL' 'CONNECTIVITY_INTERNAL' 0 \
'android.permission.CONTROL_INCALL_EXPERIENCE' 'CONTROL_INCALL_EXPERIENCE' 0 \
'android.permission.CONTROL_KEYGUARD' 'CONTROL_KEYGUARD' 0 \
'android.permission.CONTROL_LOCATION_UPDATES' 'CONTROL_LOCATION_UPDATES - Allows enabling/disabling location update notifications from the radio.' 0 \
'android.permission.CONTROL_VPN' 'CONTROL_VPN' 0 \
'android.permission.CONTROL_WIFI_DISPLAY' 'CONTROL_WIFI_DISPLAY' 0 \
'android.permission.COPY_PROTECTED_DATA' 'COPY_PROTECTED_DATA' 0 \
'android.permission.CREATE_USERS' 'CREATE_USERS' 0 \
'android.permission.CREDENTIAL_MANAGER_QUERY_CANDIDATE_CREDENTIALS' 'CREDENTIAL_MANAGER_QUERY_CANDIDATE_CREDENTIALS - Allows a browser to invoke the set of query apis to get metadata about credential candidates prepared during the CredentialManager.prepareGetCredential API.' 0 \
'android.permission.CREDENTIAL_MANAGER_SET_ALLOWED_PROVIDERS' 'CREDENTIAL_MANAGER_SET_ALLOWED_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.' 0 \
'android.permission.CREDENTIAL_MANAGER_SET_ORIGIN' 'CREDENTIAL_MANAGER_SET_ORIGIN - Allows a browser to invoke credential manager APIs on behalf of another RP.' 0 \
'android.permission.CRYPT_KEEPER' 'CRYPT_KEEPER' 0 \
'android.permission.DELETE_CACHE_FILES' 'DELETE_CACHE_FILES - Old permission for deleting an apps cache files, no longer used, but signals for us to quietly ignore calls instead of throwing an exception.' 0 \
'android.permission.DELETE_PACKAGES' 'DELETE_PACKAGES - Allows an application to delete packages.' 0 \
'android.permission.DELIVER_COMPANION_MESSAGES' 'DELIVER_COMPANION_MESSAGES - Allows an application to deliver companion messages to system' 0 \
'android.permission.DETECT_SCREEN_CAPTURE' 'DETECT_SCREEN_CAPTURE - Allows an application to get notified when a screen capture of its windows is attempted.' 0 \
'android.permission.DETECT_SCREEN_RECORDING' 'DETECT_SCREEN_RECORDING - Allows an application to get notified when it is being recorded.' 0 \
'android.permission.DEVICE_POWER' 'DEVICE_POWER' 0 \
'android.permission.DIAGNOSTIC' 'DIAGNOSTIC - Allows applications to RW to diagnostic resources.' 0 \
'android.permission.DISABLE_KEYGUARD' 'DISABLE_KEYGUARD - Allows applications to disable the keyguard if it is not secure.' 0 \
'android.permission.DISPATCH_NFC_MESSAGE' 'DISPATCH_NFC_MESSAGE' 0 \
'android.permission.DISPATCH_PROVISIONING_MESSAGE' 'DISPATCH_PROVISIONING_MESSAGE' 0 \
'android.permission.DOWNLOAD_CACHE_NON_PURGEABLE' 'DOWNLOAD_CACHE_NON_PURGEABLE' 0 \
'android.permission.DUMP' 'DUMP - Allows an application to retrieve state dump information from system services.' 0 \
'android.permission.DVB_DEVICE' 'DVB_DEVICE' 0 \
'android.permission.ENFORCE_UPDATE_OWNERSHIP' 'ENFORCE_UPDATE_OWNERSHIP - Allows an application to indicate via PackageInstaller.SessionParams.setRequestUpdateOwnership(boolean) that it has the intention of becoming the update owner.' 0 \
'android.permission.EXECUTE_APP_ACTION' 'EXECUTE_APP_ACTION - Allows an assistive application to perform actions on behalf of users inside of applications.' 0 \
'android.permission.EXPAND_STATUS_BAR' 'EXPAND_STATUS_BAR - Allows an application to expand or collapse the status bar.' 0 \
'android.permission.FACTORY_TEST' 'FACTORY_TEST - Run as a manufacturer test application, running as the root user.' 0 \
'android.permission.FILTER_EVENTS' 'FILTER_EVENTS' 0 \
'android.permission.FLASHLIGHT' 'FLASHLIGHT' 0 \
'android.permission.FORCE_BACK' 'FORCE_BACK' 0 \
'android.permission.FORCE_STOP_PACKAGES' 'FORCE_STOP_PACKAGES' 0 \
'android.permission.FOREGROUND_SERVICE' 'FOREGROUND_SERVICE - Allows a regular application to use Service.startForeground.' 0 \
'android.permission.FOREGROUND_SERVICE_CAMERA' 'FOREGROUND_SERVICE_CAMERA - Allows a regular application to use Service.startForeground with the type "camera".' 0 \
'android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE' 'FOREGROUND_SERVICE_CONNECTED_DEVICE - Allows a regular application to use Service.startForeground with the type "connectedDevice".' 0 \
'android.permission.FOREGROUND_SERVICE_DATA_SYNC' 'FOREGROUND_SERVICE_DATA_SYNC - Allows a regular application to use Service.startForeground with the type "dataSync".' 0 \
'android.permission.FOREGROUND_SERVICE_HEALTH' 'FOREGROUND_SERVICE_HEALTH - Allows a regular application to use Service.startForeground with the type "health".' 0 \
'android.permission.FOREGROUND_SERVICE_LOCATION' 'FOREGROUND_SERVICE_LOCATION - Allows a regular application to use Service.startForeground with the type "location".' 0 \
'android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK' 'FOREGROUND_SERVICE_MEDIA_PLAYBACK - Allows a regular application to use Service.startForeground with the type "mediaPlayback".' 0 \
'android.permission.FOREGROUND_SERVICE_MEDIA_PROCESSING' 'FOREGROUND_SERVICE_MEDIA_PROCESSING - Allows a regular application to use Service.startForeground with the type "mediaProcessing".' 0 \
'android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION' 'FOREGROUND_SERVICE_MEDIA_PROJECTION - Allows a regular application to use Service.startForeground with the type "mediaProjection".' 0 \
'android.permission.FOREGROUND_SERVICE_MICROPHONE' 'FOREGROUND_SERVICE_MICROPHONE - Allows a regular application to use Service.startForeground with the type "microphone".' 0 \
'android.permission.FOREGROUND_SERVICE_PHONE_CALL' 'FOREGROUND_SERVICE_PHONE_CALL - Allows a regular application to use Service.startForeground with the type "phoneCall".' 0 \
'android.permission.FOREGROUND_SERVICE_REMOTE_MESSAGING' 'FOREGROUND_SERVICE_REMOTE_MESSAGING - Allows a regular application to use Service.startForeground with the type "remoteMessaging".' 0 \
'android.permission.FOREGROUND_SERVICE_SPECIAL_USE' 'FOREGROUND_SERVICE_SPECIAL_USE - Allows a regular application to use Service.startForeground with the type "specialUse".' 0 \
'android.permission.FOREGROUND_SERVICE_SYSTEM_EXEMPTED' 'FOREGROUND_SERVICE_SYSTEM_EXEMPTED - Allows a regular application to use Service.startForeground with the type "systemExempted".' 0 \
'android.permission.FRAME_STATS' 'FRAME_STATS' 0 \
'android.permission.FREEZE_SCREEN' 'FREEZE_SCREEN' 0 \
'android.permission.GET_ACCOUNTS' 'GET_ACCOUNTS - Allows access to the list of accounts in the Accounts Service.' 0 \
'android.permission.GET_ACCOUNTS_PRIVILEGED' 'GET_ACCOUNTS_PRIVILEGED - Allows access to the list of accounts in the Accounts Service.' 0 \
'android.permission.GET_APP_GRANTED_URI_PERMISSIONS' 'GET_APP_GRANTED_URI_PERMISSIONS' 0 \
'android.permission.GET_APP_OPS_STATS' 'GET_APP_OPS_STATS' 0 \
'android.permission.GET_DETAILED_TASKS' 'GET_DETAILED_TASKS' 0 \
'android.permission.GET_INTENT_SENDER_INTENT' 'GET_INTENT_SENDER_INTENT' 0 \
'android.permission.GET_PACKAGE_IMPORTANCE' 'GET_PACKAGE_IMPORTANCE' 0 \
'android.permission.GET_PACKAGE_SIZE' 'GET_PACKAGE_SIZE - Allows an application to find out the space used by any package.' 0 \
'android.permission.GET_PASSWORD' 'GET_PASSWORD' 0 \
'android.permission.GET_PROCESS_STATE_AND_OOM_SCORE' 'GET_PROCESS_STATE_AND_OOM_SCORE' 0 \
'android.permission.GET_TASKS' 'GET_TASKS - This constant was deprecated in API level 21. No longer enforced.' 0 \
'android.permission.GET_TOP_ACTIVITY_INFO' 'GET_TOP_ACTIVITY_INFO' 0 \
'android.permission.GLOBAL_SEARCH' 'GLOBAL_SEARCH - This permission can be used on content providers to allow the global search system to access their data.' 0 \
'android.permission.GLOBAL_SEARCH_CONTROL' 'GLOBAL_SEARCH_CONTROL' 0 \
'android.permission.GRANT_RUNTIME_PERMISSIONS' 'GRANT_RUNTIME_PERMISSIONS' 0 \
'android.permission.HARDWARE_TEST' 'HARDWARE_TEST' 0 \
'android.permission.HDMI_CEC' 'HDMI_CEC' 0 \
'android.permission.HIDE_OVERLAY_WINDOWS' 'HIDE_OVERLAY_WINDOWS - Allows an app to prevent non-system-overlay windows from being drawn on top of it' 0 \
'android.permission.HIGH_SAMPLING_RATE_SENSORS' 'HIGH_SAMPLING_RATE_SENSORS - Allows an app to access sensor data with a sampling rate greater than 200 Hz.' 0 \
'android.permission.INJECT_EVENTS' 'INJECT_EVENTS' 0 \
'android.permission.INSTALL_GRANT_RUNTIME_PERMISSIONS' 'INSTALL_GRANT_RUNTIME_PERMISSIONS' 0 \
'android.permission.INSTALL_LOCATION_PROVIDER' 'INSTALL_LOCATION_PROVIDER - Allows an application to install a location provider into the Location Manager.' 0 \
'android.permission.INSTALL_PACKAGES' 'INSTALL_PACKAGES - Allows an application to install packages.' 0 \
'android.permission.INSTALL_SHORTCUT' 'INSTALL_SHORTCUT - Allows an application to install a shortcut in Launcher.' 0 \
'android.permission.INSTANT_APP_FOREGROUND_SERVICE' 'INSTANT_APP_FOREGROUND_SERVICE - Allows an instant app to create foreground services.' 0 \
'android.permission.INTENT_FILTER_VERIFICATION_AGENT' 'INTENT_FILTER_VERIFICATION_AGENT' 0 \
'android.permission.INTERACT_ACROSS_PROFILES' 'INTERACT_ACROSS_PROFILES - Allows interaction across profiles in the same profile group.' 0 \
'android.permission.INTERACT_ACROSS_USERS' 'INTERACT_ACROSS_USERS' 0 \
'android.permission.INTERACT_ACROSS_USERS_FULL' 'INTERACT_ACROSS_USERS_FULL' 0 \
'android.permission.INTERNAL_SYSTEM_WINDOW' 'INTERNAL_SYSTEM_WINDOW' 0 \
'android.permission.INVOKE_CARRIER_SETUP' 'INVOKE_CARRIER_SETUP' 0 \
'android.permission.KILL_BACKGROUND_PROCESSES' 'KILL_BACKGROUND_PROCESSES - Allows an application to call ActivityManager.killBackgroundProcesses(String).' 0 \
'android.permission.KILL_UID' 'KILL_UID' 0 \
'android.permission.LAUNCH_CAPTURE_CONTENT_ACTIVITY_FOR_NOTE' 'LAUNCH_CAPTURE_CONTENT_ACTIVITY_FOR_NOTE - Allows an application to capture screen content to perform a screenshot using the intent action Intent.ACTION_LAUNCH_CAPTURE_CONTENT_ACTIVITY_FOR_NOTE.' 0 \
'android.permission.LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK' 'LAUNCH_MULTI_PANE_SETTINGS_DEEP_LINK - An application needs this permission for Settings.ACTION_SETTINGS_EMBED_DEEP_LINK_ACTIVITY to show its Activity embedded in Settings app.' 0 \
'android.permission.LAUNCH_TRUST_AGENT_SETTINGS' 'LAUNCH_TRUST_AGENT_SETTINGS' 0 \
'android.permission.LOADER_USAGE_STATS' 'LOADER_USAGE_STATS - Allows a data loader to read a packages access logs.' 0 \
'android.permission.LOCAL_MAC_ADDRESS' 'LOCAL_MAC_ADDRESS' 0 \
'android.permission.LOCATION_HARDWARE' 'LOCATION_HARDWARE - Allows an application to use location features in hardware, such as the geofencing api.' 0 \
'android.permission.LOOP_RADIO' 'LOOP_RADIO' 0 \
'android.permission.MANAGE_ACCOUNTS' 'MANAGE_ACCOUNTS' 0 \
'android.permission.MANAGE_ACTIVITY_STACKS' 'MANAGE_ACTIVITY_STACKS' 0 \
'android.permission.MANAGE_APP_OPS_RESTRICTIONS' 'MANAGE_APP_OPS_RESTRICTIONS' 0 \
'android.permission.MANAGE_APP_TOKENS' 'MANAGE_APP_TOKENS' 0 \
'android.permission.MANAGE_CA_CERTIFICATES' 'MANAGE_CA_CERTIFICATES' 0 \
'android.permission.MANAGE_DEVICE_ADMINS' 'MANAGE_DEVICE_ADMINS' 0 \
'android.permission.MANAGE_DEVICE_LOCK_STATE' 'MANAGE_DEVICE_LOCK_STATE - Allows financed device kiosk apps to perform actions on the Device Lock service' 0 \
'android.permission.MANAGE_DEVICE_LOCK_STATE' 'MANAGE_DEVICE_LOCK_STATE - Intended for use by the FINANCED_DEVICE_KIOSK role only.' 0 \
'android.permission.MANAGE_DEVICE_LOCK_STATE' 'MANAGE_DEVICE_LOCK_STATE - Protection level: internal|role' 0 \
'android.permission.MANAGE_DEVICE_POLICY_ACCESSIBILITY' 'MANAGE_DEVICE_POLICY_ACCESSIBILITY - Allows an application to manage policy related to accessibility.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_ACCOUNT_MANAGEMENT' 'MANAGE_DEVICE_POLICY_ACCOUNT_MANAGEMENT - Allows an application to set policy related to account management.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_ACROSS_USERS' 'MANAGE_DEVICE_POLICY_ACROSS_USERS - Allows an application to set device policies outside the current user that are required for securing device ownership without accessing user data.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL' 'MANAGE_DEVICE_POLICY_ACROSS_USERS_FULL - Allows an application to set device policies outside the current user.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_ACROSS_USERS_SECURITY_CRITICAL' 'MANAGE_DEVICE_POLICY_ACROSS_USERS_SECURITY_CRITICAL - Allows an application to set device policies outside the current user that are critical for securing data within the current user.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_AIRPLANE_MODE' 'MANAGE_DEVICE_POLICY_AIRPLANE_MODE - Allows an application to set policy related to airplane mode.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_APPS_CONTROL' 'MANAGE_DEVICE_POLICY_APPS_CONTROL - Allows an application to manage policy regarding modifying applications.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_APP_RESTRICTIONS' 'MANAGE_DEVICE_POLICY_APP_RESTRICTIONS - Allows an application to manage application restrictions.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_APP_USER_DATA' 'MANAGE_DEVICE_POLICY_APP_USER_DATA - Allows an application to manage policy related to application user data.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_ASSIST_CONTENT' 'MANAGE_DEVICE_POLICY_ASSIST_CONTENT - Allows an application to set policy related to sending assist content to a privileged app such as the Assistant app.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_AUDIO_OUTPUT' 'MANAGE_DEVICE_POLICY_AUDIO_OUTPUT - Allows an application to set policy related to audio output.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_AUTOFILL' 'MANAGE_DEVICE_POLICY_AUTOFILL - Allows an application to set policy related to autofill.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_BACKUP_SERVICE' 'MANAGE_DEVICE_POLICY_BACKUP_SERVICE - Allows an application to manage backup service policy.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_BLOCK_UNINSTALL' 'MANAGE_DEVICE_POLICY_BLOCK_UNINSTALL - Allows an application to manage policy related to block package uninstallation.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_BLUETOOTH' 'MANAGE_DEVICE_POLICY_BLUETOOTH - Allows an application to set policy related to bluetooth.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_BUGREPORT' 'MANAGE_DEVICE_POLICY_BUGREPORT - Allows an application to request bugreports with user consent.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_CALLS' 'MANAGE_DEVICE_POLICY_CALLS - Allows an application to manage calling policy.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_CAMERA' 'MANAGE_DEVICE_POLICY_CAMERA - Allows an application to set policy related to restricting a users ability to use or enable and disable the camera.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_CAMERA_TOGGLE' 'MANAGE_DEVICE_POLICY_CAMERA_TOGGLE - Allows an application to manage policy related to camera toggle.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES' 'MANAGE_DEVICE_POLICY_CERTIFICATES - Allows an application to set policy related to certificates.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_COMMON_CRITERIA_MODE' 'MANAGE_DEVICE_POLICY_COMMON_CRITERIA_MODE - Allows an application to manage policy related to common criteria mode.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_CONTENT_PROTECTION' 'MANAGE_DEVICE_POLICY_CONTENT_PROTECTION - Allows an application to manage policy related to content protection.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_DEBUGGING_FEATURES' 'MANAGE_DEVICE_POLICY_DEBUGGING_FEATURES - Allows an application to manage debugging features policy.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_DEFAULT_SMS' 'MANAGE_DEVICE_POLICY_DEFAULT_SMS - Allows an application to set policy related to the default sms application.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_DEVICE_IDENTIFIERS' 'MANAGE_DEVICE_POLICY_DEVICE_IDENTIFIERS - Allows an application to manage policy related to device identifiers.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_DISPLAY' 'MANAGE_DEVICE_POLICY_DISPLAY - Allows an application to set policy related to the display.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_FACTORY_RESET' 'MANAGE_DEVICE_POLICY_FACTORY_RESET - Allows an application to set policy related to factory reset.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_FUN' 'MANAGE_DEVICE_POLICY_FUN - Allows an application to set policy related to fun.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_INPUT_METHODS' 'MANAGE_DEVICE_POLICY_INPUT_METHODS - Allows an application to set policy related to input methods.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_INSTALL_UNKNOWN_SOURCES' 'MANAGE_DEVICE_POLICY_INSTALL_UNKNOWN_SOURCES - Allows an application to manage installing from unknown sources policy.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_KEEP_UNINSTALLED_PACKAGES' 'MANAGE_DEVICE_POLICY_KEEP_UNINSTALLED_PACKAGES - Allows an application to set policy related to keeping uninstalled packages.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_KEYGUARD' 'MANAGE_DEVICE_POLICY_KEYGUARD - Allows an application to manage policy related to keyguard.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_LOCALE' 'MANAGE_DEVICE_POLICY_LOCALE - Allows an application to set policy related to locale.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_LOCATION' 'MANAGE_DEVICE_POLICY_LOCATION - Allows an application to set policy related to location.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_LOCK' 'MANAGE_DEVICE_POLICY_LOCK - Allows an application to lock a profile or the device with the appropriate cross-user permission.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_LOCK_CREDENTIALS' 'MANAGE_DEVICE_POLICY_LOCK_CREDENTIALS - Allows an application to set policy related to lock credentials.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_LOCK_TASK' 'MANAGE_DEVICE_POLICY_LOCK_TASK - Allows an application to manage lock task policy.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_MANAGED_SUBSCRIPTIONS' 'MANAGE_DEVICE_POLICY_MANAGED_SUBSCRIPTIONS - Allows an application to set policy related to subscriptions downloaded by an admin.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_METERED_DATA' 'MANAGE_DEVICE_POLICY_METERED_DATA - Allows an application to manage policy related to metered data.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_MICROPHONE' 'MANAGE_DEVICE_POLICY_MICROPHONE - Allows an application to set policy related to restricting a users ability to use or enable and disable the microphone.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_MICROPHONE_TOGGLE' 'MANAGE_DEVICE_POLICY_MICROPHONE_TOGGLE - Allows an application to manage policy related to microphone toggle.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_MOBILE_NETWORK' 'MANAGE_DEVICE_POLICY_MOBILE_NETWORK - Allows an application to set policy related to mobile networks.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_MODIFY_USERS' 'MANAGE_DEVICE_POLICY_MODIFY_USERS - Allows an application to manage policy preventing users from modifying users.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_MTE' 'MANAGE_DEVICE_POLICY_MTE - Allows an application to manage policy related to the Memory Tagging Extension (MTE).' 0 \
'android.permission.MANAGE_DEVICE_POLICY_NEARBY_COMMUNICATION' 'MANAGE_DEVICE_POLICY_NEARBY_COMMUNICATION - Allows an application to set policy related to nearby communications (e.g.Beam and nearby streaming).' 0 \
'android.permission.MANAGE_DEVICE_POLICY_NETWORK_LOGGING' 'MANAGE_DEVICE_POLICY_NETWORK_LOGGING - Allows an application to set policy related to network logging.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_ORGANIZATION_IDENTITY' 'MANAGE_DEVICE_POLICY_ORGANIZATION_IDENTITY - Allows an application to manage the identity of the managing organization.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_OVERRIDE_APN' 'MANAGE_DEVICE_POLICY_OVERRIDE_APN - Allows an application to set policy related to override APNs.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_PACKAGE_STATE' 'MANAGE_DEVICE_POLICY_PACKAGE_STATE - Allows an application to set policy related to hiding and suspending packages.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_PHYSICAL_MEDIA' 'MANAGE_DEVICE_POLICY_PHYSICAL_MEDIA - Allows an application to set policy related to physical media.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_PRINTING' 'MANAGE_DEVICE_POLICY_PRINTING - Allows an application to set policy related to printing.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_PRIVATE_DNS' 'MANAGE_DEVICE_POLICY_PRIVATE_DNS - Allows an application to set policy related to private DNS.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_PROFILES' 'MANAGE_DEVICE_POLICY_PROFILES - Allows an application to set policy related to profiles.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_PROFILE_INTERACTION' 'MANAGE_DEVICE_POLICY_PROFILE_INTERACTION - Allows an application to set policy related to interacting with profiles (e.g.Disallowing cross-profile copy and paste).' 0 \
'android.permission.MANAGE_DEVICE_POLICY_PROXY' 'MANAGE_DEVICE_POLICY_PROXY - Allows an application to set a network-independent global HTTP proxy.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_QUERY_SYSTEM_UPDATES' 'MANAGE_DEVICE_POLICY_QUERY_SYSTEM_UPDATES - Allows an application query system updates.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_RESET_PASSWORD' 'MANAGE_DEVICE_POLICY_RESET_PASSWORD - Allows an application to force set a new device unlock password or a managed profile challenge on current user.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_RESTRICT_PRIVATE_DNS' 'MANAGE_DEVICE_POLICY_RESTRICT_PRIVATE_DNS - Allows an application to set policy related to restricting the user from configuring private DNS.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_RUNTIME_PERMISSIONS' 'MANAGE_DEVICE_POLICY_RUNTIME_PERMISSIONS - Allows an application to set the grant state of runtime permissions on packages.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_RUN_IN_BACKGROUND' 'MANAGE_DEVICE_POLICY_RUN_IN_BACKGROUND - Allows an application to set policy related to users running in the background.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_SAFE_BOOT' 'MANAGE_DEVICE_POLICY_SAFE_BOOT - Allows an application to manage safe boot policy.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_SCREEN_CAPTURE' 'MANAGE_DEVICE_POLICY_SCREEN_CAPTURE - Allows an application to set policy related to screen capture.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_SCREEN_CONTENT' 'MANAGE_DEVICE_POLICY_SCREEN_CONTENT - Allows an application to set policy related to the usage of the contents of the screen.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_SECURITY_LOGGING' 'MANAGE_DEVICE_POLICY_SECURITY_LOGGING - Allows an application to set policy related to security logging.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_SETTINGS' 'MANAGE_DEVICE_POLICY_SETTINGS - Allows an application to set policy related to settings.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_SMS' 'MANAGE_DEVICE_POLICY_SMS - Allows an application to set policy related to sms.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_STATUS_BAR' 'MANAGE_DEVICE_POLICY_STATUS_BAR - Allows an application to set policy related to the status bar.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_SUPPORT_MESSAGE' 'MANAGE_DEVICE_POLICY_SUPPORT_MESSAGE - Allows an application to set support messages for when a user action is affected by an active policy.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_SUSPEND_PERSONAL_APPS' 'MANAGE_DEVICE_POLICY_SUSPEND_PERSONAL_APPS - Allows an application to set policy related to suspending personal apps.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_SYSTEM_APPS' 'MANAGE_DEVICE_POLICY_SYSTEM_APPS - Allows an application to manage policy related to system apps.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_SYSTEM_DIALOGS' 'MANAGE_DEVICE_POLICY_SYSTEM_DIALOGS - Allows an application to set policy related to system dialogs.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_SYSTEM_UPDATES' 'MANAGE_DEVICE_POLICY_SYSTEM_UPDATES - Allows an application to set policy related to system updates.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_TIME' 'MANAGE_DEVICE_POLICY_TIME - Allows an application to manage device policy relating to time.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_USB_DATA_SIGNALLING' 'MANAGE_DEVICE_POLICY_USB_DATA_SIGNALLING - Allows an application to set policy related to usb data signalling.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_USB_FILE_TRANSFER' 'MANAGE_DEVICE_POLICY_USB_FILE_TRANSFER - Allows an application to set policy related to usb file transfers.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_USERS' 'MANAGE_DEVICE_POLICY_USERS - Allows an application to set policy related to users.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_VPN' 'MANAGE_DEVICE_POLICY_VPN - Allows an application to set policy related to VPNs.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_WALLPAPER' 'MANAGE_DEVICE_POLICY_WALLPAPER - Allows an application to set policy related to the wallpaper.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_WIFI' 'MANAGE_DEVICE_POLICY_WIFI - Allows an application to set policy related to Wifi.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_WINDOWS' 'MANAGE_DEVICE_POLICY_WINDOWS - Allows an application to set policy related to windows.' 0 \
'android.permission.MANAGE_DEVICE_POLICY_WIPE_DATA' 'MANAGE_DEVICE_POLICY_WIPE_DATA - Allows an application to manage policy related to wiping data.' 0 \
'android.permission.MANAGE_DOCUMENTS' 'MANAGE_DOCUMENTS - Allows an application to manage access to documents, usually as part of a document picker.' 0 \
'android.permission.MANAGE_EXTERNAL_STORAGE' 'MANAGE_EXTERNAL_STORAGE - Allows an application a broad access to external storage in scoped storage.' 0 \
'android.permission.MANAGE_FINGERPRINT' 'MANAGE_FINGERPRINT' 0 \
'android.permission.MANAGE_MEDIA' 'MANAGE_MEDIA - Allows an application to modify and delete media files on this device or any connected storage device without user confirmation.' 0 \
'android.permission.MANAGE_MEDIA_PROJECTION' 'MANAGE_MEDIA_PROJECTION' 0 \
'android.permission.MANAGE_NETWORK_POLICY' 'MANAGE_NETWORK_POLICY' 0 \
'android.permission.MANAGE_NOTIFICATIONS' 'MANAGE_NOTIFICATIONS' 0 \
'android.permission.MANAGE_ONGOING_CALLS' 'MANAGE_ONGOING_CALLS - Allows to query ongoing call details and manage ongoing calls' 0 \
'android.permission.MANAGE_ONGOING_CALLS' 'MANAGE_ONGOING_CALLS - Protection level: signature|appop' 0 \
'android.permission.MANAGE_OWN_CALLS' 'MANAGE_OWN_CALLS - Allows a calling application which manages its own calls through the self-managed ConnectionService APIs.' 0 \
'android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS' 'MANAGE_PROFILE_AND_DEVICE_OWNERS' 0 \
'android.permission.MANAGE_SOUND_TRIGGER' 'MANAGE_SOUND_TRIGGER' 0 \
'android.permission.MANAGE_USB' 'MANAGE_USB' 0 \
'android.permission.MANAGE_USERS' 'MANAGE_USERS' 0 \
'android.permission.MANAGE_VOICE_KEYPHRASES' 'MANAGE_VOICE_KEYPHRASES' 0 \
'android.permission.MANAGE_WIFI_INTERFACES' 'MANAGE_WIFI_INTERFACES - 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.' 0 \
'android.permission.MANAGE_WIFI_NETWORK_SELECTION' 'MANAGE_WIFI_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.' 0 \
'android.permission.MASTER_CLEAR' 'MASTER_CLEAR - Not for use by third-party applications.' 0 \
'android.permission.MEDIA_CONTENT_CONTROL' 'MEDIA_CONTENT_CONTROL - Allows an application to know what content is playing and control its playback.' 0 \
'android.permission.MEDIA_ROUTING_CONTROL' 'MEDIA_ROUTING_CONTROL - Allows an application to control the routing of media apps.' 0 \
'android.permission.MODIFY_APPWIDGET_BIND_PERMISSIONS' 'MODIFY_APPWIDGET_BIND_PERMISSIONS' 0 \
'android.permission.MODIFY_AUDIO_ROUTING' 'MODIFY_AUDIO_ROUTING' 0 \
'android.permission.MODIFY_AUDIO_SETTINGS' 'MODIFY_AUDIO_SETTINGS - Allows an application to modify global audio settings.' 0 \
'android.permission.MODIFY_CELL_BROADCASTS' 'MODIFY_CELL_BROADCASTS' 0 \
'android.permission.MODIFY_DAY_NIGHT_MODE' 'MODIFY_DAY_NIGHT_MODE' 0 \
'android.permission.MODIFY_NETWORK_ACCOUNTING' 'MODIFY_NETWORK_ACCOUNTING' 0 \
'android.permission.MODIFY_PARENTAL_CONTROLS' 'MODIFY_PARENTAL_CONTROLS' 0 \
'android.permission.MODIFY_PHONE_STATE' 'MODIFY_PHONE_STATE - Allows modification of the telephony state - power on, mmi, etc.' 0 \
'android.permission.MOUNT_FORMAT_FILESYSTEMS' 'MOUNT_FORMAT_FILESYSTEMS - Allows formatting file systems for removable storage.' 0 \
'android.permission.MOUNT_UNMOUNT_FILESYSTEMS' 'MOUNT_UNMOUNT_FILESYSTEMS - Allows mounting and unmounting file systems for removable storage.' 0 \
'android.permission.MOVE_PACKAGE' 'MOVE_PACKAGE' 0 \
'android.permission.NEARBY_WIFI_DEVICES' 'NEARBY_WIFI_DEVICES - Required to be able to advertise and connect to nearby devices via Wi-Fi.' 0 \
'android.permission.NET_ADMIN' 'NET_ADMIN' 0 \
'android.permission.NET_TUNNELING' 'NET_TUNNELING' 0 \
'android.permission.NFC' 'NFC - Allows applications to perform I/O operations over NFC.' 0 \
'android.permission.NFC_HANDOVER_STATUS' 'NFC_HANDOVER_STATUS' 0 \
'android.permission.NFC_PREFERRED_PAYMENT_INFO' 'NFC_PREFERRED_PAYMENT_INFO - Allows applications to receive NFC preferred payment service information.' 0 \
'android.permission.NFC_TRANSACTION_EVENT' 'NFC_TRANSACTION_EVENT - Allows applications to receive NFC transaction events.' 0 \
'android.permission.NOTIFY_PENDING_SYSTEM_UPDATE' 'NOTIFY_PENDING_SYSTEM_UPDATE' 0 \
'android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS' 'OBSERVE_GRANT_REVOKE_PERMISSIONS' 0 \
'android.permission.OEM_UNLOCK_STATE' 'OEM_UNLOCK_STATE' 0 \
'android.permission.OVERRIDE_WIFI_CONFIG' 'OVERRIDE_WIFI_CONFIG - Allows an application to modify any wifi configuration, even if created by another application.' 0 \
'android.permission.PACKAGE_USAGE_STATS' 'PACKAGE_USAGE_STATS - Allows an application to collect component usage statistics' 0 \
'android.permission.PACKAGE_USAGE_STATS' 'PACKAGE_USAGE_STATS - Declaring the permission implies intention to use the API and the user of the device can grant permission through the Settings application.' 0 \
'android.permission.PACKAGE_VERIFICATION_AGENT' 'PACKAGE_VERIFICATION_AGENT' 0 \
'android.permission.PACKET_KEEPALIVE_OFFLOAD' 'PACKET_KEEPALIVE_OFFLOAD' 0 \
'android.permission.PEERS_MAC_ADDRESS' 'PEERS_MAC_ADDRESS' 0 \
'android.permission.PERFORM_CDMA_PROVISIONING' 'PERFORM_CDMA_PROVISIONING' 0 \
'android.permission.PERFORM_SIM_ACTIVATION' 'PERFORM_SIM_ACTIVATION' 0 \
'android.permission.PERSISTENT_ACTIVITY' 'PERSISTENT_ACTIVITY - This constant was deprecated in API level 15. This functionality will be removed in the future; please do not use. Allow an application to make its activities persistent.' 0 \
'android.permission.POST_NOTIFICATIONS' 'POST_NOTIFICATIONS - Allows an app to post notifications' 0 \
'android.permission.POST_NOTIFICATIONS' 'POST_NOTIFICATIONS - Protection level: dangerous' 0 \
'android.permission.PROCESS_CALLLOG_INFO' 'PROCESS_CALLLOG_INFO' 0 \
'android.permission.PROCESS_OUTGOING_CALLS' 'PROCESS_OUTGOING_CALLS - This constant was deprecated in API level 29. Applications should use CallRedirectionService instead of the Intent.ACTION_NEW_OUTGOING_CALL broadcast.' 0 \
'android.permission.PROCESS_PHONE_ACCOUNT_REGISTRATION' 'PROCESS_PHONE_ACCOUNT_REGISTRATION' 0 \
'android.permission.PROVIDE_OWN_AUTOFILL_SUGGESTIONS' 'PROVIDE_OWN_AUTOFILL_SUGGESTIONS - Allows an application to display its suggestions using the autofill framework.' 0 \
'android.permission.PROVIDE_REMOTE_CREDENTIALS' 'PROVIDE_REMOTE_CREDENTIALS - Allows an application to be able to store and retrieve credentials from a remote device.' 0 \
'android.permission.PROVIDE_TRUST_AGENT' 'PROVIDE_TRUST_AGENT' 0 \
'android.permission.QUERY_ALL_PACKAGES' 'QUERY_ALL_PACKAGES - Allows query of any normal app on the device, regardless of manifest declarations.' 0 \
'android.permission.QUERY_DO_NOT_ASK_CREDENTIALS_ON_BOOT' 'QUERY_DO_NOT_ASK_CREDENTIALS_ON_BOOT' 0 \
'android.permission.READ_ASSISTANT_APP_SEARCH_DATA' 'READ_ASSISTANT_APP_SEARCH_DATA - Allows an application to query over global data in AppSearch thats visible to the ASSISTANT role.' 0 \
'android.permission.READ_BASIC_PHONE_STATE' 'READ_BASIC_PHONE_STATE - Allows read only access to phone state with a non dangerous permission, including the information like cellular network type, software version.' 0 \
'android.permission.READ_BLOCKED_NUMBERS' 'READ_BLOCKED_NUMBERS' 0 \
'android.permission.READ_CALENDAR' 'READ_CALENDAR - Allows an application to read the users calendar data.' 0 \
'android.permission.READ_CALL_LOG' 'READ_CALL_LOG - Allows an application to read the users call log.' 0 \
'android.permission.READ_CONTACTS' 'READ_CONTACTS - Allows an application to read the users contacts data.' 0 \
'android.permission.READ_DREAM_STATE' 'READ_DREAM_STATE' 0 \
'android.permission.READ_DROPBOX_DATA' 'READ_DROPBOX_DATA - Allows an application to access the data in Dropbox.' 0 \
'android.permission.READ_EXTERNAL_STORAGE' 'READ_EXTERNAL_STORAGE - Allows an application to read from external storage.' 0 \
'android.permission.READ_FRAME_BUFFER' 'READ_FRAME_BUFFER' 0 \
'android.permission.READ_HOME_APP_SEARCH_DATA' 'READ_HOME_APP_SEARCH_DATA - Allows an application to query over global data in AppSearch thats visible to the HOME role.' 0 \
'android.permission.READ_INPUT_STATE' 'READ_INPUT_STATE - This constant was deprecated in API level 16. The API that used this permission has been removed.' 0 \
'android.permission.READ_INSTALL_SESSIONS' 'READ_INSTALL_SESSIONS' 0 \
'android.permission.READ_LOGS' 'READ_LOGS - Allows an application to read the low-level system log files.' 0 \
'android.permission.READ_NEARBY_STREAMING_POLICY' 'READ_NEARBY_STREAMING_POLICY - Allows an application to read nearby streaming policy.' 0 \
'android.permission.READ_NETWORK_USAGE_HISTORY' 'READ_NETWORK_USAGE_HISTORY' 0 \
'android.permission.READ_OEM_UNLOCK_STATE' 'READ_OEM_UNLOCK_STATE' 0 \
'android.permission.READ_PHONE_NUMBERS' 'READ_PHONE_NUMBERS - Allows read access to the devices phone number(s).' 0 \
'android.permission.READ_PHONE_STATE' 'READ_PHONE_STATE - Allows read only access to phone state, including the current cellular network information, the status of any ongoing calls, and a list of any PhoneAccounts registered on the device.' 0 \
'android.permission.READ_PRECISE_PHONE_STATE' 'READ_PRECISE_PHONE_STATE - Allows read only access to precise phone state.' 0 \
'android.permission.READ_PRIVILEGED_PHONE_STATE' 'READ_PRIVILEGED_PHONE_STATE' 0 \
'android.permission.READ_PROFILE' 'READ_PROFILE' 0 \
'android.permission.READ_SEARCH_INDEXABLES' 'READ_SEARCH_INDEXABLES' 0 \
'android.permission.READ_SMS' 'READ_SMS - Allows an application to read SMS messages.' 0 \
'android.permission.READ_SOCIAL_STREAM' 'READ_SOCIAL_STREAM' 0 \
'android.permission.READ_SYNC_SETTINGS' 'READ_SYNC_SETTINGS - Allows applications to read the sync settings.' 0 \
'android.permission.READ_SYNC_STATS' 'READ_SYNC_STATS - Allows applications to read the sync stats.' 0 \
'android.permission.READ_USER_DICTIONARY' 'READ_USER_DICTIONARY' 0 \
'android.permission.READ_VOICEMAIL' 'READ_VOICEMAIL - Allows an application to read voicemails in the system.' 0 \
'android.permission.READ_WIFI_CREDENTIAL' 'READ_WIFI_CREDENTIAL' 0 \
'android.permission.REAL_GET_TASKS' 'REAL_GET_TASKS' 0 \
'android.permission.REBOOT' 'REBOOT - Required to be able to reboot the device.' 0 \
'android.permission.RECEIVE_BLUETOOTH_MAP' 'RECEIVE_BLUETOOTH_MAP' 0 \
'android.permission.RECEIVE_BOOT_COMPLETED' 'RECEIVE_BOOT_COMPLETED - Allows an application to receive the Intent.ACTION_BOOT_COMPLETED that is broadcast after the system finishes booting.' 0 \
'android.permission.RECEIVE_DATA_ACTIVITY_CHANGE' 'RECEIVE_DATA_ACTIVITY_CHANGE' 0 \
'android.permission.RECEIVE_EMERGENCY_BROADCAST' 'RECEIVE_EMERGENCY_BROADCAST' 0 \
'android.permission.RECEIVE_MEDIA_RESOURCE_USAGE' 'RECEIVE_MEDIA_RESOURCE_USAGE' 0 \
'android.permission.RECEIVE_MMS' 'RECEIVE_MMS - Allows an application to monitor incoming MMS messages.' 0 \
'android.permission.RECEIVE_SMS' 'RECEIVE_SMS - Allows an application to receive SMS messages.' 0 \
'android.permission.RECEIVE_STK_COMMANDS' 'RECEIVE_STK_COMMANDS' 0 \
'android.permission.RECEIVE_WAP_PUSH' 'RECEIVE_WAP_PUSH - Allows an application to receive WAP push messages.' 0 \
'android.permission.RECEIVE_WIFI_CREDENTIAL_CHANGE' 'RECEIVE_WIFI_CREDENTIAL_CHANGE' 0 \
'android.permission.RECORD_AUDIO' 'RECORD_AUDIO - Allows an application to record audio.' 0 \
'android.permission.RECOVERY' 'RECOVERY' 0 \
'android.permission.REGISTER_CALL_PROVIDER' 'REGISTER_CALL_PROVIDER' 0 \
'android.permission.REGISTER_CONNECTION_MANAGER' 'REGISTER_CONNECTION_MANAGER' 0 \
'android.permission.REGISTER_SIM_SUBSCRIPTION' 'REGISTER_SIM_SUBSCRIPTION' 0 \
'android.permission.REGISTER_WINDOW_MANAGER_LISTENERS' 'REGISTER_WINDOW_MANAGER_LISTENERS' 0 \
'android.permission.REMOTE_AUDIO_PLAYBACK' 'REMOTE_AUDIO_PLAYBACK' 0 \
'android.permission.REMOVE_DRM_CERTIFICATES' 'REMOVE_DRM_CERTIFICATES' 0 \
'android.permission.REMOVE_TASKS' 'REMOVE_TASKS' 0 \
'android.permission.REORDER_TASKS' 'REORDER_TASKS - Allows an application to change the Z-order of tasks.' 0 \
'android.permission.REQUEST_COMPANION_PROFILE_APP_STREAMING' 'REQUEST_COMPANION_PROFILE_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.' 0 \
'android.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION' 'REQUEST_COMPANION_PROFILE_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.' 0 \
'android.permission.REQUEST_COMPANION_PROFILE_COMPUTER' 'REQUEST_COMPANION_PROFILE_COMPUTER - 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.' 0 \
'android.permission.REQUEST_COMPANION_PROFILE_GLASSES' 'REQUEST_COMPANION_PROFILE_GLASSES - Allows app to request to be associated with a device via CompanionDeviceManager as "glasses"' 0 \
'android.permission.REQUEST_COMPANION_PROFILE_GLASSES' 'REQUEST_COMPANION_PROFILE_GLASSES - Protection level: normal' 0 \
'android.permission.REQUEST_COMPANION_PROFILE_NEARBY_DEVICE_STREAMING' 'REQUEST_COMPANION_PROFILE_NEARBY_DEVICE_STREAMING - Allows application to request to stream content from an Android host to a nearby device (AssociationRequest.DEVICE_PROFILE_NEARBY_DEVICE_STREAMING) by CompanionDeviceManager.' 0 \
'android.permission.REQUEST_COMPANION_PROFILE_WATCH' 'REQUEST_COMPANION_PROFILE_WATCH - Allows app to request to be associated with a device via CompanionDeviceManager as a "watch"' 0 \
'android.permission.REQUEST_COMPANION_PROFILE_WATCH' 'REQUEST_COMPANION_PROFILE_WATCH - Protection level: normal' 0 \
'android.permission.REQUEST_COMPANION_RUN_IN_BACKGROUND' 'REQUEST_COMPANION_RUN_IN_BACKGROUND - Allows a companion app to run in the background.' 0 \
'android.permission.REQUEST_COMPANION_SELF_MANAGED' 'REQUEST_COMPANION_SELF_MANAGED - Allows an application to create a "self-managed" association.' 0 \
'android.permission.REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND' 'REQUEST_COMPANION_START_FOREGROUND_SERVICES_FROM_BACKGROUND - Allows a companion app to start a foreground service from the background.' 0 \
'android.permission.REQUEST_COMPANION_USE_DATA_IN_BACKGROUND' 'REQUEST_COMPANION_USE_DATA_IN_BACKGROUND - Allows a companion app to use data in the background.' 0 \
'android.permission.REQUEST_DELETE_PACKAGES' 'REQUEST_DELETE_PACKAGES - Allows an application to request deleting packages.' 0 \
'android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS' 'REQUEST_IGNORE_BATTERY_OPTIMIZATIONS - Permission an application must hold in order to use Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS.' 0 \
'android.permission.REQUEST_INSTALL_PACKAGES' 'REQUEST_INSTALL_PACKAGES - Allows an application to request installing packages.' 0 \
'android.permission.REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE' 'REQUEST_OBSERVE_COMPANION_DEVICE_PRESENCE - Allows an application to subscribe to notifications about the presence status change of their associated companion device' 0 \
'android.permission.REQUEST_PASSWORD_COMPLEXITY' 'REQUEST_PASSWORD_COMPLEXITY - Allows an application to request the screen lock complexity and prompt users to update the screen lock to a certain complexity level.' 0 \
'android.permission.RESET_FINGERPRINT_LOCKOUT' 'RESET_FINGERPRINT_LOCKOUT' 0 \
'android.permission.RESET_SHORTCUT_MANAGER_THROTTLING' 'RESET_SHORTCUT_MANAGER_THROTTLING' 0 \
'android.permission.RESTART_PACKAGES' 'RESTART_PACKAGES - This constant was deprecated in API level 15. The ActivityManager.restartPackage(String) API is no longer supported.' 0 \
'android.permission.RETRIEVE_WINDOW_CONTENT' 'RETRIEVE_WINDOW_CONTENT' 0 \
'android.permission.RETRIEVE_WINDOW_TOKEN' 'RETRIEVE_WINDOW_TOKEN' 0 \
'android.permission.REVOKE_RUNTIME_PERMISSIONS' 'REVOKE_RUNTIME_PERMISSIONS' 0 \
'android.permission.RUN_USER_INITIATED_JOBS' 'RUN_USER_INITIATED_JOBS - Allows applications to use the user-initiated jobs API.' 0 \
'android.permission.SCHEDULE_EXACT_ALARM' 'SCHEDULE_EXACT_ALARM - Allows applications to use exact alarm APIs.' 0 \
'android.permission.SCORE_NETWORKS' 'SCORE_NETWORKS' 0 \
'android.permission.SEND_CALL_LOG_CHANGE' 'SEND_CALL_LOG_CHANGE' 0 \
'android.permission.SEND_DOWNLOAD_COMPLETED_INTENTS' 'SEND_DOWNLOAD_COMPLETED_INTENTS' 0 \
'android.permission.SEND_RESPOND_VIA_MESSAGE' 'SEND_RESPOND_VIA_MESSAGE - Allows an application (Phone) to send a request to other applications to handle the respond-via-message action during incoming calls.' 0 \
'android.permission.SEND_SMS' 'SEND_SMS - Allows an application to send SMS messages.' 0 \
'android.permission.SEND_SMS_NO_CONFIRMATION' 'SEND_SMS_NO_CONFIRMATION' 0 \
'android.permission.SERIAL_PORT' 'SERIAL_PORT' 0 \
'android.permission.SET_ACTIVITY_WATCHER' 'SET_ACTIVITY_WATCHER' 0 \
'android.permission.SET_ALARM' 'SET_ALARM - Allows an application to broadcast an Intent to set an alarm for the user.' 0 \
'android.permission.SET_ALWAYS_FINISH' 'SET_ALWAYS_FINISH - Allows an application to control whether activities are immediately finished when put in the background.' 0 \
'android.permission.SET_ANIMATION_SCALE' 'SET_ANIMATION_SCALE - Modify the global animation scaling factor.' 0 \
'android.permission.SET_BIOMETRIC_DIALOG_ADVANCED' 'SET_BIOMETRIC_DIALOG_ADVANCED - Allows an application to set the advanced features on BiometricDialog (SystemUI), including logo, logo description, and content view with more options button.' 0 \
'android.permission.SET_DEBUG_APP' 'SET_DEBUG_APP - Configure an application for debugging.' 0 \
'android.permission.SET_INPUT_CALIBRATION' 'SET_INPUT_CALIBRATION' 0 \
'android.permission.SET_KEYBOARD_LAYOUT' 'SET_KEYBOARD_LAYOUT' 0 \
'android.permission.SET_ORIENTATION' 'SET_ORIENTATION' 0 \
'android.permission.SET_POINTER_SPEED' 'SET_POINTER_SPEED' 0 \
'android.permission.SET_PREFERRED_APPLICATIONS' 'SET_PREFERRED_APPLICATIONS - This constant was deprecated in API level 15. No longer useful, see PackageManager.addPackageToPreferred(String) for details.' 0 \
'android.permission.SET_PROCESS_LIMIT' 'SET_PROCESS_LIMIT - Allows an application to set the maximum number of (not needed) application processes that can be running.' 0 \
'android.permission.SET_SCREEN_COMPATIBILITY' 'SET_SCREEN_COMPATIBILITY' 0 \
'android.permission.SET_TIME' 'SET_TIME - Allows applications to set the system time directly.' 0 \
'android.permission.SET_TIME_ZONE' 'SET_TIME_ZONE - Allows applications to set the system time zone directly.' 0 \
'android.permission.SET_WALLPAPER' 'SET_WALLPAPER - Allows applications to set the wallpaper.' 0 \
'android.permission.SET_WALLPAPER_COMPONENT' 'SET_WALLPAPER_COMPONENT' 0 \
'android.permission.SET_WALLPAPER_HINTS' 'SET_WALLPAPER_HINTS - Allows applications to set the wallpaper hints.' 0 \
'android.permission.SHUTDOWN' 'SHUTDOWN' 0 \
'android.permission.SIGNAL_PERSISTENT_PROCESSES' 'SIGNAL_PERSISTENT_PROCESSES - Allow an application to request that a signal be sent to all persistent processes.' 0 \
'android.permission.SMS_FINANCIAL_TRANSACTIONS' 'SMS_FINANCIAL_TRANSACTIONS - This constant was deprecated in API level 31. The API that used this permission is no longer functional.' 0 \
'android.permission.START_ANY_ACTIVITY' 'START_ANY_ACTIVITY' 0 \
'android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND' 'START_FOREGROUND_SERVICES_FROM_BACKGROUND - Allows an application to start foreground services from the background at any time.' 0 \
'android.permission.START_PRINT_SERVICE_CONFIG_ACTIVITY' 'START_PRINT_SERVICE_CONFIG_ACTIVITY' 0 \
'android.permission.START_TASKS_FROM_RECENTS' 'START_TASKS_FROM_RECENTS' 0 \
'android.permission.START_VIEW_APP_FEATURES' 'START_VIEW_APP_FEATURES - Allows the holder to start the screen with a list of app features.' 0 \
'android.permission.START_VIEW_PERMISSION_USAGE' 'START_VIEW_PERMISSION_USAGE - Allows the holder to start the permission usage screen for an app.' 0 \
'android.permission.STATUS_BAR' 'STATUS_BAR - Allows an application to open, close, or disable the status bar and its icons.' 0 \
'android.permission.STATUS_BAR_SERVICE' 'STATUS_BAR_SERVICE' 0 \
'android.permission.STOP_APP_SWITCHES' 'STOP_APP_SWITCHES' 0 \
'android.permission.STORAGE_INTERNAL' 'STORAGE_INTERNAL' 0 \
'android.permission.SUBSCRIBED_FEEDS_READ' 'SUBSCRIBED_FEEDS_READ' 0 \
'android.permission.SUBSCRIBED_FEEDS_WRITE' 'SUBSCRIBED_FEEDS_WRITE' 0 \
'android.permission.SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE' 'SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE - Allows an application to subscribe to keyguard locked (i.e., showing) state.' 0 \
'android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME' 'SUBSTITUTE_NOTIFICATION_APP_NAME' 0 \
'android.permission.SYSTEM_ALERT_WINDOW' 'SYSTEM_ALERT_WINDOW - Allows an app to create windows using the type WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY, shown on top of all other apps.' 0 \
'android.permission.TABLET_MODE' 'TABLET_MODE' 0 \
'android.permission.TEMPORARY_ENABLE_ACCESSIBILITY' 'TEMPORARY_ENABLE_ACCESSIBILITY' 0 \
'android.permission.TETHER_PRIVILEGED' 'TETHER_PRIVILEGED' 0 \
'android.permission.TRANSMIT_IR' 'TRANSMIT_IR - Allows using the devices IR transmitter, if available.' 0 \
'android.permission.TRUST_LISTENER' 'TRUST_LISTENER' 0 \
'android.permission.TURN_SCREEN_ON' 'TURN_SCREEN_ON - Allows an app to turn on the screen on, e.g.with PowerManager.ACQUIRE_CAUSES_WAKEUP.' 0 \
'android.permission.TV_INPUT_HARDWARE' 'TV_INPUT_HARDWARE' 0 \
'android.permission.TV_VIRTUAL_REMOTE_CONTROLLER' 'TV_VIRTUAL_REMOTE_CONTROLLER' 0 \
'android.permission.UNINSTALL_SHORTCUT' 'UNINSTALL_SHORTCUT - ' 0 \
'android.permission.UNINSTALL_SHORTCUT' 'UNINSTALL_SHORTCUT - Dont use this permission in your app.' 0 \
'android.permission.UPDATE_APP_OPS_STATS' 'UPDATE_APP_OPS_STATS' 0 \
'android.permission.UPDATE_CONFIG' 'UPDATE_CONFIG' 0 \
'android.permission.UPDATE_DEVICE_STATS' 'UPDATE_DEVICE_STATS - Allows an application to update device statistics.' 0 \
'android.permission.UPDATE_LOCK' 'UPDATE_LOCK' 0 \
'android.permission.UPDATE_LOCK_TASK_PACKAGES' 'UPDATE_LOCK_TASK_PACKAGES' 0 \
'android.permission.UPDATE_PACKAGES_WITHOUT_USER_ACTION' 'UPDATE_PACKAGES_WITHOUT_USER_ACTION - Allows an application to indicate via PackageInstaller.SessionParams.setRequireUserAction(int) that user action should not be required for an app update.' 0 \
'android.permission.USER_ACTIVITY' 'USER_ACTIVITY' 0 \
'android.permission.USE_BIOMETRIC' 'USE_BIOMETRIC - Allows an app to use device supported biometric modalities.' 0 \
'android.permission.USE_CREDENTIALS' 'USE_CREDENTIALS' 0 \
'android.permission.USE_EXACT_ALARM' 'USE_EXACT_ALARM - Allows apps to use exact alarms just like with SCHEDULE_EXACT_ALARM but without needing to request this permission from the user.' 0 \
'android.permission.USE_FINGERPRINT' 'USE_FINGERPRINT - This constant was deprecated in API level 28. Applications should request USE_BIOMETRIC instead' 0 \
'android.permission.USE_FULL_SCREEN_INTENT' 'USE_FULL_SCREEN_INTENT - Required for apps targeting Build.VERSION_CODES.Q that want to use notification full screen intents.' 0 \
'android.permission.USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER' 'USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER - Allows to read device identifiers and use ICC based authentication like EAP-AKA.' 0 \
'android.permission.USE_SIP' 'USE_SIP - Allows an application to use SIP service.' 0 \
'android.permission.UWB_RANGING' 'UWB_RANGING - Required to be able to range to devices using ultra-wideband.' 0 \
'android.permission.VIBRATE' 'VIBRATE - Allows access to the vibrator.' 0 \
'android.permission.WAKE_LOCK' 'WAKE_LOCK - Allows using PowerManager WakeLocks to keep processor from sleeping or screen from dimming.' 0 \
'android.permission.WRITE_APN_SETTINGS' 'WRITE_APN_SETTINGS - Allows applications to write the apn settings and read sensitive fields of an existing apn settings like user and password.' 0 \
'android.permission.WRITE_BLOCKED_NUMBERS' 'WRITE_BLOCKED_NUMBERS' 0 \
'android.permission.WRITE_CALENDAR' 'WRITE_CALENDAR - Allows an application to write the users calendar data.' 0 \
'android.permission.WRITE_CALL_LOG' 'WRITE_CALL_LOG - Allows an application to write and read the users call log data.' 0 \
'android.permission.WRITE_CONTACTS' 'WRITE_CONTACTS - Allows an application to write the users contacts data.' 0 \
'android.permission.WRITE_DREAM_STATE' 'WRITE_DREAM_STATE' 0 \
'android.permission.WRITE_EXTERNAL_STORAGE' 'WRITE_EXTERNAL_STORAGE - Allows an application to write to external storage.' 0 \
'android.permission.WRITE_GSERVICES' 'WRITE_GSERVICES - Allows an application to modify the Google service map.' 0 \
'android.permission.WRITE_MEDIA_STORAGE' 'WRITE_MEDIA_STORAGE' 0 \
'android.permission.WRITE_PROFILE' 'WRITE_PROFILE' 0 \
'android.permission.WRITE_SECURE_SETTINGS' 'WRITE_SECURE_SETTINGS - Allows an application to read or write the secure system settings.' 0 \
'android.permission.WRITE_SETTINGS' 'WRITE_SETTINGS - Allows an application to read or write the system settings.' 0 \
'android.permission.WRITE_SMS' 'WRITE_SMS' 0 \
'android.permission.WRITE_SOCIAL_STREAM' 'WRITE_SOCIAL_STREAM' 0 \
'android.permission.WRITE_SYNC_SETTINGS' 'WRITE_SYNC_SETTINGS - Allows applications to write the sync settings.' 0 \
'android.permission.WRITE_VOICEMAIL' 'WRITE_VOICEMAIL - Allows an application to modify and remove existing voicemails in the system.' 0 3>&1 1>&2 2>&3 |
sed 's/$/ /' |
sed 's/"an/<uses-permission android:name="an/g;s/" /"\/>\n/g' )"}"
APP_VALUES="$(tee app-config.sh << VALUES
APP_NAME='$APP_NAME'
APP_PACKAGE='$APP_PACKAGE'
APP_VERSION_SDK_TARGET='$APP_VERSION_SDK_TARGET'
APP_VERSION_SDK_MIN='$APP_VERSION_SDK_MIN'
APP_PERMISSIONS='$APP_PERMISSIONS'
VALUES
)"
cat << INFO
Creating an skeleton for an Android app with the following info:
$APP_VALUES
INFO