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

723 lines
71 KiB
Bash
Executable file
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/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_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\.]/}"
test -d "apps/$APP_PACKAGE" && {
ECHO "There is already an app with APP_PACKAGE '$APP_PACKAGE'. Choose other APP_PACKAGE name" >&2
APP_PACKAGE=""
}
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/"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
#
#
#cat > "${APP_FOLDER}/AndroidManifest.xml" << ANDROIDMANIFEST
#<?xml version="1.0" encoding="utf-8"?>
#<manifest xmlns:android="http://schemas.android.com/apk/res/android"
# package="$APP_PACKAGE"
# android:versionCode="1"
# android:versionName="1.0">
# <uses-sdk android:minSdkVersion="$APP_VERSION_SDK_MIN"
# android:targetSdkVersion="$APP_VERSION_SDK_TARGET"/>
#$(sed 's/^/ /' <<< "$APP_PERMISSIONS")
# <application android:label="$APP_NAME" android:icon="@drawable/ic_launcher">
# <activity android:name="$APP_PACKAGE.AppActivity"
# android:exported="true"
# android:configChanges="orientation|screenSize|keyboardHidden"
# android:label="$APP_NAME">
# <intent-filter>
# <action android:name="android.intent.action.MAIN" />
# <category android:name="android.intent.category.LAUNCHER" />
# </intent-filter>
# </activity>
# </application>
#</manifest>
#ANDROIDMANIFEST
#
#cat Dockerfile > "${APP_FOLDER}/Dockerfile"
#cat >> "${APP_FOLDER}/Dockerfile" << DOCKERFILEADDITION
#RUN echo "$YESACCEPT" | sdkmanager --install "build-tools;33.0.2"
#RUN echo "$YESACCEPT" | sdkmanager --install "platforms;android-33"
#DOCKERFILEADDITION
#
#
#