• 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_COARSE_LOCATION" />
41        <permission name="android.permission.ACCESS_FINE_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 name="android.permission.BODY_SENSORS_BACKGROUND" minSdkVersion="33" />
73    </permission-set>
74
75    <permission-set name="storage">
76        <permission name="android.permission.READ_EXTERNAL_STORAGE" />
77        <permission name="android.permission.WRITE_EXTERNAL_STORAGE" />
78        <permission name="android.permission.READ_MEDIA_AUDIO" minSdkVersion="33" />
79        <permission name="android.permission.READ_MEDIA_VIDEO" minSdkVersion="33" />
80        <permission name="android.permission.READ_MEDIA_IMAGES" minSdkVersion="33" />
81    </permission-set>
82
83    <permission-set name="nearby_devices">
84        <permission name="android.permission.BLUETOOTH_ADVERTISE" minSdkVersion="31" />
85        <permission name="android.permission.BLUETOOTH_CONNECT" minSdkVersion="31" />
86        <permission name="android.permission.BLUETOOTH_SCAN" minSdkVersion="31" />
87    </permission-set>
88
89    <permission-set name="notifications">
90        <permission name="android.permission.POST_NOTIFICATIONS" minSdkVersion="33" />
91    </permission-set>
92
93    <role
94        name="android.app.role.ASSISTANT"
95        behavior="AssistantRoleBehavior"
96        defaultHolders="config_defaultAssistant"
97        description="@string/role_assistant_description"
98        exclusive="true"
99        fallBackToDefaultHolder="true"
100        showNone="true"
101        label="@string/role_assistant_label"
102        overrideUserWhenGranting="true"
103        requestable="false"
104        shortLabel="@string/role_assistant_short_label">
105        <required-components>
106            <!-- Qualified components are determined int AssistantRoleBehavior. This comment here is
107                 ignored and represents just a rough description
108
109            <any-of>
110                <service permission="android.permission.BIND_VOICE_INTERACTION"
111                         supportsAssist="true">
112                    <intent-filter>
113                        <action name="android.service.voice.VoiceInteractionService" />
114                    </intent-filter>
115                    <meta-data name="android.voice_interaction"
116                               optional="false">
117                        required tag in metadata xml: sessionService
118                        required tag in metadata xml: recognitionService
119                        required tag in metadata xml: supportsAssist = true
120                    </meta-data>
121                </service>
122                <activity>
123                    <intent-filter>
124                        <action name="android.intent.action.ASSIST" />
125                    </intent-filter>
126                </activity>
127            </ any-of>
128
129            -->
130        </required-components>
131        <permissions>
132            <permission-set name="sms" />
133            <permission name="android.permission.READ_CALL_LOG" />
134            <permission name="android.permission.ACCESS_BLOBS_ACROSS_USERS" minSdkVersion="31" />
135            <permission name="android.permission.READ_ASSISTANT_APP_SEARCH_DATA"
136                minSdkVersion="33"/>
137            <permission name="android.permission.SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE"
138                minSdkVersion="33" />
139        </permissions>
140        <app-op-permissions>
141            <app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" />
142        </app-op-permissions>
143    </role>
144
145    <!---
146      ~ @see com.android.settings.applications.defaultapps.DefaultBrowserPreferenceController
147      ~ @see com.android.settings.applications.defaultapps.DefaultBrowserPicker
148      ~ @see com.android.server.pm.PackageManagerService.resolveAllBrowserApps(int)
149      ~ @see com.android.server.pm.PackageManagerService.setDefaultBrowserPackageName(String, int)
150      ~ @see com.android.server.pm.permission.DefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultBrowser(String, int)
151      -->
152    <role
153        name="android.app.role.BROWSER"
154        behavior="BrowserRoleBehavior"
155        defaultHolders="config_defaultBrowser"
156        description="@string/role_browser_description"
157        exclusive="true"
158        label="@string/role_browser_label"
159        overrideUserWhenGranting="true"
160        requestDescription="@string/role_browser_request_description"
161        requestTitle="@string/role_browser_request_title"
162        shortLabel="@string/role_browser_short_label">
163        <!--
164          ~ Required components matching is handled in BrowserRoleBehavior because it needs the
165          ~ PackageManager.MATCH_ALL flag and other manual filtering, which cannot fit in our
166          ~ current mechanism easily.
167          -->
168        <!--
169        <required-components>
170            <activity>
171                <intent-filter>
172                    <action name="android.intent.action.VIEW" />
173                    <category name="android.intent.category.BROWSABLE" />
174                    <data scheme="http" />
175                </intent-filter>
176            </activity>
177        </required-components>
178        -->
179        <!--
180          ~ Not need to set preferred activity because PackageManager handles browser intents
181          ~ specially.
182          -->
183    </role>
184
185    <!--
186      ~ @see com.android.settings.applications.defaultapps.DefaultPhonePreferenceController
187      ~ @see com.android.settings.applications.defaultapps.DefaultPhonePicker
188      ~ @see android.telecom.DefaultDialerManager
189      ~ @see com.android.server.pm.permission.DefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultDialerApp(String, int)
190      ~ @see com.android.server.pm.Settings.setDefaultDialerPackageNameLPw(String, int)
191      -->
192    <role
193        name="android.app.role.DIALER"
194        behavior="DialerRoleBehavior"
195        defaultHolders="config_defaultDialer"
196        description="@string/role_dialer_description"
197        exclusive="true"
198        fallBackToDefaultHolder="true"
199        label="@string/role_dialer_label"
200        overrideUserWhenGranting="true"
201        requestDescription="@string/role_dialer_request_description"
202        requestTitle="@string/role_dialer_request_title"
203        searchKeywords="@string/role_dialer_search_keywords"
204        shortLabel="@string/role_dialer_short_label">
205        <required-components>
206            <activity>
207                <intent-filter>
208                    <action name="android.intent.action.DIAL" />
209                </intent-filter>
210            </activity>
211            <activity>
212                <intent-filter>
213                    <action name="android.intent.action.DIAL" />
214                    <data scheme="tel" />
215                </intent-filter>
216            </activity>
217            <service minTargetSdkVersion="33" permission="android.permission.BIND_INCALL_SERVICE">
218                <meta-data name="android.telecom.IN_CALL_SERVICE_UI" value="true" />
219                <meta-data
220                    name="android.telecom.IN_CALL_SERVICE_CAR_MODE_UI"
221                    value="true"
222                    prohibited="true" />
223                <intent-filter>
224                    <action name="android.telecom.InCallService" />
225                </intent-filter>
226            </service>
227        </required-components>
228        <permissions>
229            <permission-set name="phone" />
230            <permission-set name="contacts" />
231            <permission-set name="sms" />
232            <permission-set name="microphone" />
233            <permission-set name="camera" />
234            <permission-set name="notifications" />
235        </permissions>
236        <app-op-permissions>
237            <app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" />
238        </app-op-permissions>
239        <app-ops>
240            <!--
241              ~ @see com.android.settings.applications.defaultapps.DefaultPhonePicker#setDefaultKey(String)
242              ~ @see com.android.settings.fuelgauge.BatteryUtils#setForceAppStandby(int, String, int)
243              -->
244            <app-op name="android:run_in_background" maxTargetSdkVersion="25" mode="allowed" />
245            <app-op name="android:run_any_in_background" mode="allowed" />
246        </app-ops>
247        <preferred-activities>
248            <preferred-activity>
249                <activity>
250                    <intent-filter>
251                        <action name="android.intent.action.DIAL" />
252                    </intent-filter>
253                </activity>
254                <intent-filter>
255                    <action name="android.intent.action.DIAL" />
256                </intent-filter>
257            </preferred-activity>
258            <preferred-activity>
259                <activity>
260                    <intent-filter>
261                        <action name="android.intent.action.DIAL" />
262                        <data scheme="tel" />
263                    </intent-filter>
264                </activity>
265                <intent-filter>
266                    <action name="android.intent.action.DIAL" />
267                    <data scheme="tel" />
268                </intent-filter>
269            </preferred-activity>
270        </preferred-activities>
271    </role>
272
273    <!--
274      ~ @see com.android.settings.applications.defaultapps.DefaultSmsPreferenceController
275      ~ @see com.android.settings.applications.defaultapps.DefaultSmsPicker
276      ~ @see com.android.internal.telephony.SmsApplication
277      ~ @see com.android.server.pm.permission.DefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultSmsApp(String, int)
278      -->
279    <role
280        name="android.app.role.SMS"
281        behavior="SmsRoleBehavior"
282        defaultHolders="config_defaultSms"
283        description="@string/role_sms_description"
284        exclusive="true"
285        label="@string/role_sms_label"
286        overrideUserWhenGranting="true"
287        requestDescription="@string/role_sms_request_description"
288        requestTitle="@string/role_sms_request_title"
289        searchKeywords="@string/role_sms_search_keywords"
290        shortLabel="@string/role_sms_short_label">
291        <required-components>
292            <receiver permission="android.permission.BROADCAST_SMS">
293                <intent-filter>
294                    <action name="android.provider.Telephony.SMS_DELIVER" />
295                </intent-filter>
296            </receiver>
297            <receiver permission="android.permission.BROADCAST_WAP_PUSH">
298                <intent-filter>
299                    <action name="android.provider.Telephony.WAP_PUSH_DELIVER" />
300                    <data mimeType="application/vnd.wap.mms-message" />
301                </intent-filter>
302            </receiver>
303            <service permission="android.permission.SEND_RESPOND_VIA_MESSAGE">
304                <intent-filter>
305                    <action name="android.intent.action.RESPOND_VIA_MESSAGE" />
306                    <data scheme="smsto" />
307                </intent-filter>
308            </service>
309            <activity>
310                <intent-filter>
311                    <action name="android.intent.action.SENDTO" />
312                    <data scheme="smsto" />
313                </intent-filter>
314            </activity>
315        </required-components>
316        <permissions>
317            <permission-set name="phone" />
318            <permission-set name="contacts" />
319            <permission-set name="sms" />
320            <permission-set name="storage" />
321            <permission-set name="microphone" />
322            <permission-set name="camera" />
323            <permission-set name="notifications" />
324            <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" minSdkVersion="31" />
325        </permissions>
326        <app-ops>
327            <app-op name="android:write_sms" mode="allowed" />
328            <!--
329              ~ @see com.android.settings.applications.defaultapps.DefaultSmsPicker#setDefaultKey(String)
330              ~ @see com.android.settings.fuelgauge.BatteryUtils#setForceAppStandby(int, String, int)
331              -->
332            <app-op name="android:run_in_background" maxTargetSdkVersion="25" mode="allowed" />
333            <app-op name="android:run_any_in_background" mode="allowed" />
334            <app-op name="android:read_device_identifiers" mode="allowed" />
335        </app-ops>
336        <preferred-activities>
337            <preferred-activity>
338                <activity>
339                    <intent-filter>
340                        <action name="android.intent.action.SENDTO" />
341                        <data scheme="smsto" />
342                    </intent-filter>
343                </activity>
344                <intent-filter>
345                    <action name="android.intent.action.SENDTO" />
346                    <data scheme="sms" />
347                </intent-filter>
348                <intent-filter>
349                    <action name="android.intent.action.SENDTO" />
350                    <data scheme="smsto" />
351                </intent-filter>
352                <intent-filter>
353                    <action name="android.intent.action.SENDTO" />
354                    <data scheme="mms" />
355                </intent-filter>
356                <intent-filter>
357                    <action name="android.intent.action.SENDTO" />
358                    <data scheme="mmsto" />
359                </intent-filter>
360            </preferred-activity>
361        </preferred-activities>
362    </role>
363
364    <!---
365      ~ @see com.android.settings.applications.defaultapps.DefaultEmergencyPreferenceController
366      ~ @see com.android.settings.applications.defaultapps.DefaultEmergencyPicker
367      ~ @see com.android.phone.EmergencyAssistanceHelper
368      -->
369    <role
370        name="android.app.role.EMERGENCY"
371        behavior="EmergencyRoleBehavior"
372        description="@string/role_emergency_description"
373        exclusive="true"
374        label="@string/role_emergency_label"
375        overrideUserWhenGranting="true"
376        requestDescription="@string/role_emergency_request_description"
377        requestTitle="@string/role_emergency_request_title"
378        searchKeywords="@string/role_emergency_search_keywords"
379        shortLabel="@string/role_emergency_short_label"
380        systemOnly="true">
381        <required-components>
382            <activity>
383                <intent-filter>
384                    <action name="android.telephony.action.EMERGENCY_ASSISTANCE" />
385                </intent-filter>
386            </activity>
387        </required-components>
388        <permissions>
389            <permission-set name="notifications" />
390            <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" minSdkVersion="31" />
391            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" minSdkVersion="31" />
392        </permissions>
393    </role>
394
395    <!---
396      ~ @see com.android.settings.applications.defaultapps.DefaultHomePreferenceController
397      ~ @see com.android.settings.applications.defaultapps.DefaultHomePicker
398      ~ @see com.android.server.pm.PackageManagerService#setHomeActivity(ComponentName, int)
399      -->
400    <role
401        name="android.app.role.HOME"
402        behavior="HomeRoleBehavior"
403        description="@string/role_home_description"
404        exclusive="true"
405        label="@string/role_home_label"
406        overrideUserWhenGranting="true"
407        requestDescription="@string/role_home_request_description"
408        requestTitle="@string/role_home_request_title"
409        searchKeywords="@string/role_home_search_keywords"
410        shortLabel="@string/role_home_short_label">
411        <!-- Also used by HomeRoleBehavior.getFallbackHolder(). -->
412        <required-components>
413            <activity>
414                <intent-filter>
415                    <action name="android.intent.action.MAIN" />
416                    <category name="android.intent.category.HOME" />
417                </intent-filter>
418            </activity>
419        </required-components>
420        <preferred-activities>
421            <preferred-activity>
422                <activity>
423                    <intent-filter>
424                        <action name="android.intent.action.MAIN" />
425                        <category name="android.intent.category.HOME" />
426                    </intent-filter>
427                </activity>
428                <intent-filter>
429                    <action name="android.intent.action.MAIN" />
430                    <category name="android.intent.category.HOME" />
431                </intent-filter>
432            </preferred-activity>
433        </preferred-activities>
434        <permissions>
435            <permission name="android.permission.READ_HOME_APP_SEARCH_DATA" minSdkVersion="33"/>
436        </permissions>
437    </role>
438
439    <!--- @see android.telecom.CallRedirectionService -->
440    <role
441        name="android.app.role.CALL_REDIRECTION"
442        defaultHolders="config_defaultCallRedirection"
443        description="@string/role_call_redirection_description"
444        exclusive="true"
445        label="@string/role_call_redirection_label"
446        overrideUserWhenGranting="true"
447        requestDescription="@string/role_call_redirection_request_description"
448        requestTitle="@string/role_call_redirection_request_title"
449        shortLabel="@string/role_call_redirection_short_label"
450        showNone="true">
451        <required-components>
452            <service permission="android.permission.BIND_CALL_REDIRECTION_SERVICE">
453                <intent-filter>
454                    <action name="android.telecom.CallRedirectionService" />
455                </intent-filter>
456            </service>
457        </required-components>
458    </role>
459
460    <!--- @see android.telecom.CallScreeningService -->
461    <role
462        name="android.app.role.CALL_SCREENING"
463        defaultHolders="config_defaultCallScreening"
464        description="@string/role_call_screening_description"
465        exclusive="true"
466        label="@string/role_call_screening_label"
467        overrideUserWhenGranting="true"
468        requestDescription="@string/role_call_screening_request_description"
469        requestTitle="@string/role_call_screening_request_title"
470        shortLabel="@string/role_call_screening_short_label"
471        showNone="true">
472        <required-components>
473            <service permission="android.permission.BIND_SCREENING_SERVICE">
474                <intent-filter>
475                    <action name="android.telecom.CallScreeningService" />
476                </intent-filter>
477            </service>
478        </required-components>
479        <permissions>
480            <permission-set name="notifications" />
481        </permissions>
482        <app-op-permissions>
483            <app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" />
484        </app-op-permissions>
485    </role>
486
487    <role
488        name="android.app.role.SYSTEM_GALLERY"
489        defaultHolders="config_systemGallery"
490        exclusive="true"
491        static="true"
492        systemOnly="true"
493        visible="false">
494        <permissions>
495            <permission-set name="storage" />
496            <permission name="android.permission.ACCESS_MEDIA_LOCATION" />
497            <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" minSdkVersion="31" />
498        </permissions>
499        <app-ops>
500            <app-op name="android:write_media_images" mode="allowed" />
501            <app-op name="android:write_media_video" mode="allowed" />
502        </app-ops>
503    </role>
504
505    <role
506        name="android.app.role.SYSTEM_AUTOMOTIVE_CLUSTER"
507        behavior="AutomotiveRoleBehavior"
508        defaultHolders="config_systemAutomotiveCluster"
509        exclusive="true"
510        minSdkVersion="31"
511        static="true"
512        systemOnly="true"
513        visible="false">
514        <permissions>
515            <permission name="android.permission.ANSWER_PHONE_CALLS" />
516            <permission name="android.permission.READ_CALL_LOG" />
517            <permission name="android.permission.READ_CONTACTS" />
518            <permission name="android.car.permission.CAR_ENERGY"/>
519        </permissions>
520    </role>
521
522    <role
523        name="android.app.role.COMPANION_DEVICE_WATCH"
524        behavior="CompanionDeviceWatchRoleBehavior"
525        description="@string/role_watch_description"
526        exclusive="false"
527        minSdkVersion="31"
528        systemOnly="false"
529        visible="false">
530        <permissions>
531            <permission-set name="calendar" />
532            <permission-set name="phone" />
533            <permission-set name="sms" />
534            <permission-set name="contacts" />
535            <permission-set name="nearby_devices" />
536        </permissions>
537        <app-op-permissions>
538            <app-op-permission name="android.permission.MANAGE_ONGOING_CALLS" />
539            <app-op-permission name="android.permission.USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER" />
540        </app-op-permissions>
541    </role>
542
543    <role
544        name="android.app.role.SYSTEM_AUTOMOTIVE_PROJECTION"
545        allowBypassingQualification="true"
546        defaultHolders="config_systemAutomotiveProjection"
547        exclusive="false"
548        minSdkVersion="31"
549        static="true"
550        systemOnly="true"
551        visible="false">
552        <permissions>
553            <permission-set name="microphone" />
554            <permission-set name="location" />
555            <permission-set name="nearby_devices" />
556            <permission-set name="notifications" />
557            <permission name="android.permission.ADD_ALWAYS_UNLOCKED_DISPLAY" minSdkVersion="33" />
558            <permission name="android.permission.CALL_PHONE" />
559            <permission name="android.permission.CREATE_VIRTUAL_DEVICE" minSdkVersion="33" />
560            <permission name="android.permission.READ_CALENDAR" />
561            <permission name="android.permission.READ_CALL_LOG" />
562            <permission name="android.permission.READ_CONTACTS" />
563            <permission name="android.permission.READ_PHONE_STATE" />
564            <permission name="android.permission.RECEIVE_SMS" />
565            <permission name="android.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION" minSdkVersion="33" />
566            <permission name="android.permission.SEND_SMS" />
567            <permission name="android.permission.TOGGLE_AUTOMOTIVE_PROJECTION" minSdkVersion="33" />
568        </permissions>
569    </role>
570
571    <role
572        name="android.app.role.SYSTEM_SHELL"
573        behavior="SystemShellRoleBehavior"
574        defaultHolders="config_systemShell"
575        exclusive="true"
576        minSdkVersion="31"
577        static="true"
578        systemOnly="true"
579        visible="false">
580        <permissions>
581            <!-- Used for CTS testing -->
582            <permission name="android.permission.CREATE_VIRTUAL_DEVICE" minSdkVersion="33" />
583            <permission name="android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE" />
584            <permission name="android.permission.ACCESS_AMBIENT_CONTEXT_EVENT" minSdkVersion="33"/>
585            <permission name="android.permission.PERFORM_IMS_SINGLE_REGISTRATION" />
586            <permission name="android.permission.BACKGROUND_CAMERA" />
587            <permission name="android.permission.RECORD_BACKGROUND_AUDIO" />
588            <permission name="android.permission.BYPASS_ROLE_QUALIFICATION" />
589            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
590            <permission name="android.permission.MANAGE_SENSOR_PRIVACY" />
591            <permission name="android.permission.READ_GLOBAL_APP_SEARCH_DATA" />
592            <permission name="android.permission.TOGGLE_AUTOMOTIVE_PROJECTION" minSdkVersion="33" />
593            <permission name="android.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS"
594                minSdkVersion="33" />
595            <permission name="android.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION"
596                minSdkVersion="33" />
597            <permission name="android.permission.MANAGE_SAFETY_CENTER"
598                minSdkVersion="33" />
599            <permission name="android.permission.ADD_TRUSTED_DISPLAY" minSdkVersion="33" />
600            <permission name="android.permission.ADD_ALWAYS_UNLOCKED_DISPLAY" minSdkVersion="33" />
601            <permission name="android.permission.SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE"
602                minSdkVersion="33" />
603        </permissions>
604    </role>
605
606    <role
607        name="android.app.role.SYSTEM_CONTACTS"
608        defaultHolders="config_systemContacts"
609        exclusive="true"
610        minSdkVersion="31"
611        static="true"
612        systemOnly="true"
613        visible="false">
614        <permissions>
615            <permission name="android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE" />
616            <permission name="android.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS"
617                minSdkVersion="33" />
618        </permissions>
619    </role>
620
621    <role
622        name="android.app.role.SYSTEM_SPEECH_RECOGNIZER"
623        allowBypassingQualification="true"
624        defaultHolders="config_systemSpeechRecognizer"
625        exclusive="true"
626        minSdkVersion="31"
627        static="true"
628        systemOnly="true"
629        visible="false">
630        <permissions>
631            <permission name="android.permission.RECORD_AUDIO" />
632            <permission name="android.permission.UPDATE_APP_OPS_STATS" />
633        </permissions>
634        <required-components>
635            <service>
636                <intent-filter>
637                    <action name="android.speech.RecognitionService" />
638                </intent-filter>
639            </service>
640        </required-components>
641    </role>
642
643    <role
644        name="android.app.role.SYSTEM_WIFI_COEX_MANAGER"
645        defaultHolders="config_systemWifiCoexManager"
646        exclusive="true"
647        minSdkVersion="31"
648        static="true"
649        systemOnly="true"
650        visible="false">
651        <permissions>
652            <permission name="android.permission.WIFI_ACCESS_COEX_UNSAFE_CHANNELS" />
653            <permission name="android.permission.WIFI_UPDATE_COEX_UNSAFE_CHANNELS" />
654        </permissions>
655    </role>
656
657    <role
658        name="android.app.role.SYSTEM_WELLBEING"
659        defaultHolders="config_systemWellbeing"
660        exclusive="true"
661        minSdkVersion="31"
662        static="true"
663        systemOnly="true"
664        visible="false" >
665        <permissions>
666            <permission-set name="notifications" />
667            <permission name="android.permission.ACCESS_AMBIENT_CONTEXT_EVENT" minSdkVersion="33"/>
668            <permission name="android.permission.ACCESS_INSTANT_APPS"/>
669            <permission name="android.permission.START_CROSS_PROFILE_ACTIVITIES" minSdkVersion="33"/>
670            <permission name="android.permission.SUSPEND_APPS"/>
671            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY"/>
672        </permissions>
673    </role>
674
675    <!---
676      ~ A role for the notification handler on TV devices.
677      ~ Note: on TV devices that have the Dashboard screen, the holder for this role is responsible
678      ~ for it, which is why it needs OBSERVE_SENSOR_PRIVACY permission (the Dashboard displays
679      ~ the state of the privacy sensors).
680      -->
681    <role
682        name="android.app.role.SYSTEM_TELEVISION_NOTIFICATION_HANDLER"
683        behavior="TelevisionRoleBehavior"
684        defaultHolders="config_systemTelevisionNotificationHandler"
685        exclusive="true"
686        minSdkVersion="31"
687        static="true"
688        systemOnly="true"
689        visible="false">
690        <permissions>
691            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
692            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
693        </permissions>
694    </role>
695
696    <!---
697        A role for the system package that is allowed to create CompanionDeviceManager associations
698        based on user consent to allow the associated app to manage the associated device.
699    -->
700    <role
701        name="android.app.role.SYSTEM_COMPANION_DEVICE_PROVIDER"
702        defaultHolders="config_systemCompanionDeviceProvider"
703        exclusive="true"
704        minSdkVersion="31"
705        static="true"
706        systemOnly="true"
707        visible="false" >
708        <permissions>
709            <permission name="android.permission.ASSOCIATE_COMPANION_DEVICES"/>
710        </permissions>
711    </role>
712
713    <!---
714      ~ A role for the system package that provides privacy-preserving intelligent processor for
715      ~ system UI features.
716      ~
717      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
718      ~ section "9.8.6 Content Capture".
719      ~ Example link for Android 11:
720      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
721      ~
722      ~ In addition, packages MUST NOT:
723      ~ - Request INTERNET permission. Instead packages MUST access the internet through
724      ~   well-defined APIs in an open source project.
725      ~ - Perform direct binds to other applications, except the following system packages:
726      ~   - Bluetooth
727      ~   - Contacts
728      ~   - Media
729      ~   - Telephony
730      ~   - System UI
731      ~   - Component providing internet APIs (see above)
732      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
733      ~   system config.
734      -->
735    <role
736        name="android.app.role.SYSTEM_UI_INTELLIGENCE"
737        defaultHolders="config_systemUiIntelligence"
738        exclusive="true"
739        minSdkVersion="31"
740        static="true"
741        systemOnly="true"
742        visible="false">
743        <permissions>
744            <permission-set name="notifications" />
745            <permission name="android.permission.ACCESS_SHORTCUTS" />
746            <permission name="android.permission.ACCESS_BACKGROUND_LOCATION" minSdkVersion="33" />
747            <permission name="android.permission.ACCESS_COARSE_LOCATION" minSdkVersion="33" />
748            <permission name="android.permission.ACCESS_FINE_LOCATION" minSdkVersion="33" />
749            <permission name="android.permission.BLUETOOTH_CONNECT" />
750            <permission name="android.permission.BLUETOOTH_SCAN" />
751            <permission name="android.permission.MANAGE_APP_PREDICTIONS" />
752            <permission name="android.permission.UNLIMITED_SHORTCUTS_API_CALLS" />
753            <permission name="android.permission.MANAGE_SEARCH_UI" />
754            <permission name="android.permission.READ_CALL_LOG" minSdkVersion="33" />
755            <permission name="android.permission.READ_CONTACTS" minSdkVersion="33" />
756            <permission name="android.permission.READ_EXTERNAL_STORAGE" />
757            <permission name="android.permission.READ_MEDIA_AUDIO" minSdkVersion="33" />
758            <permission name="android.permission.READ_MEDIA_IMAGES" minSdkVersion="33" />
759            <permission name="android.permission.READ_MEDIA_VIDEO" minSdkVersion="33" />
760            <permission name="android.permission.READ_SMS" minSdkVersion="33" />
761            <permission name="android.permission.READ_PEOPLE_DATA" />
762            <permission name="android.permission.READ_GLOBAL_APP_SEARCH_DATA" />
763        </permissions>
764    </role>
765
766    <!---
767      ~ A role for the system package that provides on-device intelligent processor for ambient
768      ~ audio.
769      ~
770      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
771      ~ section "9.8.6 Content Capture".
772      ~ Example link for Android 11:
773      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
774      ~
775      ~ In addition, packages MUST NOT:
776      ~ - Request INTERNET permission. Instead packages MUST access the internet through
777      ~   well-defined APIs in an open source project.
778      ~ - Perform direct binds to other applications, except the following system packages:
779      ~   - Bluetooth
780      ~   - Contacts
781      ~   - Media
782      ~   - Telephony
783      ~   - System UI
784      ~   - Component providing internet APIs (see above)
785      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
786      ~   system config.
787      -->
788    <role
789        name="android.app.role.SYSTEM_AMBIENT_AUDIO_INTELLIGENCE"
790        defaultHolders="config_systemAmbientAudioIntelligence"
791        exclusive="true"
792        minSdkVersion="31"
793        static="true"
794        systemOnly="true"
795        visible="false">
796        <permissions>
797            <permission-set name="notifications" />
798            <permission name="android.permission.CAPTURE_AUDIO_OUTPUT" />
799            <permission name="android.permission.CAPTURE_MEDIA_OUTPUT" />
800            <permission name="android.permission.CAPTURE_VOICE_COMMUNICATION_OUTPUT" />
801            <permission name="android.permission.MODIFY_AUDIO_ROUTING" />
802            <permission name="android.permission.RECORD_AUDIO" />
803            <permission name="android.permission.CAPTURE_AUDIO_HOTWORD" />
804            <permission name="android.permission.EXEMPT_FROM_AUDIO_RECORD_RESTRICTIONS" />
805            <permission name="android.permission.MANAGE_SOUND_TRIGGER" />
806            <permission name="android.permission.LOCATION_HARDWARE" />
807            <permission name="android.permission.MANAGE_MUSIC_RECOGNITION" />
808            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
809            <permission name="android.permission.READ_PHONE_STATE" minSdkVersion="33" />
810        </permissions>
811    </role>
812
813    <!---
814      ~ A role for the system package that provides on-device intelligent processor for audio.
815      ~
816      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
817      ~ section "9.8.6 Content Capture".
818      ~ Example link for Android 11:
819      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
820      ~
821      ~ In addition, packages MUST NOT:
822      ~ - Request INTERNET permission. Instead packages MUST access the internet through
823      ~   well-defined APIs in an open source project.
824      ~ - Perform direct binds to other applications, except the following system packages:
825      ~   - Bluetooth
826      ~   - Contacts
827      ~   - Media
828      ~   - Telephony
829      ~   - System UI
830      ~   - Component providing internet APIs (see above)
831      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
832      ~   system config.
833      -->
834    <role
835        name="android.app.role.SYSTEM_AUDIO_INTELLIGENCE"
836        defaultHolders="config_systemAudioIntelligence"
837        exclusive="true"
838        minSdkVersion="31"
839        static="true"
840        systemOnly="true"
841        visible="false">
842        <permissions>
843            <permission-set name="notifications" />
844            <permission name="android.permission.CAPTURE_AUDIO_OUTPUT" />
845            <permission name="android.permission.CAPTURE_MEDIA_OUTPUT" />
846            <permission name="android.permission.CAPTURE_VOICE_COMMUNICATION_OUTPUT" />
847            <permission name="android.permission.CONTROL_INCALL_EXPERIENCE" />
848            <permission name="android.permission.MODIFY_AUDIO_ROUTING" />
849            <permission name="android.permission.MODIFY_PHONE_STATE" />
850            <permission name="android.permission.READ_CALL_LOG" minSdkVersion="33" />
851            <permission name="android.permission.READ_PHONE_STATE" minSdkVersion="33" />
852            <permission name="android.permission.RECORD_AUDIO" />
853            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
854            <permission name="android.permission.SET_SYSTEM_AUDIO_CAPTION" minSdkVersion="33" />
855        </permissions>
856    </role>
857
858    <!---
859      ~ A role for the system package that provides on-device intelligent processor for
860      ~ notifications.
861      ~
862      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
863      ~ section "9.8.6 Content Capture".
864      ~ Example link for Android 11:
865      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
866      ~
867      ~ In addition, packages MUST NOT:
868      ~ - Request INTERNET permission. Instead packages MUST access the internet through
869      ~   well-defined APIs in an open source project.
870      ~ - Perform direct binds to other applications, except the following system packages:
871      ~   - Bluetooth
872      ~   - Contacts
873      ~   - Media
874      ~   - Telephony
875      ~   - System UI
876      ~   - Component providing internet APIs (see above)
877      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
878      ~   system config.
879      -->
880    <role
881        name="android.app.role.SYSTEM_NOTIFICATION_INTELLIGENCE"
882        defaultHolders="config_systemNotificationIntelligence"
883        exclusive="true"
884        minSdkVersion="31"
885        static="true"
886        systemOnly="true"
887        visible="false">
888        <permissions>
889            <permission-set name="notifications" />
890            <permission name="android.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE" />
891            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
892        </permissions>
893    </role>
894
895    <!---
896      ~ A role for the system package that provides on-device intelligent processor for text.
897      ~
898      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
899      ~ section "9.8.6 Content Capture".
900      ~ Example link for Android 11:
901      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
902      ~
903      ~ In addition, packages MUST NOT:
904      ~ - Request INTERNET permission. Instead packages MUST access the internet through
905      ~   well-defined APIs in an open source project.
906      ~ - Perform direct binds to other applications, except the following system packages:
907      ~   - Bluetooth
908      ~   - Contacts
909      ~   - Media
910      ~   - Telephony
911      ~   - System UI
912      ~   - Component providing internet APIs (see above)
913      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
914      ~   system config.
915      -->
916    <role
917        name="android.app.role.SYSTEM_TEXT_INTELLIGENCE"
918        defaultHolders="config_systemTextIntelligence"
919        exclusive="true"
920        minSdkVersion="31"
921        static="true"
922        systemOnly="true"
923        visible="false">
924        <permissions>
925            <permission-set name="notifications" />
926            <permission name="android.permission.ACCESS_BACKGROUND_LOCATION" minSdkVersion="33" />
927            <permission name="android.permission.ACCESS_COARSE_LOCATION" minSdkVersion="33" />
928            <permission name="android.permission.MANAGE_UI_TRANSLATION" />
929            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
930            <permission name="android.permission.READ_CLIPBOARD_IN_BACKGROUND" minSdkVersion="33" />
931        </permissions>
932    </role>
933
934    <!---
935      ~ A role for the system package that provides on-device intelligent processor for visual
936      ~ features.
937      ~
938      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
939      ~ section "9.8.6 Content Capture".
940      ~ Example link for Android 11:
941      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
942      ~
943      ~ In addition, packages MUST NOT:
944      ~ - Request INTERNET permission. Instead packages MUST access the internet through
945      ~   well-defined APIs in an open source project.
946      ~ - Perform direct binds to other applications, except the following system packages:
947      ~   - Bluetooth
948      ~   - Contacts
949      ~   - Media
950      ~   - Telephony
951      ~   - System UI
952      ~   - Component providing internet APIs (see above)
953      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
954      ~   system config.
955      -->
956    <role
957        name="android.app.role.SYSTEM_VISUAL_INTELLIGENCE"
958        defaultHolders="config_systemVisualIntelligence"
959        exclusive="true"
960        minSdkVersion="31"
961        static="true"
962        systemOnly="true"
963        visible="false">
964        <permissions>
965            <permission-set name="notifications" />
966            <permission name="android.permission.CAMERA" />
967            <permission name="android.permission.SYSTEM_CAMERA" />
968            <permission name="android.permission.UPDATE_DEVICE_STATS" />
969            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
970        </permissions>
971    </role>
972
973    <!---
974      ~ A role for the system package that is allowed to manage documents (e.g., attach files etc.)
975      ~ on the device.
976      ~ A package holding this role must comply with the requirements outlined in the Android CDD
977      ~ section "2.2.3. Software" under heading "3.2.3.1/H-0-1".
978      ~ Example link for Android 11:
979      ~ https://source.android.com/compatibility/11/android-11-cdd#2_2_3_software
980    -->
981    <role
982        name="android.app.role.SYSTEM_DOCUMENT_MANAGER"
983        behavior="DocumentManagerRoleBehavior"
984        exclusive="true"
985        minSdkVersion="33"
986        static="true"
987        systemOnly="true"
988        visible="false">
989        <required-components>
990            <!--- Flag value is MATCH_DISABLED_COMPONENTS-->
991            <activity queryFlags="0x00000200">
992                <intent-filter>
993                    <action name="android.intent.action.OPEN_DOCUMENT" />
994                    <category name="android.intent.category.OPENABLE" />
995                    <data mimeType="*/*" />
996                </intent-filter>
997            </activity>
998        </required-components>
999        <permissions>
1000            <permission-set name="notifications" />
1001            <permission name="android.permission.MANAGE_DOCUMENTS" />
1002            <permission name="android.permission.CACHE_CONTENT" />
1003            <permission name="android.permission.REMOVE_TASKS" />
1004        </permissions>
1005    </role>
1006
1007    <!---
1008      ~ A role for the system package that serves as the activity recognizer on the device.
1009      ~ This is the application that provides the data behind the activity recognition
1010      ~ runtime permission.
1011      -->
1012    <role
1013        name="android.app.role.SYSTEM_ACTIVITY_RECOGNIZER"
1014        allowBypassingQualification="true"
1015        defaultHolders="config_systemActivityRecognizer"
1016        exclusive="false"
1017        static="true"
1018        systemOnly="true"
1019        visible="false">
1020        <required-components>
1021            <service>
1022                <intent-filter>
1023                    <action name="android.intent.action.ACTIVITY_RECOGNIZER" />
1024                </intent-filter>
1025            </service>
1026        </required-components>
1027    </role>
1028
1029    <!---
1030      ~ A role for the system UI package.
1031      -->
1032    <role
1033        name="android.app.role.SYSTEM_UI"
1034        behavior="SystemUiRoleBehavior"
1035        defaultHolders="config_systemUi"
1036        exclusive="true"
1037        minSdkVersion="31"
1038        static="true"
1039        systemOnly="true"
1040        visible="false">
1041        <permissions>
1042            <permission-set name="notifications" />
1043            <permission name="android.permission.MANAGE_SENSOR_PRIVACY" />
1044            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
1045            <permission name="android.permission.ACCESS_AMBIENT_CONTEXT_EVENT" minSdkVersion="33"/>
1046        </permissions>
1047    </role>
1048
1049    <!---
1050      ~ A role for the package responsible for interacting with a TV remote.
1051      -->
1052    <role
1053        name="android.app.role.SYSTEM_TELEVISION_REMOTE_SERVICE"
1054        behavior="TelevisionRoleBehavior"
1055        defaultHolders="config_systemTelevisionRemoteService"
1056        exclusive="true"
1057        minSdkVersion="31"
1058        static="true"
1059        systemOnly="true"
1060        visible="false">
1061        <permissions>
1062            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
1063        </permissions>
1064    </role>
1065
1066    <!---
1067      ~ A role for the companion device package that create and manage connections to connected
1068      ~ devices and perform app streaming to the devices.
1069      -->
1070    <role
1071        name="android.app.role.COMPANION_DEVICE_APP_STREAMING"
1072        allowBypassingQualification="true"
1073        behavior="CompanionDeviceAppStreamingRoleBehavior"
1074        description="@string/role_app_streaming_description"
1075        exclusive="false"
1076        minSdkVersion="33"
1077        systemOnly="true"
1078        visible="false">
1079        <permissions>
1080            <permission-set name="notifications" />
1081            <!-- For capturing audio from the app on the device. -->
1082            <permission name="android.permission.RECORD_AUDIO" />
1083            <permission name="android.permission.CREATE_VIRTUAL_DEVICE" minSdkVersion="33" />
1084            <permission name="android.permission.ADD_TRUSTED_DISPLAY" minSdkVersion="33" />
1085            <permission name="android.permission.ADD_ALWAYS_UNLOCKED_DISPLAY" minSdkVersion="33" />
1086
1087            <!--TODO(b/201605314) For calling Telecom framework API for audio streaming-->
1088            <!--<permission name="android.permission.PROVIDE_CALL_ENDPOINTS" />-->
1089       </permissions>
1090    </role>
1091
1092    <!---
1093      ~ A role for the companion device package that allows connected computers to mirror
1094      ~ notifications and access photos and media from the phone.
1095      -->
1096    <role
1097        name="android.app.role.COMPANION_DEVICE_COMPUTER"
1098        allowBypassingQualification="true"
1099        behavior="CompanionDeviceComputerRoleBehavior"
1100        description="@string/role_companion_device_computer_description"
1101        exclusive="false"
1102        minSdkVersion="33"
1103        systemOnly="true"
1104        visible="false">
1105        <permissions>
1106            <permission-set name="notifications" />
1107            <permission-set name="storage" />
1108       </permissions>
1109    </role>
1110
1111     <role
1112        name="android.app.role.SYSTEM_SUPERVISION"
1113        defaultHolders="config_systemSupervision"
1114        exclusive="true"
1115        minSdkVersion="33"
1116        static="true"
1117        systemOnly="true"
1118        visible="false" >
1119        <permissions>
1120            <permission name="android.permission.ACCESS_INSTANT_APPS"/>
1121            <permission name="android.permission.SUSPEND_APPS"/>
1122            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY"/>
1123        </permissions>
1124    </role>
1125
1126    <!---
1127      ~ A role for the package responsible for constructing managed device experiences,
1128      ~ including during provisioning.
1129      -->
1130    <role
1131        name="android.app.role.DEVICE_POLICY_MANAGEMENT"
1132        behavior="DevicePolicyManagementRoleBehavior"
1133        defaultHolders="config_devicePolicyManagement"
1134        exclusive="true"
1135        minSdkVersion="33"
1136        static="true"
1137        systemOnly="false"
1138        visible="false">
1139        <required-components>
1140            <activity permission="android.permission.LAUNCH_DEVICE_MANAGER_SETUP">
1141                <intent-filter>
1142                    <action name="android.app.action.ROLE_HOLDER_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE" />
1143                </intent-filter>
1144            </activity>
1145            <activity permission="android.permission.LAUNCH_DEVICE_MANAGER_SETUP">
1146                <intent-filter>
1147                    <action name="android.app.action.ROLE_HOLDER_PROVISION_MANAGED_PROFILE" />
1148                </intent-filter>
1149            </activity>
1150            <activity permission="android.permission.LAUNCH_DEVICE_MANAGER_SETUP">
1151                <intent-filter>
1152                    <action name="android.app.action.ROLE_HOLDER_PROVISION_FINALIZATION" />
1153                </intent-filter>
1154            </activity>
1155        </required-components>
1156        <permissions>
1157            <permission-set name="notifications" />
1158            <permission name="android.permission.BIND_DEVICE_ADMIN" />
1159            <permission name="android.permission.MANAGE_DEVICE_ADMINS" />
1160            <permission name="android.permission.NETWORK_MANAGED_PROVISIONING" />
1161            <permission name="android.permission.PEERS_MAC_ADDRESS" />
1162            <permission name="android.permission.USE_COLORIZED_NOTIFICATIONS" />
1163            <permission name="android.permission.MASTER_CLEAR" />
1164            <permission name="android.permission.WRITE_SECURE_SETTINGS" />
1165            <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
1166            <permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
1167            <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" />
1168            <permission name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" />
1169            <permission name="android.permission.INTERACT_ACROSS_USERS" />
1170            <permission name="android.permission.INTERACT_ACROSS_USERS_FULL" />
1171            <permission name="com.android.permission.INSTALL_EXISTING_PACKAGES" />
1172            <permission name="android.permission.DELETE_PACKAGES" />
1173            <permission name="android.permission.ACCESS_PDB_STATE" />
1174            <permission name="android.permission.MARK_DEVICE_ORGANIZATION_OWNED" />
1175            <permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
1176            <permission name="android.permission.SET_TIME" />
1177            <permission name="android.permission.SET_TIME_ZONE" />
1178            <permission name="android.permission.CRYPT_KEEPER" />
1179            <permission name="android.permission.SHUTDOWN" />
1180            <permission name="android.permission.PERFORM_CDMA_PROVISIONING" />
1181            <permission name="android.permission.CONFIGURE_INTERACT_ACROSS_PROFILES" />
1182            <permission name="android.permission.WRITE_SETTINGS" />
1183            <permission name="android.permission.CHANGE_CONFIGURATION" />
1184            <permission name="android.permission.LAUNCH_DEVICE_MANAGER_SETUP" />
1185            <permission name="android.permission.INSTALL_DPC_PACKAGES" />
1186            <permission name="android.permission.QUERY_USERS" />
1187            <permission name="android.permission.UPDATE_DEVICE_MANAGEMENT_RESOURCES" />
1188            <permission name="android.permission.QUERY_ADMIN_POLICY" />
1189            <permission name="android.permission.TRIGGER_LOST_MODE" />
1190        </permissions>
1191    </role>
1192
1193    <role
1194        name="android.app.role.SYSTEM_APP_PROTECTION_SERVICE"
1195        defaultHolders="config_systemAppProtectionService"
1196        exclusive="true"
1197        minSdkVersion="33"
1198        static="true"
1199        systemOnly="true"
1200        visible="false">
1201        <permissions>
1202            <permission-set name="notifications" />
1203            <permission name="android.permission.GET_HISTORICAL_APP_OPS_STATS" />
1204        </permissions>
1205    </role>
1206
1207    <!---
1208      ~ A role for the system package that handles syncing calendar from another device on
1209      ~ Automotive.
1210      -->
1211    <role
1212        name="android.app.role.SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER"
1213        behavior="AutomotiveRoleBehavior"
1214        defaultHolders="config_systemAutomotiveCalendarSyncManager"
1215        exclusive="true"
1216        minSdkVersion="33"
1217        static="true"
1218        systemOnly="true"
1219        visible="false">
1220        <permissions>
1221            <permission name="android.permission.READ_CALENDAR" />
1222            <permission name="android.permission.WRITE_CALENDAR" />
1223        </permissions>
1224    </role>
1225
1226    <!---
1227      ~ A role for the package that handles navigation on the Automotive.
1228      ~ This is the application that provides point-of-interest search and
1229      ~ turn-by-turn navigation guidance.
1230      -->
1231    <role
1232        name="android.app.role.AUTOMOTIVE_NAVIGATION"
1233        behavior="AutomotiveRoleBehavior"
1234        defaultHolders="config_defaultAutomotiveNavigation"
1235        description="@string/role_automotive_navigation_description"
1236        exclusive="true"
1237        label="@string/role_automotive_navigation_label"
1238        minSdkVersion="33"
1239        overrideUserWhenGranting="true"
1240        requestDescription="@string/role_automotive_navigation_request_description"
1241        requestTitle="@string/role_automotive_navigation_request_title"
1242        shortLabel="@string/role_automotive_navigation_short_label">
1243        <required-components>
1244            <activity>
1245                <intent-filter>
1246                    <action name="android.intent.action.MAIN" />
1247                    <category name="android.intent.category.APP_MAPS" />
1248                </intent-filter>
1249            </activity>
1250            <activity>
1251                <intent-filter>
1252                    <action name="android.intent.action.NAVIGATE" />
1253                    <data scheme="geo" />
1254                </intent-filter>
1255            </activity>
1256            <activity>
1257                <intent-filter>
1258                    <action name="android.intent.action.MAIN" />
1259                    <category name="android.car.cluster.NAVIGATION" />
1260                </intent-filter>
1261            </activity>
1262        </required-components>
1263        <preferred-activities>
1264            <preferred-activity>
1265                <activity>
1266                    <intent-filter>
1267                        <action name="android.intent.action.MAIN" />
1268                        <category name="android.intent.category.APP_MAPS" />
1269                    </intent-filter>
1270                </activity>
1271                <intent-filter>
1272                    <action name="android.intent.action.MAIN" />
1273                    <category name="android.intent.category.APP_MAPS" />
1274                </intent-filter>
1275            </preferred-activity>
1276            <preferred-activity>
1277                <activity>
1278                    <intent-filter>
1279                        <action name="android.intent.action.NAVIGATE" />
1280                        <data scheme="geo" />
1281                    </intent-filter>
1282                </activity>
1283                <intent-filter>
1284                    <action name="android.intent.action.NAVIGATE" />
1285                    <data scheme="geo" />
1286                </intent-filter>
1287            </preferred-activity>
1288            <preferred-activity>
1289                <activity>
1290                    <intent-filter>
1291                        <action name="android.intent.action.MAIN" />
1292                        <category name="android.car.cluster.NAVIGATION" />
1293                    </intent-filter>
1294                </activity>
1295                <intent-filter>
1296                    <action name="android.intent.action.MAIN" />
1297                    <category name="android.car.cluster.NAVIGATION" />
1298                </intent-filter>
1299            </preferred-activity>
1300        </preferred-activities>
1301    </role>
1302
1303    <!---
1304      ~ A role for the package that handles AI features for the settings app
1305      -->
1306    <role
1307        name="android.app.role.SYSTEM_SETTINGS_INTELLIGENCE"
1308        defaultHolders="config_systemSettingsIntelligence"
1309        exclusive="true"
1310        minSdkVersion="33"
1311        static="true"
1312        systemOnly="true"
1313        visible="false">
1314        <permissions>
1315            <permission-set name="notifications" />
1316        </permissions>
1317    </role>
1318
1319    <!---
1320      ~ A role for the package that handles Bluetooth for the device
1321      -->
1322    <role
1323        name="android.app.role.SYSTEM_BLUETOOTH_STACK"
1324        defaultHolders="config_systemBluetoothStack"
1325        exclusive="true"
1326        minSdkVersion="33"
1327        static="true"
1328        systemOnly="true"
1329        visible="false">
1330        <permissions>
1331            <permission name="android.permission.NETWORK_FACTORY" />
1332            <permission name="android.permission.BLUETOOTH_MAP" />
1333            <permission name="android.permission.BLUETOOTH_STACK" />
1334            <permission name="android.permission.NET_ADMIN" />
1335            <permission name="android.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH" />
1336            <permission name="android.permission.MANAGE_APP_OPS_MODES" />
1337            <permission name="android.permission.MANAGE_COMPANION_DEVICES" />
1338            <permission name="android.permission.QUERY_AUDIO_STATE" />
1339            <permission name="android.permission.DEVICE_POWER" />
1340            <permission name="android.permission.NET_TUNNELING" />
1341        </permissions>
1342    </role>
1343</roles>
1344