• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="utf-8"?>
2
3<!-- Copyright (C) 2018 The Android Open Source Project
4
5     Licensed under the Apache License, Version 2.0 (the "License"" />
6     you may not use this file except in compliance with the License.
7     You may obtain a copy of the License at
8
9          http://www.apache.org/licenses/LICENSE-2.0
10
11     Unless required by applicable law or agreed to in writing, software
12     distributed under the License is distributed on an "AS IS" BASIS,
13     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14     See the License for the specific language governing permissions and
15     limitations under the License.
16-->
17
18<roles>
19
20    <permission-set name="phone">
21        <permission name="android.permission.READ_PHONE_STATE" />
22        <permission name="android.permission.CALL_PHONE" />
23        <permission name="android.permission.READ_CALL_LOG" />
24        <permission name="android.permission.WRITE_CALL_LOG" />
25        <permission name="com.android.voicemail.permission.ADD_VOICEMAIL" />
26        <permission name="com.android.voicemail.permission.READ_VOICEMAIL" minSdkVersion="31" />
27        <permission name="com.android.voicemail.permission.WRITE_VOICEMAIL" minSdkVersion="31" />
28        <permission name="android.permission.USE_SIP" />
29        <permission name="android.permission.PROCESS_OUTGOING_CALLS" />
30        <permission name="android.permission.ANSWER_PHONE_CALLS" />
31    </permission-set>
32
33    <permission-set name="contacts">
34        <permission name="android.permission.READ_CONTACTS" />
35        <permission name="android.permission.WRITE_CONTACTS" />
36        <permission name="android.permission.GET_ACCOUNTS" />
37    </permission-set>
38
39    <permission-set name="location">
40        <permission name="android.permission.ACCESS_FINE_LOCATION" />
41        <permission name="android.permission.ACCESS_COARSE_LOCATION" />
42    </permission-set>
43
44    <permission-set name="coarse_location">
45        <permission name="android.permission.ACCESS_COARSE_LOCATION" />
46    </permission-set>
47
48    <permission-set name="calendar">
49        <permission name="android.permission.READ_CALENDAR" />
50        <permission name="android.permission.WRITE_CALENDAR" />
51    </permission-set>
52
53    <permission-set name="sms">
54        <permission name="android.permission.SEND_SMS" />
55        <permission name="android.permission.RECEIVE_SMS" />
56        <permission name="android.permission.READ_SMS" />
57        <permission name="android.permission.RECEIVE_WAP_PUSH" />
58        <permission name="android.permission.RECEIVE_MMS" />
59        <permission name="android.permission.READ_CELL_BROADCASTS" />
60    </permission-set>
61
62    <permission-set name="microphone">
63        <permission name="android.permission.RECORD_AUDIO" />
64    </permission-set>
65
66    <permission-set name="camera">
67        <permission name="android.permission.CAMERA" />
68    </permission-set>
69
70    <permission-set name="sensors">
71        <permission name="android.permission.BODY_SENSORS" />
72    </permission-set>
73
74    <permission-set name="storage">
75        <permission name="android.permission.READ_EXTERNAL_STORAGE" />
76        <permission name="android.permission.WRITE_EXTERNAL_STORAGE" />
77    </permission-set>
78
79    <permission-set name="nearby_devices">
80        <permission name="android.permission.BLUETOOTH_ADVERTISE" minSdkVersion="31" />
81        <permission name="android.permission.BLUETOOTH_CONNECT" minSdkVersion="31" />
82        <permission name="android.permission.BLUETOOTH_SCAN" minSdkVersion="31" />
83    </permission-set>
84
85    <role
86        name="android.app.role.ASSISTANT"
87        behavior="AssistantRoleBehavior"
88        defaultHolders="config_defaultAssistant"
89        description="@string/role_assistant_description"
90        exclusive="true"
91        fallBackToDefaultHolder="true"
92        showNone="true"
93        label="@string/role_assistant_label"
94        requestable="false"
95        shortLabel="@string/role_assistant_short_label">
96        <required-components>
97            <!-- Qualified components are determined int AssistantRoleBehavior. This comment here is
98                 ignored and represents just a rough description
99
100            <any-of>
101                <service permission="android.permission.BIND_VOICE_INTERACTION"
102                         supportsAssist="true">
103                    <intent-filter>
104                        <action name="android.service.voice.VoiceInteractionService" />
105                    </intent-filter>
106                    <meta-data name="android.voice_interaction"
107                               optional="false">
108                        required tag in metadata xml: sessionService
109                        required tag in metadata xml: recognitionService
110                        required tag in metadata xml: supportsAssist = true
111                    </meta-data>
112                </service>
113                <activity>
114                    <intent-filter>
115                        <action name="android.intent.action.ASSIST" />
116                    </intent-filter>
117                </activity>
118            </ any-of>
119
120            -->
121        </required-components>
122        <permissions>
123            <permission-set name="sms" />
124            <permission name="android.permission.READ_CALL_LOG" />
125            <permission name="android.permission.ACCESS_BLOBS_ACROSS_USERS" minSdkVersion="31" />
126        </permissions>
127        <app-op-permissions>
128            <app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" />
129        </app-op-permissions>
130    </role>
131
132    <!---
133      ~ @see com.android.settings.applications.defaultapps.DefaultBrowserPreferenceController
134      ~ @see com.android.settings.applications.defaultapps.DefaultBrowserPicker
135      ~ @see com.android.server.pm.PackageManagerService.resolveAllBrowserApps(int)
136      ~ @see com.android.server.pm.PackageManagerService.setDefaultBrowserPackageName(String, int)
137      ~ @see com.android.server.pm.permission.DefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultBrowser(String, int)
138      -->
139    <role
140        name="android.app.role.BROWSER"
141        behavior="BrowserRoleBehavior"
142        defaultHolders="config_defaultBrowser"
143        description="@string/role_browser_description"
144        exclusive="true"
145        label="@string/role_browser_label"
146        requestDescription="@string/role_browser_request_description"
147        requestTitle="@string/role_browser_request_title"
148        shortLabel="@string/role_browser_short_label">
149        <!--
150          ~ Required components matching is handled in BrowserRoleBehavior because it needs the
151          ~ PackageManager.MATCH_ALL flag and other manual filtering, which cannot fit in our
152          ~ current mechanism easily.
153          -->
154        <!--
155        <required-components>
156            <activity>
157                <intent-filter>
158                    <action name="android.intent.action.VIEW" />
159                    <category name="android.intent.category.BROWSABLE" />
160                    <data scheme="http" />
161                </intent-filter>
162            </activity>
163        </required-components>
164        -->
165        <!--
166          ~ Not need to set preferred activity because PackageManager handles browser intents
167          ~ specially.
168          -->
169    </role>
170
171    <!--
172      ~ @see com.android.settings.applications.defaultapps.DefaultPhonePreferenceController
173      ~ @see com.android.settings.applications.defaultapps.DefaultPhonePicker
174      ~ @see android.telecom.DefaultDialerManager
175      ~ @see com.android.server.pm.permission.DefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultDialerApp(String, int)
176      ~ @see com.android.server.pm.Settings.setDefaultDialerPackageNameLPw(String, int)
177      -->
178    <role
179        name="android.app.role.DIALER"
180        behavior="DialerRoleBehavior"
181        defaultHolders="config_defaultDialer"
182        description="@string/role_dialer_description"
183        exclusive="true"
184        fallBackToDefaultHolder="true"
185        label="@string/role_dialer_label"
186        requestDescription="@string/role_dialer_request_description"
187        requestTitle="@string/role_dialer_request_title"
188        searchKeywords="@string/role_dialer_search_keywords"
189        shortLabel="@string/role_dialer_short_label">
190        <required-components>
191            <activity>
192                <intent-filter>
193                    <action name="android.intent.action.DIAL" />
194                </intent-filter>
195            </activity>
196            <activity>
197                <intent-filter>
198                    <action name="android.intent.action.DIAL" />
199                    <data scheme="tel" />
200                </intent-filter>
201            </activity>
202        </required-components>
203        <permissions>
204            <permission-set name="phone" />
205            <permission-set name="contacts" />
206            <permission-set name="sms" />
207            <permission-set name="microphone" />
208            <permission-set name="camera" />
209        </permissions>
210        <app-op-permissions>
211            <app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" />
212        </app-op-permissions>
213        <app-ops>
214            <!--
215              ~ @see com.android.settings.applications.defaultapps.DefaultPhonePicker#setDefaultKey(String)
216              ~ @see com.android.settings.fuelgauge.BatteryUtils#setForceAppStandby(int, String, int)
217              -->
218            <app-op name="android:run_in_background" maxTargetSdkVersion="25" mode="allowed" />
219            <app-op name="android:run_any_in_background" mode="allowed" />
220        </app-ops>
221        <preferred-activities>
222            <preferred-activity>
223                <activity>
224                    <intent-filter>
225                        <action name="android.intent.action.DIAL" />
226                    </intent-filter>
227                </activity>
228                <intent-filter>
229                    <action name="android.intent.action.DIAL" />
230                </intent-filter>
231            </preferred-activity>
232            <preferred-activity>
233                <activity>
234                    <intent-filter>
235                        <action name="android.intent.action.DIAL" />
236                        <data scheme="tel" />
237                    </intent-filter>
238                </activity>
239                <intent-filter>
240                    <action name="android.intent.action.DIAL" />
241                    <data scheme="tel" />
242                </intent-filter>
243            </preferred-activity>
244        </preferred-activities>
245    </role>
246
247    <!--
248      ~ @see com.android.settings.applications.defaultapps.DefaultSmsPreferenceController
249      ~ @see com.android.settings.applications.defaultapps.DefaultSmsPicker
250      ~ @see com.android.internal.telephony.SmsApplication
251      ~ @see com.android.server.pm.permission.DefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultSmsApp(String, int)
252      -->
253    <role
254        name="android.app.role.SMS"
255        behavior="SmsRoleBehavior"
256        defaultHolders="config_defaultSms"
257        description="@string/role_sms_description"
258        exclusive="true"
259        label="@string/role_sms_label"
260        requestDescription="@string/role_sms_request_description"
261        requestTitle="@string/role_sms_request_title"
262        searchKeywords="@string/role_sms_search_keywords"
263        shortLabel="@string/role_sms_short_label">
264        <required-components>
265            <receiver permission="android.permission.BROADCAST_SMS">
266                <intent-filter>
267                    <action name="android.provider.Telephony.SMS_DELIVER" />
268                </intent-filter>
269            </receiver>
270            <receiver permission="android.permission.BROADCAST_WAP_PUSH">
271                <intent-filter>
272                    <action name="android.provider.Telephony.WAP_PUSH_DELIVER" />
273                    <data mimeType="application/vnd.wap.mms-message" />
274                </intent-filter>
275            </receiver>
276            <service permission="android.permission.SEND_RESPOND_VIA_MESSAGE">
277                <intent-filter>
278                    <action name="android.intent.action.RESPOND_VIA_MESSAGE" />
279                    <data scheme="smsto" />
280                </intent-filter>
281            </service>
282            <activity>
283                <intent-filter>
284                    <action name="android.intent.action.SENDTO" />
285                    <data scheme="smsto" />
286                </intent-filter>
287            </activity>
288        </required-components>
289        <permissions>
290            <permission-set name="phone" />
291            <permission-set name="contacts" />
292            <permission-set name="sms" />
293            <permission-set name="storage" />
294            <permission-set name="microphone" />
295            <permission-set name="camera" />
296            <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" minSdkVersion="31" />
297        </permissions>
298        <app-ops>
299            <app-op name="android:write_sms" mode="allowed" />
300            <!--
301              ~ @see com.android.settings.applications.defaultapps.DefaultSmsPicker#setDefaultKey(String)
302              ~ @see com.android.settings.fuelgauge.BatteryUtils#setForceAppStandby(int, String, int)
303              -->
304            <app-op name="android:run_in_background" maxTargetSdkVersion="25" mode="allowed" />
305            <app-op name="android:run_any_in_background" mode="allowed" />
306            <app-op name="android:read_device_identifiers" mode="allowed" />
307        </app-ops>
308        <preferred-activities>
309            <preferred-activity>
310                <activity>
311                    <intent-filter>
312                        <action name="android.intent.action.SENDTO" />
313                        <data scheme="smsto" />
314                    </intent-filter>
315                </activity>
316                <intent-filter>
317                    <action name="android.intent.action.SENDTO" />
318                    <data scheme="sms" />
319                </intent-filter>
320                <intent-filter>
321                    <action name="android.intent.action.SENDTO" />
322                    <data scheme="smsto" />
323                </intent-filter>
324                <intent-filter>
325                    <action name="android.intent.action.SENDTO" />
326                    <data scheme="mms" />
327                </intent-filter>
328                <intent-filter>
329                    <action name="android.intent.action.SENDTO" />
330                    <data scheme="mmsto" />
331                </intent-filter>
332            </preferred-activity>
333        </preferred-activities>
334    </role>
335
336    <!---
337      ~ @see com.android.settings.applications.defaultapps.DefaultEmergencyPreferenceController
338      ~ @see com.android.settings.applications.defaultapps.DefaultEmergencyPicker
339      ~ @see com.android.phone.EmergencyAssistanceHelper
340      -->
341    <role
342        name="android.app.role.EMERGENCY"
343        behavior="EmergencyRoleBehavior"
344        description="@string/role_emergency_description"
345        exclusive="true"
346        label="@string/role_emergency_label"
347        requestDescription="@string/role_emergency_request_description"
348        requestTitle="@string/role_emergency_request_title"
349        searchKeywords="@string/role_emergency_search_keywords"
350        shortLabel="@string/role_emergency_short_label"
351        systemOnly="true">
352        <required-components>
353            <activity>
354                <intent-filter>
355                    <action name="android.telephony.action.EMERGENCY_ASSISTANCE" />
356                </intent-filter>
357            </activity>
358        </required-components>
359        <permissions>
360            <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" minSdkVersion="31" />
361            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" minSdkVersion="31" />
362        </permissions>
363    </role>
364
365    <!---
366      ~ @see com.android.settings.applications.defaultapps.DefaultHomePreferenceController
367      ~ @see com.android.settings.applications.defaultapps.DefaultHomePicker
368      ~ @see com.android.server.pm.PackageManagerService#setHomeActivity(ComponentName, int)
369      -->
370    <role
371        name="android.app.role.HOME"
372        behavior="HomeRoleBehavior"
373        description="@string/role_home_description"
374        exclusive="true"
375        label="@string/role_home_label"
376        requestDescription="@string/role_home_request_description"
377        requestTitle="@string/role_home_request_title"
378        searchKeywords="@string/role_home_search_keywords"
379        shortLabel="@string/role_home_short_label">
380        <!-- Also used by HomeRoleBehavior.getFallbackHolder(). -->
381        <required-components>
382            <activity>
383                <intent-filter>
384                    <action name="android.intent.action.MAIN" />
385                    <category name="android.intent.category.HOME" />
386                </intent-filter>
387            </activity>
388        </required-components>
389        <preferred-activities>
390            <preferred-activity>
391                <activity>
392                    <intent-filter>
393                        <action name="android.intent.action.MAIN" />
394                        <category name="android.intent.category.HOME" />
395                    </intent-filter>
396                </activity>
397                <intent-filter>
398                    <action name="android.intent.action.MAIN" />
399                    <category name="android.intent.category.HOME" />
400                </intent-filter>
401            </preferred-activity>
402        </preferred-activities>
403    </role>
404
405    <!--- @see android.telecom.CallRedirectionService -->
406    <role
407        name="android.app.role.CALL_REDIRECTION"
408        defaultHolders="config_defaultCallRedirection"
409        description="@string/role_call_redirection_description"
410        exclusive="true"
411        label="@string/role_call_redirection_label"
412        requestDescription="@string/role_call_redirection_request_description"
413        requestTitle="@string/role_call_redirection_request_title"
414        shortLabel="@string/role_call_redirection_short_label"
415        showNone="true">
416        <required-components>
417            <service permission="android.permission.BIND_CALL_REDIRECTION_SERVICE">
418                <intent-filter>
419                    <action name="android.telecom.CallRedirectionService" />
420                </intent-filter>
421            </service>
422        </required-components>
423    </role>
424
425    <!--- @see android.telecom.CallScreeningService -->
426    <role
427        name="android.app.role.CALL_SCREENING"
428        defaultHolders="config_defaultCallScreening"
429        description="@string/role_call_screening_description"
430        exclusive="true"
431        label="@string/role_call_screening_label"
432        requestDescription="@string/role_call_screening_request_description"
433        requestTitle="@string/role_call_screening_request_title"
434        shortLabel="@string/role_call_screening_short_label"
435        showNone="true">
436        <required-components>
437            <service permission="android.permission.BIND_SCREENING_SERVICE">
438                <intent-filter>
439                    <action name="android.telecom.CallScreeningService" />
440                </intent-filter>
441            </service>
442        </required-components>
443        <app-op-permissions>
444            <app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" />
445        </app-op-permissions>
446    </role>
447
448    <role
449        name="android.app.role.SYSTEM_GALLERY"
450        defaultHolders="config_systemGallery"
451        exclusive="true"
452        static="true"
453        systemOnly="true"
454        visible="false">
455        <permissions>
456            <permission-set name="storage" />
457            <permission name="android.permission.ACCESS_MEDIA_LOCATION" />
458            <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" minSdkVersion="31" />
459        </permissions>
460        <app-ops>
461            <app-op name="android:write_media_images" mode="allowed" />
462            <app-op name="android:write_media_video" mode="allowed" />
463        </app-ops>
464    </role>
465
466    <role
467        name="android.app.role.SYSTEM_AUTOMOTIVE_CLUSTER"
468        behavior="SystemAutomotiveClusterRoleBehavior"
469        defaultHolders="config_systemAutomotiveCluster"
470        exclusive="true"
471        minSdkVersion="31"
472        static="true"
473        systemOnly="true"
474        visible="false">
475        <permissions>
476            <permission name="android.permission.ANSWER_PHONE_CALLS" />
477            <permission name="android.permission.READ_CALL_LOG" />
478            <permission name="android.permission.READ_CONTACTS" />
479            <permission name="android.car.permission.CAR_ENERGY"/>
480        </permissions>
481    </role>
482
483    <role
484        name="android.app.role.COMPANION_DEVICE_WATCH"
485        behavior="CompanionDeviceWatchRoleBehavior"
486        description="@string/role_watch_description"
487        exclusive="false"
488        minSdkVersion="31"
489        overrideUserWhenGranting="false"
490        systemOnly="false"
491        visible="false">
492        <permissions>
493            <permission-set name="calendar" />
494            <permission-set name="phone" />
495            <permission-set name="sms" />
496            <permission-set name="contacts" />
497            <permission-set name="nearby_devices" />
498        </permissions>
499        <app-op-permissions>
500            <app-op-permission name="android.permission.MANAGE_ONGOING_CALLS" />
501            <app-op-permission name="android.permission.USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER" />
502        </app-op-permissions>
503    </role>
504
505    <role
506        name="android.app.role.SYSTEM_AUTOMOTIVE_PROJECTION"
507        defaultHolders="config_systemAutomotiveProjection"
508        exclusive="false"
509        minSdkVersion="31"
510        static="true"
511        systemOnly="true"
512        visible="false">
513        <permissions>
514            <permission-set name="microphone" />
515            <permission-set name="location" />
516            <permission-set name="nearby_devices" />
517            <permission name="android.permission.CALL_PHONE" />
518            <permission name="android.permission.READ_CALENDAR" />
519            <permission name="android.permission.READ_CALL_LOG" />
520            <permission name="android.permission.READ_CONTACTS" />
521            <permission name="android.permission.READ_PHONE_STATE" />
522            <permission name="android.permission.RECEIVE_SMS" />
523            <permission name="android.permission.SEND_SMS" />
524        </permissions>
525    </role>
526
527    <role
528        name="android.app.role.SYSTEM_SHELL"
529        behavior="SystemShellRoleBehavior"
530        defaultHolders="config_systemShell"
531        exclusive="true"
532        minSdkVersion="31"
533        static="true"
534        systemOnly="true"
535        visible="false">
536        <permissions>
537            <!-- Used for CTS testing -->
538            <permission name="android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE" />
539            <permission name="android.permission.PERFORM_IMS_SINGLE_REGISTRATION" />
540            <permission name="android.permission.BACKGROUND_CAMERA" />
541            <permission name="android.permission.RECORD_BACKGROUND_AUDIO" />
542            <permission name="android.permission.BYPASS_ROLE_QUALIFICATION" />
543            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
544            <permission name="android.permission.MANAGE_SENSOR_PRIVACY" />
545            <permission name="android.permission.READ_GLOBAL_APP_SEARCH_DATA" />
546        </permissions>
547    </role>
548
549    <role
550        name="android.app.role.SYSTEM_CONTACTS"
551        defaultHolders="config_systemContacts"
552        exclusive="true"
553        minSdkVersion="31"
554        static="true"
555        systemOnly="true"
556        visible="false">
557        <permissions>
558            <permission name="android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE" />
559        </permissions>
560    </role>
561
562    <role
563        name="android.app.role.SYSTEM_SPEECH_RECOGNIZER"
564        defaultHolders="config_systemSpeechRecognizer"
565        exclusive="true"
566        minSdkVersion="31"
567        static="true"
568        systemOnly="true"
569        visible="false">
570        <permissions>
571            <permission name="android.permission.RECORD_AUDIO" />
572            <permission name="android.permission.UPDATE_APP_OPS_STATS" />
573        </permissions>
574        <required-components>
575            <service>
576                <intent-filter>
577                    <action name="android.speech.RecognitionService" />
578                </intent-filter>
579            </service>
580        </required-components>
581    </role>
582
583    <role
584        name="android.app.role.SYSTEM_WIFI_COEX_MANAGER"
585        defaultHolders="config_systemWifiCoexManager"
586        exclusive="true"
587        minSdkVersion="31"
588        static="true"
589        systemOnly="true"
590        visible="false">
591        <permissions>
592            <permission name="android.permission.WIFI_ACCESS_COEX_UNSAFE_CHANNELS" />
593            <permission name="android.permission.WIFI_UPDATE_COEX_UNSAFE_CHANNELS" />
594        </permissions>
595    </role>
596
597    <role
598        name="android.app.role.SYSTEM_WELLBEING"
599        defaultHolders="config_systemWellbeing"
600        exclusive="true"
601        minSdkVersion="31"
602        static="true"
603        systemOnly="true"
604        visible="false" >
605        <permissions>
606            <permission name="android.permission.ACCESS_INSTANT_APPS"/>
607            <permission name="android.permission.SUSPEND_APPS"/>
608            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY"/>
609        </permissions>
610    </role>
611
612    <!---
613      ~ A role for the notification handler on TV devices.
614      ~ Note: on TV devices that have the Dashboard screen, the holder for this role is responsible
615      ~ for it, which is why it needs OBSERVE_SENSOR_PRIVACY permission (the Dashboard displays
616      ~ the state of the privacy sensors).
617      -->
618    <role
619        name="android.app.role.SYSTEM_TELEVISION_NOTIFICATION_HANDLER"
620        behavior="TelevisionRoleBehavior"
621        defaultHolders="config_systemTelevisionNotificationHandler"
622        exclusive="true"
623        minSdkVersion="31"
624        static="true"
625        systemOnly="true"
626        visible="false">
627        <permissions>
628            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
629        </permissions>
630    </role>
631
632    <!---
633        A role for the system package that is allowed to create CompanionDeviceManager associations
634        based on user consent to allow the associated app to manage the associated device.
635    -->
636    <role
637        name="android.app.role.SYSTEM_COMPANION_DEVICE_PROVIDER"
638        defaultHolders="config_systemCompanionDeviceProvider"
639        exclusive="true"
640        minSdkVersion="31"
641        static="true"
642        systemOnly="true"
643        visible="false" >
644        <permissions>
645            <permission name="android.permission.ASSOCIATE_COMPANION_DEVICES"/>
646        </permissions>
647    </role>
648
649    <!---
650      ~ A role for the system package that provides privacy-preserving intelligent processor for
651      ~ system UI features.
652      ~
653      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
654      ~ section "9.8.6 Content Capture".
655      ~ Example link for Android 11:
656      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
657      ~
658      ~ In addition, packages MUST NOT:
659      ~ - Request INTERNET permission. Instead packages MUST access the internet through
660      ~   well-defined APIs in an open source project.
661      ~ - Perform direct binds to other applications, except the following system packages:
662      ~   - Bluetooth
663      ~   - Contacts
664      ~   - Media
665      ~   - Telephony
666      ~   - System UI
667      ~   - Component providing internet APIs (see above)
668      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
669      ~   system config.
670      -->
671    <role
672        name="android.app.role.SYSTEM_UI_INTELLIGENCE"
673        defaultHolders="config_systemUiIntelligence"
674        exclusive="true"
675        minSdkVersion="31"
676        static="true"
677        systemOnly="true"
678        visible="false">
679        <permissions>
680            <permission name="android.permission.ACCESS_SHORTCUTS" />
681            <permission name="android.permission.BLUETOOTH_CONNECT" />
682            <permission name="android.permission.BLUETOOTH_SCAN" />
683            <permission name="android.permission.MANAGE_APP_PREDICTIONS" />
684            <permission name="android.permission.UNLIMITED_SHORTCUTS_API_CALLS" />
685            <permission name="android.permission.MANAGE_SEARCH_UI" />
686            <permission name="android.permission.READ_EXTERNAL_STORAGE" />
687            <permission name="android.permission.READ_PEOPLE_DATA" />
688            <permission name="android.permission.READ_GLOBAL_APP_SEARCH_DATA" />
689        </permissions>
690    </role>
691
692    <!---
693      ~ A role for the system package that provides on-device intelligent processor for ambient
694      ~ audio.
695      ~
696      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
697      ~ section "9.8.6 Content Capture".
698      ~ Example link for Android 11:
699      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
700      ~
701      ~ In addition, packages MUST NOT:
702      ~ - Request INTERNET permission. Instead packages MUST access the internet through
703      ~   well-defined APIs in an open source project.
704      ~ - Perform direct binds to other applications, except the following system packages:
705      ~   - Bluetooth
706      ~   - Contacts
707      ~   - Media
708      ~   - Telephony
709      ~   - System UI
710      ~   - Component providing internet APIs (see above)
711      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
712      ~   system config.
713      -->
714    <role
715        name="android.app.role.SYSTEM_AMBIENT_AUDIO_INTELLIGENCE"
716        defaultHolders="config_systemAmbientAudioIntelligence"
717        exclusive="true"
718        minSdkVersion="31"
719        static="true"
720        systemOnly="true"
721        visible="false">
722        <permissions>
723            <permission name="android.permission.CAPTURE_AUDIO_OUTPUT" />
724            <permission name="android.permission.CAPTURE_MEDIA_OUTPUT" />
725            <permission name="android.permission.CAPTURE_VOICE_COMMUNICATION_OUTPUT" />
726            <permission name="android.permission.MODIFY_AUDIO_ROUTING" />
727            <permission name="android.permission.RECORD_AUDIO" />
728            <permission name="android.permission.CAPTURE_AUDIO_HOTWORD" />
729            <permission name="android.permission.EXEMPT_FROM_AUDIO_RECORD_RESTRICTIONS" />
730            <permission name="android.permission.MANAGE_SOUND_TRIGGER" />
731            <permission name="android.permission.LOCATION_HARDWARE" />
732            <permission name="android.permission.MANAGE_MUSIC_RECOGNITION" />
733            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
734        </permissions>
735    </role>
736
737    <!---
738      ~ A role for the system package that provides on-device intelligent processor for audio.
739      ~
740      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
741      ~ section "9.8.6 Content Capture".
742      ~ Example link for Android 11:
743      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
744      ~
745      ~ In addition, packages MUST NOT:
746      ~ - Request INTERNET permission. Instead packages MUST access the internet through
747      ~   well-defined APIs in an open source project.
748      ~ - Perform direct binds to other applications, except the following system packages:
749      ~   - Bluetooth
750      ~   - Contacts
751      ~   - Media
752      ~   - Telephony
753      ~   - System UI
754      ~   - Component providing internet APIs (see above)
755      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
756      ~   system config.
757      -->
758    <role
759        name="android.app.role.SYSTEM_AUDIO_INTELLIGENCE"
760        defaultHolders="config_systemAudioIntelligence"
761        exclusive="true"
762        minSdkVersion="31"
763        static="true"
764        systemOnly="true"
765        visible="false">
766        <permissions>
767            <permission name="android.permission.CAPTURE_AUDIO_OUTPUT" />
768            <permission name="android.permission.CAPTURE_MEDIA_OUTPUT" />
769            <permission name="android.permission.CAPTURE_VOICE_COMMUNICATION_OUTPUT" />
770            <permission name="android.permission.CONTROL_INCALL_EXPERIENCE" />
771            <permission name="android.permission.MODIFY_AUDIO_ROUTING" />
772            <permission name="android.permission.MODIFY_PHONE_STATE" />
773            <permission name="android.permission.RECORD_AUDIO" />
774            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
775        </permissions>
776    </role>
777
778    <!---
779      ~ A role for the system package that provides on-device intelligent processor for
780      ~ notifications.
781      ~
782      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
783      ~ section "9.8.6 Content Capture".
784      ~ Example link for Android 11:
785      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
786      ~
787      ~ In addition, packages MUST NOT:
788      ~ - Request INTERNET permission. Instead packages MUST access the internet through
789      ~   well-defined APIs in an open source project.
790      ~ - Perform direct binds to other applications, except the following system packages:
791      ~   - Bluetooth
792      ~   - Contacts
793      ~   - Media
794      ~   - Telephony
795      ~   - System UI
796      ~   - Component providing internet APIs (see above)
797      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
798      ~   system config.
799      -->
800    <role
801        name="android.app.role.SYSTEM_NOTIFICATION_INTELLIGENCE"
802        defaultHolders="config_systemNotificationIntelligence"
803        exclusive="true"
804        minSdkVersion="31"
805        static="true"
806        systemOnly="true"
807        visible="false">
808        <permissions>
809            <permission name="android.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE" />
810            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
811        </permissions>
812    </role>
813
814    <!---
815      ~ A role for the system package that provides on-device intelligent processor for text.
816      ~
817      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
818      ~ section "9.8.6 Content Capture".
819      ~ Example link for Android 11:
820      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
821      ~
822      ~ In addition, packages MUST NOT:
823      ~ - Request INTERNET permission. Instead packages MUST access the internet through
824      ~   well-defined APIs in an open source project.
825      ~ - Perform direct binds to other applications, except the following system packages:
826      ~   - Bluetooth
827      ~   - Contacts
828      ~   - Media
829      ~   - Telephony
830      ~   - System UI
831      ~   - Component providing internet APIs (see above)
832      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
833      ~   system config.
834      -->
835    <role
836        name="android.app.role.SYSTEM_TEXT_INTELLIGENCE"
837        defaultHolders="config_systemTextIntelligence"
838        exclusive="true"
839        minSdkVersion="31"
840        static="true"
841        systemOnly="true"
842        visible="false">
843        <permissions>
844            <permission name="android.permission.MANAGE_UI_TRANSLATION" />
845            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
846        </permissions>
847    </role>
848
849    <!---
850      ~ A role for the system package that provides on-device intelligent processor for visual
851      ~ features.
852      ~
853      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
854      ~ section "9.8.6 Content Capture".
855      ~ Example link for Android 11:
856      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
857      ~
858      ~ In addition, packages MUST NOT:
859      ~ - Request INTERNET permission. Instead packages MUST access the internet through
860      ~   well-defined APIs in an open source project.
861      ~ - Perform direct binds to other applications, except the following system packages:
862      ~   - Bluetooth
863      ~   - Contacts
864      ~   - Media
865      ~   - Telephony
866      ~   - System UI
867      ~   - Component providing internet APIs (see above)
868      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
869      ~   system config.
870      -->
871    <role
872        name="android.app.role.SYSTEM_VISUAL_INTELLIGENCE"
873        defaultHolders="config_systemVisualIntelligence"
874        exclusive="true"
875        minSdkVersion="31"
876        static="true"
877        systemOnly="true"
878        visible="false">
879        <permissions>
880            <permission name="android.permission.CAMERA" />
881            <permission name="android.permission.SYSTEM_CAMERA" />
882            <permission name="android.permission.UPDATE_DEVICE_STATS" />
883            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
884        </permissions>
885    </role>
886
887    <!---
888      ~ A role for the system package that serves as the activity recognizer on the device.
889      ~ This is the application that provides the data behind the activity recognition
890      ~ runtime permission.
891      -->
892    <role
893        name="android.app.role.SYSTEM_ACTIVITY_RECOGNIZER"
894        allowBypassingQualification="true"
895        defaultHolders="config_systemActivityRecognizer"
896        exclusive="false"
897        static="true"
898        systemOnly="true"
899        visible="false">
900        <required-components>
901            <service>
902                <intent-filter>
903                    <action name="android.intent.action.ACTIVITY_RECOGNIZER" />
904                </intent-filter>
905            </service>
906        </required-components>
907    </role>
908
909    <!---
910      ~ A role for the system UI package.
911      -->
912    <role
913        name="android.app.role.SYSTEM_UI"
914        defaultHolders="config_systemUi"
915        exclusive="true"
916        minSdkVersion="31"
917        static="true"
918        systemOnly="true"
919        visible="false">
920        <permissions>
921            <permission name="android.permission.MANAGE_SENSOR_PRIVACY" />
922            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
923        </permissions>
924    </role>
925
926    <!---
927      ~ A role for the package responsible for interacting with a TV remote.
928      -->
929    <role
930        name="android.app.role.SYSTEM_TELEVISION_REMOTE_SERVICE"
931        behavior="TelevisionRoleBehavior"
932        defaultHolders="config_systemTelevisionRemoteService"
933        exclusive="true"
934        minSdkVersion="31"
935        static="true"
936        systemOnly="true"
937        visible="false">
938        <permissions>
939            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
940        </permissions>
941    </role>
942
943</roles>
944