| <?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" |
| 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" |
| 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" |
| 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" |
| 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" |
| 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" |
| 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" |
| 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" |
| 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" |
| overrideUserWhenGranting="false" |
| 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" |
| defaultHolders="config_systemSpeechRecognizer" |
| exclusive="true" |
| minSdkVersion="31" |
| static="true" |
| systemOnly="true" |
| visible="false"> |
| <permissions> |
| <permission name="android.permission.RECORD_AUDIO" /> |
| </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.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> |