You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
952 lines
38 KiB
952 lines
38 KiB
<?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_FINE_LOCATION" />
|
|
<permission name="android.permission.ACCESS_COARSE_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-set>
|
|
|
|
<permission-set name="storage">
|
|
<permission name="android.permission.READ_EXTERNAL_STORAGE" />
|
|
<permission name="android.permission.WRITE_EXTERNAL_STORAGE" />
|
|
</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-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">
|
|
<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" />
|
|
</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.
|
|
-->
|
|
</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">
|
|
<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>
|
|
</required-components>
|
|
<permissions>
|
|
<permission-set name="phone" />
|
|
<permission-set name="contacts" />
|
|
<permission-set name="sms" />
|
|
<permission-set name="microphone" />
|
|
<permission-set name="camera" />
|
|
</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">
|
|
<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 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">
|
|
<required-components>
|
|
<activity>
|
|
<intent-filter>
|
|
<action name="android.telephony.action.EMERGENCY_ASSISTANCE" />
|
|
</intent-filter>
|
|
</activity>
|
|
</required-components>
|
|
<permissions>
|
|
<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">
|
|
<!-- 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>
|
|
</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>
|
|
<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="SystemAutomotiveClusterRoleBehavior"
|
|
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"
|
|
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 name="android.permission.CALL_PHONE" />
|
|
<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.SEND_SMS" />
|
|
</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.ACCESS_RCS_USER_CAPABILITY_EXCHANGE" />
|
|
<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" />
|
|
</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" />
|
|
</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 name="android.permission.ACCESS_INSTANT_APPS"/>
|
|
<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" />
|
|
</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 name="android.permission.ACCESS_SHORTCUTS" />
|
|
<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_EXTERNAL_STORAGE" />
|
|
<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 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" />
|
|
</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 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.RECORD_AUDIO" />
|
|
<permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
|
|
</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 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 name="android.permission.MANAGE_UI_TRANSLATION" />
|
|
<permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
|
|
</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 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 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 name="android.permission.MANAGE_SENSOR_PRIVACY" />
|
|
<permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
|
|
</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>
|
|
|
|
</roles>
|