blob: 497bfbeb598bd8624d67077d5409cf00601545db [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2018 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License"" />
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<roles>
<permission-set name="phone">
<permission name="android.permission.READ_PHONE_STATE" />
<permission name="android.permission.CALL_PHONE" />
<permission name="android.permission.READ_CALL_LOG" />
<permission name="android.permission.WRITE_CALL_LOG" />
<permission name="com.android.voicemail.permission.ADD_VOICEMAIL" />
<permission name="com.android.voicemail.permission.READ_VOICEMAIL" minSdkVersion="31" />
<permission name="com.android.voicemail.permission.WRITE_VOICEMAIL" minSdkVersion="31" />
<permission name="android.permission.USE_SIP" />
<permission name="android.permission.PROCESS_OUTGOING_CALLS" />
<permission name="android.permission.ANSWER_PHONE_CALLS" />
</permission-set>
<permission-set name="contacts">
<permission name="android.permission.READ_CONTACTS" />
<permission name="android.permission.WRITE_CONTACTS" />
<permission name="android.permission.GET_ACCOUNTS" />
</permission-set>
<permission-set name="location">
<permission name="android.permission.ACCESS_COARSE_LOCATION" />
<permission name="android.permission.ACCESS_FINE_LOCATION" />
</permission-set>
<permission-set name="coarse_location">
<permission name="android.permission.ACCESS_COARSE_LOCATION" />
</permission-set>
<permission-set name="calendar">
<permission name="android.permission.READ_CALENDAR" />
<permission name="android.permission.WRITE_CALENDAR" />
</permission-set>
<permission-set name="sms">
<permission name="android.permission.SEND_SMS" />
<permission name="android.permission.RECEIVE_SMS" />
<permission name="android.permission.READ_SMS" />
<permission name="android.permission.RECEIVE_WAP_PUSH" />
<permission name="android.permission.RECEIVE_MMS" />
<permission name="android.permission.READ_CELL_BROADCASTS" />
</permission-set>
<permission-set name="microphone">
<permission name="android.permission.RECORD_AUDIO" />
</permission-set>
<permission-set name="camera">
<permission name="android.permission.CAMERA" />
</permission-set>
<permission-set name="sensors">
<permission name="android.permission.BODY_SENSORS" />
<permission name="android.permission.BODY_SENSORS_BACKGROUND" minSdkVersion="33" />
</permission-set>
<permission-set name="storage">
<permission name="android.permission.READ_EXTERNAL_STORAGE" />
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" />
<permission name="android.permission.READ_MEDIA_AUDIO" minSdkVersion="33" />
<permission name="android.permission.READ_MEDIA_VIDEO" minSdkVersion="33" />
<permission name="android.permission.READ_MEDIA_IMAGES" minSdkVersion="33" />
<permission name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" minSdkVersion="34" />
</permission-set>
<permission-set name="nearby_devices">
<permission name="android.permission.BLUETOOTH_ADVERTISE" minSdkVersion="31" />
<permission name="android.permission.BLUETOOTH_CONNECT" minSdkVersion="31" />
<permission name="android.permission.BLUETOOTH_SCAN" minSdkVersion="31" />
<permission name="android.permission.NEARBY_WIFI_DEVICES" minSdkVersion="33" />
</permission-set>
<permission-set name="notifications">
<permission name="android.permission.POST_NOTIFICATIONS" minSdkVersion="33" />
</permission-set>
<role
name="android.app.role.ASSISTANT"
behavior="AssistantRoleBehavior"
defaultHolders="config_defaultAssistant"
description="@string/role_assistant_description"
exclusive="true"
fallBackToDefaultHolder="true"
showNone="true"
label="@string/role_assistant_label"
overrideUserWhenGranting="true"
requestable="false"
shortLabel="@string/role_assistant_short_label"
uiBehavior="AssistantRoleUiBehavior">
<required-components>
<!-- Qualified components are determined int AssistantRoleBehavior. This comment here is
ignored and represents just a rough description
<any-of>
<service permission="android.permission.BIND_VOICE_INTERACTION"
supportsAssist="true">
<intent-filter>
<action name="android.service.voice.VoiceInteractionService" />
</intent-filter>
<meta-data name="android.voice_interaction"
optional="false">
required tag in metadata xml: sessionService
required tag in metadata xml: recognitionService
required tag in metadata xml: supportsAssist = true
</meta-data>
</service>
<activity>
<intent-filter>
<action name="android.intent.action.ASSIST" />
</intent-filter>
</activity>
</ any-of>
-->
</required-components>
<permissions>
<permission-set name="sms" />
<permission name="android.permission.READ_CALL_LOG" />
<permission name="android.permission.ACCESS_BLOBS_ACROSS_USERS" minSdkVersion="31" />
<permission name="android.permission.READ_ASSISTANT_APP_SEARCH_DATA"
minSdkVersion="33"/>
<permission name="android.permission.SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE"
minSdkVersion="33" />
<permission name="android.permission.EXECUTE_APP_ACTION"
minSdkVersion="34" />
</permissions>
<app-op-permissions>
<app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" />
</app-op-permissions>
</role>
<!---
~ @see com.android.settings.applications.defaultapps.DefaultBrowserPreferenceController
~ @see com.android.settings.applications.defaultapps.DefaultBrowserPicker
~ @see com.android.server.pm.PackageManagerService.resolveAllBrowserApps(int)
~ @see com.android.server.pm.PackageManagerService.setDefaultBrowserPackageName(String, int)
~ @see com.android.server.pm.permission.DefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultBrowser(String, int)
-->
<role
name="android.app.role.BROWSER"
behavior="BrowserRoleBehavior"
defaultHolders="config_defaultBrowser"
description="@string/role_browser_description"
exclusive="true"
label="@string/role_browser_label"
overrideUserWhenGranting="true"
requestDescription="@string/role_browser_request_description"
requestTitle="@string/role_browser_request_title"
shortLabel="@string/role_browser_short_label">
<!--
~ Required components matching is handled in BrowserRoleBehavior because it needs the
~ PackageManager.MATCH_ALL flag and other manual filtering, which cannot fit in our
~ current mechanism easily.
-->
<!--
<required-components>
<activity>
<intent-filter>
<action name="android.intent.action.VIEW" />
<category name="android.intent.category.BROWSABLE" />
<data scheme="http" />
</intent-filter>
</activity>
</required-components>
-->
<!--
~ Not need to set preferred activity because PackageManager handles browser intents
~ specially.
-->
<permissions>
<permission name="android.permission.PROVIDE_OWN_AUTOFILL_SUGGESTIONS" minSdkVersion="34" />
</permissions>
</role>
<!--
~ @see com.android.settings.applications.defaultapps.DefaultPhonePreferenceController
~ @see com.android.settings.applications.defaultapps.DefaultPhonePicker
~ @see android.telecom.DefaultDialerManager
~ @see com.android.server.pm.permission.DefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultDialerApp(String, int)
~ @see com.android.server.pm.Settings.setDefaultDialerPackageNameLPw(String, int)
-->
<role
name="android.app.role.DIALER"
behavior="DialerRoleBehavior"
defaultHolders="config_defaultDialer"
description="@string/role_dialer_description"
exclusive="true"
fallBackToDefaultHolder="true"
label="@string/role_dialer_label"
overrideUserWhenGranting="true"
requestDescription="@string/role_dialer_request_description"
requestTitle="@string/role_dialer_request_title"
searchKeywords="@string/role_dialer_search_keywords"
shortLabel="@string/role_dialer_short_label"
uiBehavior="DialerRoleUiBehavior">
<required-components>
<activity>
<intent-filter>
<action name="android.intent.action.DIAL" />
</intent-filter>
</activity>
<activity>
<intent-filter>
<action name="android.intent.action.DIAL" />
<data scheme="tel" />
</intent-filter>
</activity>
<service minTargetSdkVersion="33" permission="android.permission.BIND_INCALL_SERVICE">
<meta-data name="android.telecom.IN_CALL_SERVICE_UI" value="true" />
<meta-data
name="android.telecom.IN_CALL_SERVICE_CAR_MODE_UI"
value="true"
prohibited="true" />
<intent-filter>
<action name="android.telecom.InCallService" />
</intent-filter>
</service>
</required-components>
<permissions>
<permission-set name="phone" />
<permission-set name="contacts" />
<permission-set name="sms" />
<permission-set name="microphone" />
<permission-set name="camera" />
<permission-set name="notifications" />
</permissions>
<app-op-permissions>
<app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" />
</app-op-permissions>
<app-ops>
<!--
~ @see com.android.settings.applications.defaultapps.DefaultPhonePicker#setDefaultKey(String)
~ @see com.android.settings.fuelgauge.BatteryUtils#setForceAppStandby(int, String, int)
-->
<app-op name="android:run_in_background" maxTargetSdkVersion="25" mode="allowed" />
<app-op name="android:run_any_in_background" mode="allowed" />
</app-ops>
<preferred-activities>
<preferred-activity>
<activity>
<intent-filter>
<action name="android.intent.action.DIAL" />
</intent-filter>
</activity>
<intent-filter>
<action name="android.intent.action.DIAL" />
</intent-filter>
</preferred-activity>
<preferred-activity>
<activity>
<intent-filter>
<action name="android.intent.action.DIAL" />
<data scheme="tel" />
</intent-filter>
</activity>
<intent-filter>
<action name="android.intent.action.DIAL" />
<data scheme="tel" />
</intent-filter>
</preferred-activity>
</preferred-activities>
</role>
<!--
~ @see com.android.settings.applications.defaultapps.DefaultSmsPreferenceController
~ @see com.android.settings.applications.defaultapps.DefaultSmsPicker
~ @see com.android.internal.telephony.SmsApplication
~ @see com.android.server.pm.permission.DefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultSmsApp(String, int)
-->
<role
name="android.app.role.SMS"
behavior="SmsRoleBehavior"
defaultHolders="config_defaultSms"
description="@string/role_sms_description"
exclusive="true"
label="@string/role_sms_label"
overrideUserWhenGranting="true"
requestDescription="@string/role_sms_request_description"
requestTitle="@string/role_sms_request_title"
searchKeywords="@string/role_sms_search_keywords"
shortLabel="@string/role_sms_short_label"
uiBehavior="SmsRoleUiBehavior">
<required-components>
<receiver permission="android.permission.BROADCAST_SMS">
<intent-filter>
<action name="android.provider.Telephony.SMS_DELIVER" />
</intent-filter>
</receiver>
<receiver permission="android.permission.BROADCAST_WAP_PUSH">
<intent-filter>
<action name="android.provider.Telephony.WAP_PUSH_DELIVER" />
<data mimeType="application/vnd.wap.mms-message" />
</intent-filter>
</receiver>
<service permission="android.permission.SEND_RESPOND_VIA_MESSAGE">
<intent-filter>
<action name="android.intent.action.RESPOND_VIA_MESSAGE" />
<data scheme="smsto" />
</intent-filter>
</service>
<activity>
<intent-filter>
<action name="android.intent.action.SENDTO" />
<data scheme="smsto" />
</intent-filter>
</activity>
</required-components>
<permissions>
<permission-set name="phone" />
<permission-set name="contacts" />
<permission-set name="sms" />
<permission-set name="storage" />
<permission-set name="microphone" />
<permission-set name="camera" />
<permission-set name="notifications" />
<permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" minSdkVersion="31" />
</permissions>
<app-ops>
<app-op name="android:write_sms" mode="allowed" />
<!--
~ @see com.android.settings.applications.defaultapps.DefaultSmsPicker#setDefaultKey(String)
~ @see com.android.settings.fuelgauge.BatteryUtils#setForceAppStandby(int, String, int)
-->
<app-op name="android:run_in_background" maxTargetSdkVersion="25" mode="allowed" />
<app-op name="android:run_any_in_background" mode="allowed" />
<app-op name="android:read_device_identifiers" mode="allowed" />
</app-ops>
<preferred-activities>
<preferred-activity>
<activity>
<intent-filter>
<action name="android.intent.action.SENDTO" />
<data scheme="smsto" />
</intent-filter>
</activity>
<intent-filter>
<action name="android.intent.action.SENDTO" />
<data scheme="sms" />
</intent-filter>
<intent-filter>
<action name="android.intent.action.SENDTO" />
<data scheme="smsto" />
</intent-filter>
<intent-filter>
<action name="android.intent.action.SENDTO" />
<data scheme="mms" />
</intent-filter>
<intent-filter>
<action name="android.intent.action.SENDTO" />
<data scheme="mmsto" />
</intent-filter>
</preferred-activity>
</preferred-activities>
</role>
<!---
~ @see com.android.settings.applications.defaultapps.DefaultEmergencyPreferenceController
~ @see com.android.settings.applications.defaultapps.DefaultEmergencyPicker
~ @see com.android.phone.EmergencyAssistanceHelper
-->
<role
name="android.app.role.EMERGENCY"
behavior="EmergencyRoleBehavior"
description="@string/role_emergency_description"
exclusive="true"
label="@string/role_emergency_label"
overrideUserWhenGranting="true"
requestDescription="@string/role_emergency_request_description"
requestTitle="@string/role_emergency_request_title"
searchKeywords="@string/role_emergency_search_keywords"
shortLabel="@string/role_emergency_short_label"
systemOnly="true"
uiBehavior="EmergencyRoleUiBehavior">
<required-components>
<activity>
<intent-filter>
<action name="android.telephony.action.EMERGENCY_ASSISTANCE" />
</intent-filter>
</activity>
</required-components>
<permissions>
<permission-set name="notifications" />
<permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" minSdkVersion="31" />
<permission name="android.permission.OBSERVE_SENSOR_PRIVACY" minSdkVersion="31" />
</permissions>
</role>
<!---
~ @see com.android.settings.applications.defaultapps.DefaultHomePreferenceController
~ @see com.android.settings.applications.defaultapps.DefaultHomePicker
~ @see com.android.server.pm.PackageManagerService#setHomeActivity(ComponentName, int)
-->
<role
name="android.app.role.HOME"
behavior="HomeRoleBehavior"
description="@string/role_home_description"
exclusive="true"
label="@string/role_home_label"
overrideUserWhenGranting="true"
requestDescription="@string/role_home_request_description"
requestTitle="@string/role_home_request_title"
searchKeywords="@string/role_home_search_keywords"
shortLabel="@string/role_home_short_label"
uiBehavior="HomeRoleUiBehavior">
<!-- Also used by HomeRoleBehavior.getFallbackHolder(). -->
<required-components>
<activity>
<intent-filter>
<action name="android.intent.action.MAIN" />
<category name="android.intent.category.HOME" />
</intent-filter>
</activity>
</required-components>
<preferred-activities>
<preferred-activity>
<activity>
<intent-filter>
<action name="android.intent.action.MAIN" />
<category name="android.intent.category.HOME" />
</intent-filter>
</activity>
<intent-filter>
<action name="android.intent.action.MAIN" />
<category name="android.intent.category.HOME" />
</intent-filter>
</preferred-activity>
</preferred-activities>
<permissions>
<permission name="android.permission.READ_HOME_APP_SEARCH_DATA" minSdkVersion="33"/>
</permissions>
</role>
<!--- @see android.telecom.CallRedirectionService -->
<role
name="android.app.role.CALL_REDIRECTION"
defaultHolders="config_defaultCallRedirection"
description="@string/role_call_redirection_description"
exclusive="true"
label="@string/role_call_redirection_label"
overrideUserWhenGranting="true"
requestDescription="@string/role_call_redirection_request_description"
requestTitle="@string/role_call_redirection_request_title"
shortLabel="@string/role_call_redirection_short_label"
showNone="true">
<required-components>
<service permission="android.permission.BIND_CALL_REDIRECTION_SERVICE">
<intent-filter>
<action name="android.telecom.CallRedirectionService" />
</intent-filter>
</service>
</required-components>
</role>
<!--- @see android.telecom.CallScreeningService -->
<role
name="android.app.role.CALL_SCREENING"
defaultHolders="config_defaultCallScreening"
description="@string/role_call_screening_description"
exclusive="true"
label="@string/role_call_screening_label"
overrideUserWhenGranting="true"
requestDescription="@string/role_call_screening_request_description"
requestTitle="@string/role_call_screening_request_title"
shortLabel="@string/role_call_screening_short_label"
showNone="true">
<required-components>
<service permission="android.permission.BIND_SCREENING_SERVICE">
<intent-filter>
<action name="android.telecom.CallScreeningService" />
</intent-filter>
</service>
</required-components>
<permissions>
<permission-set name="notifications" />
</permissions>
<app-op-permissions>
<app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" />
</app-op-permissions>
</role>
<role
name="android.app.role.SYSTEM_GALLERY"
defaultHolders="config_systemGallery"
exclusive="true"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="storage" />
<permission name="android.permission.ACCESS_MEDIA_LOCATION" />
<permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" minSdkVersion="31" />
</permissions>
<app-ops>
<app-op name="android:write_media_images" mode="allowed" />
<app-op name="android:write_media_video" mode="allowed" />
</app-ops>
</role>
<role
name="android.app.role.SYSTEM_AUTOMOTIVE_CLUSTER"
behavior="AutomotiveRoleBehavior"
defaultHolders="config_systemAutomotiveCluster"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission name="android.permission.ANSWER_PHONE_CALLS" />
<permission name="android.permission.READ_CALL_LOG" />
<permission name="android.permission.READ_CONTACTS" />
<permission name="android.car.permission.CAR_ENERGY"/>
</permissions>
</role>
<role
name="android.app.role.COMPANION_DEVICE_WATCH"
behavior="CompanionDeviceWatchRoleBehavior"
description="@string/role_watch_description"
exclusive="false"
minSdkVersion="31"
systemOnly="false"
visible="false">
<permissions>
<permission-set name="calendar" />
<permission-set name="phone" />
<permission-set name="sms" />
<permission-set name="contacts" />
<permission-set name="nearby_devices" />
<permission-set name="notifications" minSdkVersion="35" />
</permissions>
<app-op-permissions>
<app-op-permission name="android.permission.MANAGE_ONGOING_CALLS" />
<app-op-permission name="android.permission.USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER" />
<app-op-permission name="android.permission.MEDIA_ROUTING_CONTROL" minSdkVersion="35" />
</app-op-permissions>
</role>
<role
name="android.app.role.SYSTEM_AUTOMOTIVE_PROJECTION"
allowBypassingQualification="true"
defaultHolders="config_systemAutomotiveProjection"
exclusive="false"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="microphone" />
<permission-set name="location" />
<permission-set name="nearby_devices" />
<permission-set name="notifications" />
<permission name="android.permission.ADD_ALWAYS_UNLOCKED_DISPLAY" minSdkVersion="33" />
<permission name="android.permission.CALL_PHONE" />
<permission name="android.permission.CREATE_VIRTUAL_DEVICE" minSdkVersion="33" />
<permission name="android.permission.READ_CALENDAR" />
<permission name="android.permission.READ_CALL_LOG" />
<permission name="android.permission.READ_CONTACTS" />
<permission name="android.permission.READ_PHONE_STATE" />
<permission name="android.permission.RECEIVE_SMS" />
<permission name="android.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION" minSdkVersion="33" />
<permission name="android.permission.SEND_SMS" />
<permission name="android.permission.TOGGLE_AUTOMOTIVE_PROJECTION" minSdkVersion="33" />
<permission name="android.permission.ADD_TRUSTED_DISPLAY" minSdkVersion="34"/>
<permission name="android.permission.ASSOCIATE_COMPANION_DEVICES" minSdkVersion="34"/>
</permissions>
</role>
<role
name="android.app.role.SYSTEM_SHELL"
behavior="SystemShellRoleBehavior"
defaultHolders="config_systemShell"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false">
<permissions>
<!-- Used for CTS testing -->
<permission name="android.permission.CREATE_VIRTUAL_DEVICE" minSdkVersion="33" />
<permission name="android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE" />
<permission name="android.permission.ACCESS_AMBIENT_CONTEXT_EVENT" minSdkVersion="33"/>
<permission name="android.permission.PERFORM_IMS_SINGLE_REGISTRATION" />
<permission name="android.permission.BACKGROUND_CAMERA" />
<permission name="android.permission.RECORD_BACKGROUND_AUDIO" />
<permission name="android.permission.BYPASS_ROLE_QUALIFICATION" />
<permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
<permission name="android.permission.MANAGE_SENSOR_PRIVACY" />
<permission name="android.permission.READ_GLOBAL_APP_SEARCH_DATA" />
<permission name="android.permission.TOGGLE_AUTOMOTIVE_PROJECTION" minSdkVersion="33" />
<permission name="android.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS"
minSdkVersion="33" />
<permission name="android.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION"
minSdkVersion="33" />
<permission name="android.permission.MANAGE_SAFETY_CENTER"
minSdkVersion="33" />
<permission name="android.permission.ADD_TRUSTED_DISPLAY" minSdkVersion="33" />
<permission name="android.permission.ADD_ALWAYS_UNLOCKED_DISPLAY" minSdkVersion="33" />
<permission name="android.permission.SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE"
minSdkVersion="33" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_ACCOUNT_MANAGEMENT"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_AIRPLANE_MODE"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_APPS_CONTROL"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_APP_EXEMPTIONS"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_APP_RESTRICTIONS"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_BLUETOOTH"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_CALLS" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_CAMERA"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_DEBUGGING_FEATURES"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_FACTORY_RESET"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_FUN" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_INSTALL_UNKNOWN_SOURCES"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_KEYGUARD"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_LOCK" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_LOCK_TASK"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_MOBILE_NETWORK"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_MODIFY_USERS"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_PACKAGE_STATE"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_PHYSICAL_MEDIA"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_RESET_PASSWORD"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_RUNTIME_PERMISSIONS"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_SAFE_BOOT"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_SMS" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_STATUS_BAR"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_TIME" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_USB_FILE_TRANSFER"
minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_WINDOWS" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_WIPE_DATA"
minSdkVersion="34" />
<permission name="android.permission.SET_TIME" minSdkVersion="34" />
<permission name="android.permission.SET_TIME_ZONE" minSdkVersion="34" />
<permission name="android.permission.SATELLITE_COMMUNICATION" minSdkVersion="34" />
<permission name="android.permission.ALWAYS_UPDATE_WALLPAPER" minSdkVersion="35" />
</permissions>
</role>
<role
name="android.app.role.SYSTEM_CONTACTS"
defaultHolders="config_systemContacts"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission name="android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE" />
<permission name="android.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS"
minSdkVersion="33" />
</permissions>
</role>
<role
name="android.app.role.SYSTEM_SPEECH_RECOGNIZER"
allowBypassingQualification="true"
defaultHolders="config_systemSpeechRecognizer"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission name="android.permission.RECORD_AUDIO" />
<permission name="android.permission.UPDATE_APP_OPS_STATS" />
</permissions>
<required-components>
<service>
<intent-filter>
<action name="android.speech.RecognitionService" />
</intent-filter>
</service>
</required-components>
</role>
<role
name="android.app.role.SYSTEM_WIFI_COEX_MANAGER"
defaultHolders="config_systemWifiCoexManager"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission name="android.permission.WIFI_ACCESS_COEX_UNSAFE_CHANNELS" />
<permission name="android.permission.WIFI_UPDATE_COEX_UNSAFE_CHANNELS" />
</permissions>
</role>
<role
name="android.app.role.SYSTEM_WELLBEING"
defaultHolders="config_systemWellbeing"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false" >
<permissions>
<permission-set name="notifications" />
<permission name="android.permission.ACCESS_AMBIENT_CONTEXT_EVENT" minSdkVersion="33"/>
<permission name="android.permission.ACCESS_INSTANT_APPS"/>
<permission name="android.permission.START_CROSS_PROFILE_ACTIVITIES" minSdkVersion="33"/>
<permission name="android.permission.SUSPEND_APPS"/>
<permission name="android.permission.SYSTEM_APPLICATION_OVERLAY"/>
</permissions>
<app-op-permissions>
<app-op-permission name="android.permission.SCHEDULE_EXACT_ALARM" minSdkVersion="34"/>
</app-op-permissions>
</role>
<!---
~ A role for the notification handler on TV devices.
~ Note: on TV devices that have the Dashboard screen, the holder for this role is responsible
~ for it, which is why it needs OBSERVE_SENSOR_PRIVACY permission (the Dashboard displays
~ the state of the privacy sensors).
-->
<role
name="android.app.role.SYSTEM_TELEVISION_NOTIFICATION_HANDLER"
behavior="TelevisionRoleBehavior"
defaultHolders="config_systemTelevisionNotificationHandler"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
<permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
</permissions>
</role>
<!---
A role for the system package that is allowed to create CompanionDeviceManager associations
based on user consent to allow the associated app to manage the associated device.
-->
<role
name="android.app.role.SYSTEM_COMPANION_DEVICE_PROVIDER"
defaultHolders="config_systemCompanionDeviceProvider"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false" >
<permissions>
<permission name="android.permission.ASSOCIATE_COMPANION_DEVICES"/>
</permissions>
</role>
<!---
~ A role for the system package that provides privacy-preserving intelligent processor for
~ system UI features.
~
~ A package holding this role MUST comply with requirements outlined in the Android CDD
~ section "9.8.6 Content Capture".
~ Example link for Android 11:
~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
~
~ In addition, packages MUST NOT:
~ - Request INTERNET permission. Instead packages MUST access the internet through
~ well-defined APIs in an open source project.
~ - Perform direct binds to other applications, except the following system packages:
~ - Bluetooth
~ - Contacts
~ - Media
~ - Telephony
~ - System UI
~ - Component providing internet APIs (see above)
~ To achieve this packages MUST set up explicit <allow-association> configuration in the
~ system config.
-->
<role
name="android.app.role.SYSTEM_UI_INTELLIGENCE"
defaultHolders="config_systemUiIntelligence"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="notifications" />
<permission name="android.permission.ACCESS_SHORTCUTS" />
<permission name="android.permission.ACCESS_BACKGROUND_LOCATION" minSdkVersion="33" />
<permission name="android.permission.ACCESS_COARSE_LOCATION" minSdkVersion="33" />
<permission name="android.permission.ACCESS_FINE_LOCATION" minSdkVersion="33" />
<permission name="android.permission.BLUETOOTH_CONNECT" />
<permission name="android.permission.BLUETOOTH_SCAN" />
<permission name="android.permission.MANAGE_APP_PREDICTIONS" />
<permission name="android.permission.UNLIMITED_SHORTCUTS_API_CALLS" />
<permission name="android.permission.MANAGE_SEARCH_UI" />
<permission name="android.permission.READ_CALL_LOG" minSdkVersion="33" />
<permission name="android.permission.READ_CONTACTS" minSdkVersion="33" />
<permission name="android.permission.READ_EXTERNAL_STORAGE" />
<permission name="android.permission.READ_MEDIA_AUDIO" minSdkVersion="33" />
<permission name="android.permission.READ_MEDIA_IMAGES" minSdkVersion="33" />
<permission name="android.permission.READ_MEDIA_VIDEO" minSdkVersion="33" />
<permission name="android.permission.READ_SMS" minSdkVersion="33" />
<permission name="android.permission.READ_PEOPLE_DATA" />
<permission name="android.permission.READ_GLOBAL_APP_SEARCH_DATA" />
</permissions>
</role>
<!---
~ A role for the system package that provides on-device intelligent processor for ambient
~ audio.
~
~ A package holding this role MUST comply with requirements outlined in the Android CDD
~ section "9.8.6 Content Capture".
~ Example link for Android 11:
~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
~
~ In addition, packages MUST NOT:
~ - Request INTERNET permission. Instead packages MUST access the internet through
~ well-defined APIs in an open source project.
~ - Perform direct binds to other applications, except the following system packages:
~ - Bluetooth
~ - Contacts
~ - Media
~ - Telephony
~ - System UI
~ - Component providing internet APIs (see above)
~ To achieve this packages MUST set up explicit <allow-association> configuration in the
~ system config.
-->
<role
name="android.app.role.SYSTEM_AMBIENT_AUDIO_INTELLIGENCE"
defaultHolders="config_systemAmbientAudioIntelligence"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="notifications" />
<permission name="android.permission.CAPTURE_AUDIO_OUTPUT" />
<permission name="android.permission.CAPTURE_MEDIA_OUTPUT" />
<permission name="android.permission.CAPTURE_VOICE_COMMUNICATION_OUTPUT" />
<permission name="android.permission.MODIFY_AUDIO_ROUTING" />
<permission name="android.permission.RECORD_AUDIO" />
<permission name="android.permission.CAPTURE_AUDIO_HOTWORD" />
<permission name="android.permission.EXEMPT_FROM_AUDIO_RECORD_RESTRICTIONS" />
<permission name="android.permission.MANAGE_SOUND_TRIGGER" />
<permission name="android.permission.LOCATION_HARDWARE" />
<permission name="android.permission.MANAGE_MUSIC_RECOGNITION" />
<permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
<permission name="android.permission.READ_PHONE_STATE" minSdkVersion="33" />
</permissions>
</role>
<!---
~ A role for the system package that provides on-device intelligent processor for audio.
~
~ A package holding this role MUST comply with requirements outlined in the Android CDD
~ section "9.8.6 Content Capture".
~ Example link for Android 11:
~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
~
~ In addition, packages MUST NOT:
~ - Request INTERNET permission. Instead packages MUST access the internet through
~ well-defined APIs in an open source project.
~ - Perform direct binds to other applications, except the following system packages:
~ - Bluetooth
~ - Contacts
~ - Media
~ - Telephony
~ - System UI
~ - Component providing internet APIs (see above)
~ To achieve this packages MUST set up explicit <allow-association> configuration in the
~ system config.
-->
<role
name="android.app.role.SYSTEM_AUDIO_INTELLIGENCE"
defaultHolders="config_systemAudioIntelligence"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="notifications" />
<permission name="android.permission.CAPTURE_AUDIO_OUTPUT" />
<permission name="android.permission.CAPTURE_MEDIA_OUTPUT" />
<permission name="android.permission.CAPTURE_VOICE_COMMUNICATION_OUTPUT" />
<permission name="android.permission.CONTROL_INCALL_EXPERIENCE" />
<permission name="android.permission.MODIFY_AUDIO_ROUTING" />
<permission name="android.permission.MODIFY_PHONE_STATE" />
<permission name="android.permission.READ_CALL_LOG" minSdkVersion="33" />
<permission name="android.permission.READ_PHONE_STATE" minSdkVersion="33" />
<permission name="android.permission.RECORD_AUDIO" />
<permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
<permission name="android.permission.SET_SYSTEM_AUDIO_CAPTION" minSdkVersion="33" />
</permissions>
</role>
<!---
~ A role for the system package that provides on-device intelligent processor for
~ notifications.
~
~ A package holding this role MUST comply with requirements outlined in the Android CDD
~ section "9.8.6 Content Capture".
~ Example link for Android 11:
~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
~
~ In addition, packages MUST NOT:
~ - Request INTERNET permission. Instead packages MUST access the internet through
~ well-defined APIs in an open source project.
~ - Perform direct binds to other applications, except the following system packages:
~ - Bluetooth
~ - Contacts
~ - Media
~ - Telephony
~ - System UI
~ - Component providing internet APIs (see above)
~ To achieve this packages MUST set up explicit <allow-association> configuration in the
~ system config.
-->
<role
name="android.app.role.SYSTEM_NOTIFICATION_INTELLIGENCE"
defaultHolders="config_systemNotificationIntelligence"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="notifications" />
<permission name="android.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE" />
<permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
</permissions>
</role>
<!---
~ A role for the system package that provides on-device intelligent processor for text.
~
~ A package holding this role MUST comply with requirements outlined in the Android CDD
~ section "9.8.6 Content Capture".
~ Example link for Android 11:
~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
~
~ In addition, packages MUST NOT:
~ - Request INTERNET permission. Instead packages MUST access the internet through
~ well-defined APIs in an open source project.
~ - Perform direct binds to other applications, except the following system packages:
~ - Bluetooth
~ - Contacts
~ - Media
~ - Telephony
~ - System UI
~ - Component providing internet APIs (see above)
~ To achieve this packages MUST set up explicit <allow-association> configuration in the
~ system config.
-->
<role
name="android.app.role.SYSTEM_TEXT_INTELLIGENCE"
defaultHolders="config_systemTextIntelligence"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="notifications" />
<permission name="android.permission.ACCESS_BACKGROUND_LOCATION" minSdkVersion="33" />
<permission name="android.permission.ACCESS_COARSE_LOCATION" minSdkVersion="33" />
<permission name="android.permission.MANAGE_UI_TRANSLATION" />
<permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
<permission name="android.permission.READ_CLIPBOARD_IN_BACKGROUND" minSdkVersion="33" />
</permissions>
</role>
<!---
~ A role for the system package that provides on-device intelligent processor for visual
~ features.
~
~ A package holding this role MUST comply with requirements outlined in the Android CDD
~ section "9.8.6 Content Capture".
~ Example link for Android 11:
~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
~
~ In addition, packages MUST NOT:
~ - Request INTERNET permission. Instead packages MUST access the internet through
~ well-defined APIs in an open source project.
~ - Perform direct binds to other applications, except the following system packages:
~ - Bluetooth
~ - Contacts
~ - Media
~ - Telephony
~ - System UI
~ - Component providing internet APIs (see above)
~ To achieve this packages MUST set up explicit <allow-association> configuration in the
~ system config.
-->
<role
name="android.app.role.SYSTEM_VISUAL_INTELLIGENCE"
defaultHolders="config_systemVisualIntelligence"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="notifications" />
<permission name="android.permission.CAMERA" />
<permission name="android.permission.SYSTEM_CAMERA" />
<permission name="android.permission.UPDATE_DEVICE_STATS" />
<permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
</permissions>
</role>
<!---
~ A role for the system package that is allowed to manage documents (e.g., attach files etc.)
~ on the device.
~ A package holding this role must comply with the requirements outlined in the Android CDD
~ section "2.2.3. Software" under heading "3.2.3.1/H-0-1".
~ Example link for Android 11:
~ https://source.android.com/compatibility/11/android-11-cdd#2_2_3_software
-->
<role
name="android.app.role.SYSTEM_DOCUMENT_MANAGER"
behavior="DocumentManagerRoleBehavior"
exclusive="true"
minSdkVersion="33"
static="true"
systemOnly="true"
visible="false">
<required-components>
<!--- Flag value is MATCH_DISABLED_COMPONENTS-->
<activity queryFlags="0x00000200">
<intent-filter>
<action name="android.intent.action.OPEN_DOCUMENT" />
<category name="android.intent.category.OPENABLE" />
<data mimeType="*/*" />
</intent-filter>
</activity>
</required-components>
<permissions>
<permission-set name="notifications" />
<permission name="android.permission.MANAGE_DOCUMENTS" />
<permission name="android.permission.CACHE_CONTENT" />
<permission name="android.permission.REMOVE_TASKS" />
</permissions>
</role>
<!---
~ A role for the system package that serves as the activity recognizer on the device.
~ This is the application that provides the data behind the activity recognition
~ runtime permission.
-->
<role
name="android.app.role.SYSTEM_ACTIVITY_RECOGNIZER"
allowBypassingQualification="true"
defaultHolders="config_systemActivityRecognizer"
exclusive="false"
static="true"
systemOnly="true"
visible="false">
<required-components>
<service>
<intent-filter>
<action name="android.intent.action.ACTIVITY_RECOGNIZER" />
</intent-filter>
</service>
</required-components>
</role>
<!---
~ A role for the system UI package.
-->
<role
name="android.app.role.SYSTEM_UI"
defaultHolders="config_systemUi"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="notifications" />
<permission name="android.permission.MANAGE_SENSOR_PRIVACY" />
<permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
<permission name="android.permission.ACCESS_AMBIENT_CONTEXT_EVENT" minSdkVersion="33"/>
</permissions>
</role>
<!---
~ A role for the package responsible for interacting with a TV remote.
-->
<role
name="android.app.role.SYSTEM_TELEVISION_REMOTE_SERVICE"
behavior="TelevisionRoleBehavior"
defaultHolders="config_systemTelevisionRemoteService"
exclusive="true"
minSdkVersion="31"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
</permissions>
</role>
<!---
~ A role for the companion device package that create and manage connections to connected
~ devices and perform app streaming to the devices.
-->
<role
name="android.app.role.COMPANION_DEVICE_APP_STREAMING"
allowBypassingQualification="true"
behavior="CompanionDeviceAppStreamingRoleBehavior"
description="@string/role_app_streaming_description"
exclusive="false"
minSdkVersion="33"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="notifications" />
<!-- For capturing audio from the app on the device. -->
<permission name="android.permission.RECORD_AUDIO" />
<permission name="android.permission.CREATE_VIRTUAL_DEVICE" minSdkVersion="33" />
<permission name="android.permission.ADD_TRUSTED_DISPLAY" minSdkVersion="33" />
<permission name="android.permission.ADD_ALWAYS_UNLOCKED_DISPLAY" minSdkVersion="33" />
<!--TODO(b/201605314) For calling Telecom framework API for audio streaming-->
<!--<permission name="android.permission.PROVIDE_CALL_ENDPOINTS" />-->
</permissions>
</role>
<!---
~ A role for the companion device package that allows connected computers to mirror
~ notifications and access photos and media from the phone.
-->
<role
name="android.app.role.COMPANION_DEVICE_COMPUTER"
allowBypassingQualification="true"
behavior="CompanionDeviceComputerRoleBehavior"
description="@string/role_companion_device_computer_description"
exclusive="false"
minSdkVersion="33"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="notifications" />
<permission-set name="storage" />
</permissions>
</role>
<role
name="android.app.role.COMPANION_DEVICE_GLASSES"
behavior="CompanionDeviceGlassesRoleBehavior"
exclusive="false"
minSdkVersion="34"
systemOnly="false"
visible="false">
<permissions>
<permission-set name="contacts" />
<permission-set name="microphone" />
<permission-set name="nearby_devices" />
<permission-set name="notifications" />
<permission-set name="phone" />
<permission-set name="sms" />
</permissions>
<app-op-permissions>
<app-op-permission name="android.permission.MANAGE_ONGOING_CALLS" />
</app-op-permissions>
</role>
<role
name="android.app.role.COMPANION_DEVICE_NEARBY_DEVICE_STREAMING"
allowBypassingQualification="true"
exclusive="false"
minSdkVersion="34"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="nearby_devices" />
<permission name="android.permission.CREATE_VIRTUAL_DEVICE" />
<permission name="android.permission.ADD_TRUSTED_DISPLAY" />
<permission name="android.permission.ADD_ALWAYS_UNLOCKED_DISPLAY" />
</permissions>
</role>
<role
name="android.app.role.SYSTEM_SUPERVISION"
defaultHolders="config_systemSupervision"
exclusive="true"
minSdkVersion="33"
static="true"
systemOnly="true"
visible="false" >
<permissions>
<permission name="android.permission.ACCESS_INSTANT_APPS"/>
<permission name="android.permission.KILL_UID" minSdkVersion="34"/>
<permission name="android.permission.MANAGE_DEFAULT_APPLICATIONS" minSdkVersion="34"/>
<permission name="android.permission.SUSPEND_APPS"/>
<permission name="android.permission.SYSTEM_APPLICATION_OVERLAY"/>
</permissions>
</role>
<!---
~ A role for the package responsible for constructing managed device experiences,
~ including during provisioning.
-->
<role
name="android.app.role.DEVICE_POLICY_MANAGEMENT"
behavior="DevicePolicyManagementRoleBehavior"
defaultHolders="config_devicePolicyManagement"
exclusive="true"
minSdkVersion="33"
static="true"
systemOnly="false"
visible="false">
<required-components>
<activity permission="android.permission.LAUNCH_DEVICE_MANAGER_SETUP">
<intent-filter>
<action name="android.app.action.ROLE_HOLDER_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE" />
</intent-filter>
</activity>
<activity permission="android.permission.LAUNCH_DEVICE_MANAGER_SETUP">
<intent-filter>
<action name="android.app.action.ROLE_HOLDER_PROVISION_MANAGED_PROFILE" />
</intent-filter>
</activity>
<activity permission="android.permission.LAUNCH_DEVICE_MANAGER_SETUP">
<intent-filter>
<action name="android.app.action.ROLE_HOLDER_PROVISION_FINALIZATION" />
</intent-filter>
</activity>
</required-components>
<permissions>
<permission-set name="notifications" />
<permission name="android.permission.BIND_DEVICE_ADMIN" />
<permission name="android.permission.MANAGE_DEVICE_ADMINS" />
<permission name="android.permission.NETWORK_MANAGED_PROVISIONING" />
<permission name="android.permission.PEERS_MAC_ADDRESS" />
<permission name="android.permission.USE_COLORIZED_NOTIFICATIONS" />
<permission name="android.permission.MASTER_CLEAR" />
<permission name="android.permission.WRITE_SECURE_SETTINGS" />
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
<permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" />
<permission name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" />
<permission name="android.permission.INTERACT_ACROSS_USERS" />
<permission name="android.permission.INTERACT_ACROSS_USERS_FULL" />
<permission name="com.android.permission.INSTALL_EXISTING_PACKAGES" />
<permission name="android.permission.DELETE_PACKAGES" />
<permission name="android.permission.ACCESS_PDB_STATE" />
<permission name="android.permission.MARK_DEVICE_ORGANIZATION_OWNED" />
<permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
<permission name="android.permission.SET_TIME" />
<permission name="android.permission.SET_TIME_ZONE" />
<permission name="android.permission.CRYPT_KEEPER" />
<permission name="android.permission.SHUTDOWN" />
<permission name="android.permission.PERFORM_CDMA_PROVISIONING" />
<permission name="android.permission.CONFIGURE_INTERACT_ACROSS_PROFILES" />
<permission name="android.permission.WRITE_SETTINGS" />
<permission name="android.permission.CHANGE_CONFIGURATION" />
<permission name="android.permission.LAUNCH_DEVICE_MANAGER_SETUP" />
<permission name="android.permission.INSTALL_DPC_PACKAGES" />
<permission name="android.permission.QUERY_USERS" />
<permission name="android.permission.UPDATE_DEVICE_MANAGEMENT_RESOURCES" />
<permission name="android.permission.QUERY_ADMIN_POLICY" />
<permission name="android.permission.TRIGGER_LOST_MODE" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_APP_EXEMPTIONS" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_ACCOUNT_MANAGEMENT" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_AIRPLANE_MODE" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_CAMERA" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_COMMON_CRITERIA_MODE" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_DEFAULT_SMS" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_FACTORY_RESET" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_INPUT_METHODS" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_INSTALL_UNKNOWN_SOURCES" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_KEYGUARD" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_LOCK" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_LOCK_CREDENTIALS" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_MOBILE_NETWORK" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_MTE" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_PACKAGE_STATE" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_PROFILES" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_RESTRICT_PRIVATE_DNS" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_SCREEN_CAPTURE" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_SECURITY_LOGGING" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_SUSPEND_PERSONAL_APPS" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_SYSTEM_UPDATES" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_TIME" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_USB_DATA_SIGNALLING" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_WIFI" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_WIPE_DATA" minSdkVersion="34" />
<permission name="android.permission.SET_TIME" minSdkVersion="34" />
<permission name="android.permission.SET_TIME_ZONE" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_DEBUGGING_FEATURES" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_MODIFY_USERS" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_SAFE_BOOT" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_MICROPHONE" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_USB_FILE_TRANSFER" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_ACROSS_USERS_SECURITY_CRITICAL" minSdkVersion="34" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_ACROSS_USERS" minSdkVersion="34" />
</permissions>
</role>
<role
name="android.app.role.SYSTEM_APP_PROTECTION_SERVICE"
defaultHolders="config_systemAppProtectionService"
exclusive="true"
minSdkVersion="33"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="notifications" />
<permission name="android.permission.GET_HISTORICAL_APP_OPS_STATS" />
</permissions>
</role>
<!---
~ A role for the system package that handles syncing calendar from another device on
~ Automotive.
-->
<role
name="android.app.role.SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER"
behavior="AutomotiveRoleBehavior"
defaultHolders="config_systemAutomotiveCalendarSyncManager"
exclusive="true"
minSdkVersion="33"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission name="android.permission.READ_CALENDAR" />
<permission name="android.permission.WRITE_CALENDAR" />
</permissions>
</role>
<!---
~ A role for the package that handles navigation on the Automotive.
~ This is the application that provides point-of-interest search and
~ turn-by-turn navigation guidance.
-->
<role
name="android.app.role.AUTOMOTIVE_NAVIGATION"
behavior="AutomotiveRoleBehavior"
defaultHolders="config_defaultAutomotiveNavigation"
description="@string/role_automotive_navigation_description"
exclusive="true"
label="@string/role_automotive_navigation_label"
minSdkVersion="33"
overrideUserWhenGranting="true"
requestDescription="@string/role_automotive_navigation_request_description"
requestTitle="@string/role_automotive_navigation_request_title"
shortLabel="@string/role_automotive_navigation_short_label">
<required-components>
<activity>
<intent-filter>
<action name="android.intent.action.MAIN" />
<category name="android.intent.category.APP_MAPS" />
</intent-filter>
</activity>
<activity>
<intent-filter>
<action name="android.intent.action.NAVIGATE" />
<data scheme="geo" />
</intent-filter>
</activity>
<activity>
<intent-filter>
<action name="android.intent.action.MAIN" />
<category name="android.car.cluster.NAVIGATION" />
</intent-filter>
</activity>
</required-components>
<preferred-activities>
<preferred-activity>
<activity>
<intent-filter>
<action name="android.intent.action.MAIN" />
<category name="android.intent.category.APP_MAPS" />
</intent-filter>
</activity>
<intent-filter>
<action name="android.intent.action.MAIN" />
<category name="android.intent.category.APP_MAPS" />
</intent-filter>
</preferred-activity>
<preferred-activity>
<activity>
<intent-filter>
<action name="android.intent.action.NAVIGATE" />
<data scheme="geo" />
</intent-filter>
</activity>
<intent-filter>
<action name="android.intent.action.NAVIGATE" />
<data scheme="geo" />
</intent-filter>
</preferred-activity>
<preferred-activity>
<activity>
<intent-filter>
<action name="android.intent.action.MAIN" />
<category name="android.car.cluster.NAVIGATION" />
</intent-filter>
</activity>
<intent-filter>
<action name="android.intent.action.MAIN" />
<category name="android.car.cluster.NAVIGATION" />
</intent-filter>
</preferred-activity>
</preferred-activities>
</role>
<!---
~ A role for the package that handles AI features for the settings app
-->
<role
name="android.app.role.SYSTEM_SETTINGS_INTELLIGENCE"
defaultHolders="config_systemSettingsIntelligence"
exclusive="true"
minSdkVersion="33"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="notifications" />
<permission name="android.permission.INTERACT_ACROSS_USERS_FULL" minSdkVersion="34" />
</permissions>
</role>
<!---
~ A role for the package that handles Bluetooth for the device
-->
<role
name="android.app.role.SYSTEM_BLUETOOTH_STACK"
defaultHolders="config_systemBluetoothStack"
exclusive="true"
minSdkVersion="33"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission name="android.permission.NETWORK_FACTORY" />
<permission name="android.permission.BLUETOOTH_MAP" />
<permission name="android.permission.BLUETOOTH_STACK" />
<permission name="android.permission.NET_ADMIN" />
<permission name="android.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH" />
<permission name="android.permission.MANAGE_APP_OPS_MODES" />
<permission name="android.permission.MANAGE_COMPANION_DEVICES" />
<permission name="android.permission.QUERY_AUDIO_STATE" />
<permission name="android.permission.DEVICE_POWER" />
<permission name="android.permission.NET_TUNNELING" />
</permissions>
</role>
<!--
~ A role assigned to the financing kiosk app
-->
<role
name="android.app.role.FINANCED_DEVICE_KIOSK"
exclusive="true"
minSdkVersion="34"
visible="false">
<permissions>
<permission-set name="notifications" />
<permission name="android.permission.MANAGE_DEVICE_LOCK_STATE" />
</permissions>
</role>
<!--
~ A role assigned to the device lock controller
-->
<role
name="android.app.role.SYSTEM_FINANCED_DEVICE_CONTROLLER"
defaultHolders="config_systemFinancedDeviceController"
exclusive="true"
minSdkVersion="34"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="notifications" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_APPS_CONTROL" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_CALLS" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_DEBUGGING_FEATURES" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_INSTALL_UNKNOWN_SOURCES" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_LOCK_TASK" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_SAFE_BOOT" />
<permission name="android.permission.MANAGE_DEVICE_POLICY_TIME" />
<permission name="android.permission.MASTER_CLEAR" />
<permission name="android.permission.INTERACT_ACROSS_USERS" />
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
</permissions>
</role>
<!---
~ A role for the wear health service that handles health/fitness tracking features.
-->
<role
name="android.app.role.SYSTEM_WEAR_HEALTH_SERVICE"
behavior="SystemWearHealthServiceRoleBehavior"
defaultHolders="config_systemWearHealthService"
exclusive="true"
minSdkVersion="33"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission-set name="sensors" />
<permission-set name="location" />
<permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
<permission name="android.permission.ACTIVITY_RECOGNITION" />
</permissions>
</role>
<!---
~ A role for the package that responds to system notes actions.
-->
<role
name="android.app.role.NOTES"
behavior="NotesRoleBehavior"
defaultHolders="config_defaultNotes"
description="@string/role_notes_description"
exclusive="true"
label="@string/role_notes_label"
minSdkVersion="34"
overrideUserWhenGranting="true"
requestable="false"
searchKeywords="@string/role_notes_search_keywords"
shortLabel="@string/role_notes_short_label"
showNone="true">
<required-components>
<!-- Flag value is FLAG_SHOW_WHEN_LOCKED | FLAG_TURN_SCREEN_ON -->
<activity flags="0x1800000">
<intent-filter>
<action name="android.intent.action.CREATE_NOTE" />
</intent-filter>
</activity>
</required-components>
<preferred-activities>
<preferred-activity>
<!-- Flag value is FLAG_SHOW_WHEN_LOCKED | FLAG_TURN_SCREEN_ON -->
<activity flags="0x1800000">
<intent-filter>
<action name="android.intent.action.CREATE_NOTE" />
</intent-filter>
</activity>
<intent-filter>
<action name="android.intent.action.CREATE_NOTE" />
</intent-filter>
</preferred-activity>
</preferred-activities>
<permissions>
<permission name="android.permission.LAUNCH_CAPTURE_CONTENT_ACTIVITY_FOR_NOTE" minSdkVersion="34"/>
</permissions>
</role>
<!---
~ A role for the package that streams calls to other devices.
-->
<role
name="android.app.role.SYSTEM_CALL_STREAMING"
allowBypassingQualification="true"
defaultHolders="config_systemCallStreaming"
exclusive="true"
minSdkVersion="34"
static="true"
systemOnly="true"
visible="false">
<permissions>
<permission name="android.permission.CALL_AUDIO_INTERCEPTION" />
<permission name="android.permission.RECORD_AUDIO" />
</permissions>
<required-components>
<service permission="android.permission.BIND_CALL_STREAMING_SERVICE">
<intent-filter>
<action name="android.telecom.CallStreamingService" />
</intent-filter>
</service>
</required-components>
</role>
<role
name="android.app.role.RETAIL_DEMO"
behavior="RetailDemoRoleBehavior"
defaultHolders="config_defaultRetailDemo"
exclusive="true"
minSdkVersion="35"
static="true"
visible="false">
<permissions>
<permission name="android.permission.ACCESS_BLOBS_ACROSS_USERS" />
<permission name="android.permission.CHANGE_CONFIGURATION" />
<permission name="android.permission.MODIFY_DAY_NIGHT_MODE" />
<permission name="android.permission.MODIFY_PHONE_STATE" />
<permission name="android.permission.OBSERVE_APP_USAGE" />
<permission name="android.permission.QUERY_USERS" />
<permission name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
<permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
<permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" />
<permission name="android.permission.WRITE_SETTINGS" />
</permissions>
<app-op-permissions>
<app-op-permission name="android.permission.PACKAGE_USAGE_STATS" />
</app-op-permissions>
</role>
</roles>