| <?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 name="android.permission.BODY_SENSORS_WRIST_TEMPERATURE" |
| minSdkVersion="34"/> |
| <permission name="android.permission.BODY_SENSORS_WRIST_TEMPERATURE_BACKGROUND" |
| minSdkVersion="34"/> |
| </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-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" |
| uiBehavior="BrowserRoleUiBehavior"> |
| <!-- |
| ~ 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. |
| --> |
| </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" /> |
| </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-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"/> |
| </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_LOCK_STATE" minSdkVersion="34" /> |
| <permission name="android.permission.MANAGE_DEVICE_POLICY_APP_EXEMPTIONS" |
| minSdkVersion="34" /> |
| </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> |
| </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" |
| behavior="SystemUiRoleBehavior" |
| 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" |
| description="@string/role_companion_device_glasses_description" |
| 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" |
| description="@string/role_companion_device_nearby_device_streaming_description" |
| 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" /> |
| </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 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 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_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" |
| 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> |
| </roles> |