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 name="android.permission.READ_MEDIA_VISUAL_USER_SELECTED" minSdkVersion="34" />
82    </permission-set>
83
84    <permission-set name="nearby_devices">
85        <permission name="android.permission.BLUETOOTH_ADVERTISE" minSdkVersion="31" />
86        <permission name="android.permission.BLUETOOTH_CONNECT" minSdkVersion="31" />
87        <permission name="android.permission.BLUETOOTH_SCAN" minSdkVersion="31" />
88        <permission name="android.permission.NEARBY_WIFI_DEVICES" minSdkVersion="33" />
89    </permission-set>
90
91    <permission-set name="notifications">
92        <permission name="android.permission.POST_NOTIFICATIONS" minSdkVersion="33" />
93    </permission-set>
94
95    <role
96        name="android.app.role.ASSISTANT"
97        behavior="AssistantRoleBehavior"
98        defaultHolders="config_defaultAssistant"
99        description="@string/role_assistant_description"
100        exclusive="true"
101        fallBackToDefaultHolder="true"
102        showNone="true"
103        label="@string/role_assistant_label"
104        overrideUserWhenGranting="true"
105        requestable="false"
106        shortLabel="@string/role_assistant_short_label"
107        uiBehavior="AssistantRoleUiBehavior">
108        <required-components>
109            <!-- Qualified components are determined int AssistantRoleBehavior. This comment here is
110                 ignored and represents just a rough description
111
112            <any-of>
113                <service permission="android.permission.BIND_VOICE_INTERACTION"
114                         supportsAssist="true">
115                    <intent-filter>
116                        <action name="android.service.voice.VoiceInteractionService" />
117                    </intent-filter>
118                    <meta-data name="android.voice_interaction"
119                               optional="false">
120                        required tag in metadata xml: sessionService
121                        required tag in metadata xml: recognitionService
122                        required tag in metadata xml: supportsAssist = true
123                    </meta-data>
124                </service>
125                <activity>
126                    <intent-filter>
127                        <action name="android.intent.action.ASSIST" />
128                    </intent-filter>
129                </activity>
130            </ any-of>
131
132            -->
133        </required-components>
134        <permissions>
135            <permission-set name="sms" />
136            <permission name="android.permission.READ_CALL_LOG" />
137            <permission name="android.permission.ACCESS_BLOBS_ACROSS_USERS" minSdkVersion="31" />
138            <permission name="android.permission.READ_ASSISTANT_APP_SEARCH_DATA"
139                minSdkVersion="33"/>
140            <permission name="android.permission.SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE"
141                minSdkVersion="33" />
142            <permission name="android.permission.EXECUTE_APP_ACTION"
143                minSdkVersion="34" />
144            <permission name="android.permission.MANAGE_CONTENT_SUGGESTIONS"
145                minSdkVersion="35" optionalMinSdkVersion="34" />
146            <permission name="android.permission.EMBED_ANY_APP_IN_UNTRUSTED_MODE"
147                minSdkVersion="35" />
148        </permissions>
149        <app-op-permissions>
150            <app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" />
151        </app-op-permissions>
152    </role>
153
154    <!---
155      ~ @see com.android.settings.applications.defaultapps.DefaultBrowserPreferenceController
156      ~ @see com.android.settings.applications.defaultapps.DefaultBrowserPicker
157      ~ @see com.android.server.pm.PackageManagerService.resolveAllBrowserApps(int)
158      ~ @see com.android.server.pm.PackageManagerService.setDefaultBrowserPackageName(String, int)
159      ~ @see com.android.server.pm.permission.DefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultBrowser(String, int)
160      -->
161    <role
162        name="android.app.role.BROWSER"
163        behavior="BrowserRoleBehavior"
164        defaultHolders="config_defaultBrowser"
165        description="@string/role_browser_description"
166        exclusive="true"
167        label="@string/role_browser_label"
168        overrideUserWhenGranting="true"
169        requestDescription="@string/role_browser_request_description"
170        requestTitle="@string/role_browser_request_title"
171        shortLabel="@string/role_browser_short_label">
172        <!--
173          ~ Required components matching is handled in BrowserRoleBehavior because it needs the
174          ~ PackageManager.MATCH_ALL flag and other manual filtering, which cannot fit in our
175          ~ current mechanism easily.
176          -->
177        <!--
178        <required-components>
179            <activity>
180                <intent-filter>
181                    <action name="android.intent.action.VIEW" />
182                    <category name="android.intent.category.BROWSABLE" />
183                    <data scheme="http" />
184                </intent-filter>
185            </activity>
186        </required-components>
187        -->
188        <!--
189          ~ Not need to set preferred activity because PackageManager handles browser intents
190          ~ specially.
191          -->
192        <permissions>
193            <permission name="android.permission.PROVIDE_OWN_AUTOFILL_SUGGESTIONS" minSdkVersion="34" />
194        </permissions>
195    </role>
196
197    <!--
198      ~ @see com.android.settings.applications.defaultapps.DefaultPhonePreferenceController
199      ~ @see com.android.settings.applications.defaultapps.DefaultPhonePicker
200      ~ @see android.telecom.DefaultDialerManager
201      ~ @see com.android.server.pm.permission.DefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultDialerApp(String, int)
202      ~ @see com.android.server.pm.Settings.setDefaultDialerPackageNameLPw(String, int)
203      -->
204    <role
205        name="android.app.role.DIALER"
206        behavior="DialerRoleBehavior"
207        defaultHolders="config_defaultDialer"
208        description="@string/role_dialer_description"
209        exclusive="true"
210        fallBackToDefaultHolder="true"
211        label="@string/role_dialer_label"
212        overrideUserWhenGranting="true"
213        requestDescription="@string/role_dialer_request_description"
214        requestTitle="@string/role_dialer_request_title"
215        searchKeywords="@string/role_dialer_search_keywords"
216        shortLabel="@string/role_dialer_short_label"
217        uiBehavior="DialerRoleUiBehavior">
218        <required-components>
219            <activity>
220                <intent-filter>
221                    <action name="android.intent.action.DIAL" />
222                </intent-filter>
223            </activity>
224            <activity>
225                <intent-filter>
226                    <action name="android.intent.action.DIAL" />
227                    <data scheme="tel" />
228                </intent-filter>
229            </activity>
230            <service minTargetSdkVersion="33" permission="android.permission.BIND_INCALL_SERVICE">
231                <meta-data name="android.telecom.IN_CALL_SERVICE_UI" value="true" />
232                <meta-data
233                    name="android.telecom.IN_CALL_SERVICE_CAR_MODE_UI"
234                    value="true"
235                    prohibited="true" />
236                <intent-filter>
237                    <action name="android.telecom.InCallService" />
238                </intent-filter>
239            </service>
240        </required-components>
241        <permissions>
242            <permission-set name="phone" />
243            <permission-set name="contacts" />
244            <permission-set name="sms" />
245            <permission-set name="microphone" />
246            <permission-set name="camera" />
247            <permission-set name="notifications" />
248        </permissions>
249        <app-op-permissions>
250            <app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" />
251        </app-op-permissions>
252        <app-ops>
253            <!--
254              ~ @see com.android.settings.applications.defaultapps.DefaultPhonePicker#setDefaultKey(String)
255              ~ @see com.android.settings.fuelgauge.BatteryUtils#setForceAppStandby(int, String, int)
256              -->
257            <app-op name="android:run_in_background" maxTargetSdkVersion="25" mode="allowed" />
258            <app-op name="android:run_any_in_background" mode="allowed" />
259        </app-ops>
260        <preferred-activities>
261            <preferred-activity>
262                <activity>
263                    <intent-filter>
264                        <action name="android.intent.action.DIAL" />
265                    </intent-filter>
266                </activity>
267                <intent-filter>
268                    <action name="android.intent.action.DIAL" />
269                </intent-filter>
270            </preferred-activity>
271            <preferred-activity>
272                <activity>
273                    <intent-filter>
274                        <action name="android.intent.action.DIAL" />
275                        <data scheme="tel" />
276                    </intent-filter>
277                </activity>
278                <intent-filter>
279                    <action name="android.intent.action.DIAL" />
280                    <data scheme="tel" />
281                </intent-filter>
282            </preferred-activity>
283        </preferred-activities>
284    </role>
285
286    <!--
287      ~ @see com.android.settings.applications.defaultapps.DefaultSmsPreferenceController
288      ~ @see com.android.settings.applications.defaultapps.DefaultSmsPicker
289      ~ @see com.android.internal.telephony.SmsApplication
290      ~ @see com.android.server.pm.permission.DefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultSmsApp(String, int)
291      -->
292    <role
293        name="android.app.role.SMS"
294        behavior="SmsRoleBehavior"
295        defaultHolders="config_defaultSms"
296        description="@string/role_sms_description"
297        exclusive="true"
298        label="@string/role_sms_label"
299        overrideUserWhenGranting="true"
300        requestDescription="@string/role_sms_request_description"
301        requestTitle="@string/role_sms_request_title"
302        searchKeywords="@string/role_sms_search_keywords"
303        shortLabel="@string/role_sms_short_label"
304        uiBehavior="SmsRoleUiBehavior">
305        <required-components>
306            <receiver permission="android.permission.BROADCAST_SMS">
307                <intent-filter>
308                    <action name="android.provider.Telephony.SMS_DELIVER" />
309                </intent-filter>
310            </receiver>
311            <receiver permission="android.permission.BROADCAST_WAP_PUSH">
312                <intent-filter>
313                    <action name="android.provider.Telephony.WAP_PUSH_DELIVER" />
314                    <data mimeType="application/vnd.wap.mms-message" />
315                </intent-filter>
316            </receiver>
317            <service permission="android.permission.SEND_RESPOND_VIA_MESSAGE">
318                <intent-filter>
319                    <action name="android.intent.action.RESPOND_VIA_MESSAGE" />
320                    <data scheme="smsto" />
321                </intent-filter>
322            </service>
323            <activity>
324                <intent-filter>
325                    <action name="android.intent.action.SENDTO" />
326                    <data scheme="smsto" />
327                </intent-filter>
328            </activity>
329        </required-components>
330        <permissions>
331            <permission-set name="phone" />
332            <permission-set name="contacts" />
333            <permission-set name="sms" />
334            <permission-set name="storage" />
335            <permission-set name="microphone" />
336            <permission-set name="camera" />
337            <permission-set name="notifications" />
338            <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" minSdkVersion="31" />
339        </permissions>
340        <app-ops>
341            <app-op name="android:write_sms" mode="allowed" />
342            <!--
343              ~ @see com.android.settings.applications.defaultapps.DefaultSmsPicker#setDefaultKey(String)
344              ~ @see com.android.settings.fuelgauge.BatteryUtils#setForceAppStandby(int, String, int)
345              -->
346            <app-op name="android:run_in_background" maxTargetSdkVersion="25" mode="allowed" />
347            <app-op name="android:run_any_in_background" mode="allowed" />
348            <app-op name="android:read_device_identifiers" mode="allowed" />
349        </app-ops>
350        <preferred-activities>
351            <preferred-activity>
352                <activity>
353                    <intent-filter>
354                        <action name="android.intent.action.SENDTO" />
355                        <data scheme="smsto" />
356                    </intent-filter>
357                </activity>
358                <intent-filter>
359                    <action name="android.intent.action.SENDTO" />
360                    <data scheme="sms" />
361                </intent-filter>
362                <intent-filter>
363                    <action name="android.intent.action.SENDTO" />
364                    <data scheme="smsto" />
365                </intent-filter>
366                <intent-filter>
367                    <action name="android.intent.action.SENDTO" />
368                    <data scheme="mms" />
369                </intent-filter>
370                <intent-filter>
371                    <action name="android.intent.action.SENDTO" />
372                    <data scheme="mmsto" />
373                </intent-filter>
374            </preferred-activity>
375        </preferred-activities>
376    </role>
377
378    <!---
379      ~ @see com.android.settings.applications.defaultapps.DefaultEmergencyPreferenceController
380      ~ @see com.android.settings.applications.defaultapps.DefaultEmergencyPicker
381      ~ @see com.android.phone.EmergencyAssistanceHelper
382      -->
383    <role
384        name="android.app.role.EMERGENCY"
385        behavior="EmergencyRoleBehavior"
386        description="@string/role_emergency_description"
387        exclusive="true"
388        label="@string/role_emergency_label"
389        overrideUserWhenGranting="true"
390        requestDescription="@string/role_emergency_request_description"
391        requestTitle="@string/role_emergency_request_title"
392        searchKeywords="@string/role_emergency_search_keywords"
393        shortLabel="@string/role_emergency_short_label"
394        systemOnly="true"
395        uiBehavior="EmergencyRoleUiBehavior">
396        <required-components>
397            <activity>
398                <intent-filter>
399                    <action name="android.telephony.action.EMERGENCY_ASSISTANCE" />
400                </intent-filter>
401            </activity>
402        </required-components>
403        <permissions>
404            <permission-set name="notifications" />
405            <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" minSdkVersion="31" />
406            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" minSdkVersion="31" />
407        </permissions>
408    </role>
409
410    <!---
411      ~ @see com.android.settings.applications.defaultapps.DefaultHomePreferenceController
412      ~ @see com.android.settings.applications.defaultapps.DefaultHomePicker
413      ~ @see com.android.server.pm.PackageManagerService#setHomeActivity(ComponentName, int)
414      -->
415    <role
416        name="android.app.role.HOME"
417        behavior="HomeRoleBehavior"
418        description="@string/role_home_description"
419        exclusive="true"
420        label="@string/role_home_label"
421        overrideUserWhenGranting="true"
422        requestDescription="@string/role_home_request_description"
423        requestTitle="@string/role_home_request_title"
424        searchKeywords="@string/role_home_search_keywords"
425        shortLabel="@string/role_home_short_label"
426        uiBehavior="HomeRoleUiBehavior">
427        <!-- Also used by HomeRoleBehavior.getFallbackHolder(). -->
428        <required-components>
429            <activity>
430                <intent-filter>
431                    <action name="android.intent.action.MAIN" />
432                    <category name="android.intent.category.HOME" />
433                </intent-filter>
434            </activity>
435        </required-components>
436        <preferred-activities>
437            <preferred-activity>
438                <activity>
439                    <intent-filter>
440                        <action name="android.intent.action.MAIN" />
441                        <category name="android.intent.category.HOME" />
442                    </intent-filter>
443                </activity>
444                <intent-filter>
445                    <action name="android.intent.action.MAIN" />
446                    <category name="android.intent.category.HOME" />
447                </intent-filter>
448            </preferred-activity>
449        </preferred-activities>
450        <permissions>
451            <permission name="android.permission.READ_HOME_APP_SEARCH_DATA" minSdkVersion="33" />
452            <permission name="android.permission.ALLOW_SLIPPERY_TOUCHES" minSdkVersion="33" optionalMinSdkVersion="30" />
453            <permission name="android.permission.RECEIVE_SENSITIVE_NOTIFICATIONS" minSdkVersion="35" />
454        </permissions>
455        <app-ops>
456            <app-op name="android:receive_sensitive_notifications" mode="allowed" minSdkVersion="35"/>
457        </app-ops>
458    </role>
459
460    <!--- @see android.telecom.CallRedirectionService -->
461    <role
462        name="android.app.role.CALL_REDIRECTION"
463        defaultHolders="config_defaultCallRedirection"
464        description="@string/role_call_redirection_description"
465        exclusive="true"
466        label="@string/role_call_redirection_label"
467        overrideUserWhenGranting="true"
468        requestDescription="@string/role_call_redirection_request_description"
469        requestTitle="@string/role_call_redirection_request_title"
470        shortLabel="@string/role_call_redirection_short_label"
471        showNone="true">
472        <required-components>
473            <service permission="android.permission.BIND_CALL_REDIRECTION_SERVICE">
474                <intent-filter>
475                    <action name="android.telecom.CallRedirectionService" />
476                </intent-filter>
477            </service>
478        </required-components>
479    </role>
480
481    <!--- @see android.telecom.CallScreeningService -->
482    <role
483        name="android.app.role.CALL_SCREENING"
484        defaultHolders="config_defaultCallScreening"
485        description="@string/role_call_screening_description"
486        exclusive="true"
487        label="@string/role_call_screening_label"
488        overrideUserWhenGranting="true"
489        requestDescription="@string/role_call_screening_request_description"
490        requestTitle="@string/role_call_screening_request_title"
491        shortLabel="@string/role_call_screening_short_label"
492        showNone="true">
493        <required-components>
494            <service permission="android.permission.BIND_SCREENING_SERVICE">
495                <intent-filter>
496                    <action name="android.telecom.CallScreeningService" />
497                </intent-filter>
498            </service>
499        </required-components>
500        <permissions>
501            <permission-set name="notifications" />
502        </permissions>
503        <app-op-permissions>
504            <app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" />
505        </app-op-permissions>
506    </role>
507
508    <role
509        name="android.app.role.SYSTEM_GALLERY"
510        defaultHolders="config_systemGallery"
511        exclusive="true"
512        static="true"
513        systemOnly="true"
514        visible="false">
515        <permissions>
516            <permission-set name="storage" />
517            <permission name="android.permission.ACCESS_MEDIA_LOCATION" />
518            <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" minSdkVersion="31" />
519        </permissions>
520        <app-ops>
521            <app-op name="android:write_media_images" mode="allowed" />
522            <app-op name="android:write_media_video" mode="allowed" />
523        </app-ops>
524    </role>
525
526    <role
527        name="android.app.role.SYSTEM_AUTOMOTIVE_CLUSTER"
528        behavior="v31.AutomotiveRoleBehavior"
529        defaultHolders="config_systemAutomotiveCluster"
530        exclusive="true"
531        minSdkVersion="31"
532        static="true"
533        systemOnly="true"
534        visible="false">
535        <permissions>
536            <permission name="android.permission.ANSWER_PHONE_CALLS" />
537            <permission name="android.permission.READ_CALL_LOG" />
538            <permission name="android.permission.READ_CONTACTS" />
539            <permission name="android.car.permission.CAR_ENERGY"/>
540        </permissions>
541    </role>
542
543    <role
544        name="android.app.role.COMPANION_DEVICE_WATCH"
545        behavior="v31.CompanionDeviceWatchRoleBehavior"
546        description="@string/role_watch_description"
547        exclusive="false"
548        minSdkVersion="31"
549        systemOnly="false"
550        visible="false">
551        <permissions>
552            <permission-set name="calendar" />
553            <permission-set name="phone" />
554            <permission-set name="sms" />
555            <permission-set name="contacts" />
556            <permission-set name="nearby_devices" />
557            <permission-set name="notifications" minSdkVersion="35" />
558            <!-- If this role holder has a NotificationListenerService, let that service receive
559                 notifications with sensitive content unredacted-->
560            <permission name="android.permission.RECEIVE_SENSITIVE_NOTIFICATIONS" minSdkVersion="35"/>
561        </permissions>
562        <app-op-permissions>
563            <app-op-permission name="android.permission.MANAGE_ONGOING_CALLS" />
564            <app-op-permission name="android.permission.USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER" />
565            <app-op-permission name="android.permission.MEDIA_ROUTING_CONTROL" minSdkVersion="35" />
566        </app-op-permissions>
567        <app-ops>
568            <app-op name="android:receive_sensitive_notifications" mode="allowed" minSdkVersion="35"/>
569        </app-ops>
570    </role>
571
572    <role
573        name="android.app.role.SYSTEM_AUTOMOTIVE_PROJECTION"
574        defaultHolders="config_systemAutomotiveProjection"
575        exclusive="true"
576        minSdkVersion="31"
577        static="true"
578        systemOnly="true"
579        visible="false">
580        <permissions>
581            <permission-set name="microphone" />
582            <permission-set name="location" />
583            <permission-set name="nearby_devices" />
584            <permission-set name="notifications" />
585            <permission name="android.permission.ADD_ALWAYS_UNLOCKED_DISPLAY" minSdkVersion="33" />
586            <permission name="android.permission.CALL_PHONE" />
587            <permission name="android.permission.CREATE_VIRTUAL_DEVICE" minSdkVersion="33" />
588            <permission name="android.permission.READ_CALENDAR" />
589            <permission name="android.permission.READ_CALL_LOG" />
590            <permission name="android.permission.READ_CONTACTS" />
591            <permission name="android.permission.READ_PHONE_STATE" />
592            <permission name="android.permission.RECEIVE_SMS" />
593            <permission name="android.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION" minSdkVersion="33" />
594            <permission name="android.permission.SEND_SMS" />
595            <permission name="android.permission.TOGGLE_AUTOMOTIVE_PROJECTION" minSdkVersion="33" />
596            <permission name="android.permission.ADD_TRUSTED_DISPLAY" minSdkVersion="34"/>
597            <permission name="android.permission.ASSOCIATE_COMPANION_DEVICES" minSdkVersion="34"/>
598            <!-- If this role holder has a NotificationListenerService, let that service receive
599                 notifications with sensitive content unredacted-->
600            <permission name="android.permission.RECEIVE_SENSITIVE_NOTIFICATIONS" minSdkVersion="35"/>
601            <permission name="android.permission.CAPTURE_SECURE_VIDEO_OUTPUT" minSdkVersion="35" />
602        </permissions>
603        <app-ops>
604            <app-op name="android:receive_sensitive_notifications" mode="allowed" minSdkVersion="35"/>
605        </app-ops>
606    </role>
607
608    <role
609        name="android.app.role.SYSTEM_SHELL"
610        behavior="v31.SystemShellRoleBehavior"
611        defaultHolders="config_systemShell"
612        exclusive="true"
613        minSdkVersion="31"
614        static="true"
615        systemOnly="true"
616        visible="false">
617        <permissions>
618            <!-- Used for CTS testing -->
619            <permission name="android.permission.CREATE_VIRTUAL_DEVICE" minSdkVersion="33" />
620            <permission name="android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE" />
621            <permission name="android.permission.ACCESS_AMBIENT_CONTEXT_EVENT" minSdkVersion="33"/>
622            <permission name="android.permission.PERFORM_IMS_SINGLE_REGISTRATION" />
623            <permission name="android.permission.BACKGROUND_CAMERA" />
624            <permission name="android.permission.RECORD_BACKGROUND_AUDIO" />
625            <permission name="android.permission.BYPASS_ROLE_QUALIFICATION" />
626            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
627            <permission name="android.permission.MANAGE_SENSOR_PRIVACY" />
628            <permission name="android.permission.READ_GLOBAL_APP_SEARCH_DATA" />
629            <permission name="android.permission.TOGGLE_AUTOMOTIVE_PROJECTION" minSdkVersion="33" />
630            <permission name="android.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS"
631                minSdkVersion="33" />
632            <permission name="android.permission.REQUEST_COMPANION_PROFILE_AUTOMOTIVE_PROJECTION"
633                minSdkVersion="33" />
634            <permission name="android.permission.MANAGE_SAFETY_CENTER"
635                minSdkVersion="33" />
636            <permission name="android.permission.ADD_TRUSTED_DISPLAY" minSdkVersion="33" />
637            <permission name="android.permission.ADD_ALWAYS_UNLOCKED_DISPLAY" minSdkVersion="33" />
638            <permission name="android.permission.SUBSCRIBE_TO_KEYGUARD_LOCKED_STATE"
639                minSdkVersion="33" />
640            <permission name="android.permission.MANAGE_DEVICE_POLICY_ACCOUNT_MANAGEMENT"
641                minSdkVersion="34" />
642            <permission name="android.permission.MANAGE_DEVICE_POLICY_AIRPLANE_MODE"
643                minSdkVersion="34" />
644            <permission name="android.permission.MANAGE_DEVICE_POLICY_APPS_CONTROL"
645                minSdkVersion="34" />
646            <permission name="android.permission.MANAGE_DEVICE_POLICY_APP_EXEMPTIONS"
647                minSdkVersion="34" />
648            <permission name="android.permission.MANAGE_DEVICE_POLICY_APP_RESTRICTIONS"
649                minSdkVersion="34" />
650            <permission name="android.permission.MANAGE_DEVICE_POLICY_BLUETOOTH"
651                minSdkVersion="34" />
652            <permission name="android.permission.MANAGE_DEVICE_POLICY_CALLS" minSdkVersion="34" />
653            <permission name="android.permission.MANAGE_DEVICE_POLICY_CAMERA"
654                minSdkVersion="34" />
655            <permission name="android.permission.MANAGE_DEVICE_POLICY_CONTENT_PROTECTION"
656                minSdkVersion="35" />
657            <permission name="android.permission.MANAGE_DEVICE_POLICY_DEBUGGING_FEATURES"
658                minSdkVersion="34" />
659            <permission name="android.permission.MANAGE_DEVICE_POLICY_FACTORY_RESET"
660                minSdkVersion="34" />
661            <permission name="android.permission.MANAGE_DEVICE_POLICY_FUN" minSdkVersion="34" />
662            <permission name="android.permission.MANAGE_DEVICE_POLICY_INSTALL_UNKNOWN_SOURCES"
663                minSdkVersion="34" />
664            <permission name="android.permission.MANAGE_DEVICE_POLICY_KEYGUARD"
665                minSdkVersion="34" />
666            <permission name="android.permission.MANAGE_DEVICE_POLICY_LOCK" minSdkVersion="34" />
667            <permission name="android.permission.MANAGE_DEVICE_POLICY_LOCK_TASK"
668                minSdkVersion="34" />
669            <permission name="android.permission.MANAGE_DEVICE_POLICY_MOBILE_NETWORK"
670                minSdkVersion="34" />
671            <permission name="android.permission.MANAGE_DEVICE_POLICY_MODIFY_USERS"
672                minSdkVersion="34" />
673            <permission name="android.permission.MANAGE_DEVICE_POLICY_PACKAGE_STATE"
674                minSdkVersion="34" />
675            <permission name="android.permission.MANAGE_DEVICE_POLICY_PHYSICAL_MEDIA"
676                minSdkVersion="34" />
677            <permission name="android.permission.MANAGE_DEVICE_POLICY_RESET_PASSWORD"
678                minSdkVersion="34" />
679            <permission name="android.permission.MANAGE_DEVICE_POLICY_RUNTIME_PERMISSIONS"
680                minSdkVersion="34" />
681            <permission name="android.permission.MANAGE_DEVICE_POLICY_SAFE_BOOT"
682                minSdkVersion="34" />
683            <permission name="android.permission.MANAGE_DEVICE_POLICY_SMS" minSdkVersion="34" />
684            <permission name="android.permission.MANAGE_DEVICE_POLICY_STATUS_BAR"
685                minSdkVersion="34" />
686            <permission name="android.permission.MANAGE_DEVICE_POLICY_TIME" minSdkVersion="34" />
687            <permission name="android.permission.MANAGE_DEVICE_POLICY_USB_FILE_TRANSFER"
688                minSdkVersion="34" />
689            <permission name="android.permission.MANAGE_DEVICE_POLICY_WINDOWS" minSdkVersion="34" />
690            <permission name="android.permission.MANAGE_DEVICE_POLICY_WIPE_DATA"
691                minSdkVersion="34" />
692            <permission name="android.permission.SET_TIME" minSdkVersion="34" />
693            <permission name="android.permission.SET_TIME_ZONE" minSdkVersion="34" />
694            <permission name="android.permission.SATELLITE_COMMUNICATION" minSdkVersion="34" />
695            <permission name="android.permission.ALWAYS_UPDATE_WALLPAPER" minSdkVersion="35" />
696            <permission name="android.permission.EMBED_ANY_APP_IN_UNTRUSTED_MODE"
697                minSdkVersion="35" />
698            <permission name="android.permission.MANAGE_DEVICE_POLICY_AUDIT_LOGGING"
699                minSdkVersion="35" />
700        </permissions>
701    </role>
702
703    <role
704        name="android.app.role.SYSTEM_CONTACTS"
705        defaultHolders="config_systemContacts"
706        exclusive="true"
707        minSdkVersion="31"
708        static="true"
709        systemOnly="true"
710        visible="false">
711        <permissions>
712            <permission name="android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE" />
713            <permission name="android.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS"
714                minSdkVersion="33" />
715        </permissions>
716    </role>
717
718    <role
719        name="android.app.role.SYSTEM_SPEECH_RECOGNIZER"
720        allowBypassingQualification="true"
721        defaultHolders="config_systemSpeechRecognizer"
722        exclusive="true"
723        minSdkVersion="31"
724        static="true"
725        systemOnly="true"
726        visible="false">
727        <permissions>
728            <permission name="android.permission.RECORD_AUDIO" />
729            <permission name="android.permission.UPDATE_APP_OPS_STATS" />
730        </permissions>
731        <required-components>
732            <service>
733                <intent-filter>
734                    <action name="android.speech.RecognitionService" />
735                </intent-filter>
736            </service>
737        </required-components>
738    </role>
739
740    <role
741        name="android.app.role.SYSTEM_WIFI_COEX_MANAGER"
742        defaultHolders="config_systemWifiCoexManager"
743        exclusive="true"
744        minSdkVersion="31"
745        static="true"
746        systemOnly="true"
747        visible="false">
748        <permissions>
749            <permission name="android.permission.WIFI_ACCESS_COEX_UNSAFE_CHANNELS" />
750            <permission name="android.permission.WIFI_UPDATE_COEX_UNSAFE_CHANNELS" />
751        </permissions>
752    </role>
753
754    <role
755        name="android.app.role.SYSTEM_WELLBEING"
756        defaultHolders="config_systemWellbeing"
757        exclusive="true"
758        minSdkVersion="31"
759        static="true"
760        systemOnly="true"
761        visible="false" >
762        <permissions>
763            <permission-set name="notifications" />
764            <permission name="android.permission.ACCESS_AMBIENT_CONTEXT_EVENT" minSdkVersion="33"/>
765            <permission name="android.permission.ACCESS_INSTANT_APPS"/>
766            <permission name="android.permission.START_CROSS_PROFILE_ACTIVITIES" minSdkVersion="33"/>
767            <permission name="android.permission.SUSPEND_APPS"/>
768            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY"/>
769        </permissions>
770        <app-op-permissions>
771            <app-op-permission name="android.permission.SCHEDULE_EXACT_ALARM" minSdkVersion="34"/>
772        </app-op-permissions>
773    </role>
774
775    <!---
776      ~ A role for the notification handler on TV devices.
777      ~ Note: on TV devices that have the Dashboard screen, the holder for this role is responsible
778      ~ for it, which is why it needs OBSERVE_SENSOR_PRIVACY permission (the Dashboard displays
779      ~ the state of the privacy sensors).
780      -->
781    <role
782        name="android.app.role.SYSTEM_TELEVISION_NOTIFICATION_HANDLER"
783        behavior="v31.TelevisionRoleBehavior"
784        defaultHolders="config_systemTelevisionNotificationHandler"
785        exclusive="true"
786        minSdkVersion="31"
787        static="true"
788        systemOnly="true"
789        visible="false">
790        <permissions>
791            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
792            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
793        </permissions>
794    </role>
795
796    <!---
797        A role for the system package that is allowed to create CompanionDeviceManager associations
798        based on user consent to allow the associated app to manage the associated device.
799    -->
800    <role
801        name="android.app.role.SYSTEM_COMPANION_DEVICE_PROVIDER"
802        defaultHolders="config_systemCompanionDeviceProvider"
803        exclusive="true"
804        minSdkVersion="31"
805        static="true"
806        systemOnly="true"
807        visible="false" >
808        <permissions>
809            <permission name="android.permission.ASSOCIATE_COMPANION_DEVICES"/>
810        </permissions>
811    </role>
812
813    <!---
814      ~ A role for the system package that provides privacy-preserving intelligent processor for
815      ~ system UI features.
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_UI_INTELLIGENCE"
837        defaultHolders="config_systemUiIntelligence"
838        exclusive="true"
839        minSdkVersion="31"
840        static="true"
841        systemOnly="true"
842        visible="false">
843        <permissions>
844            <permission-set name="notifications" />
845            <permission name="android.permission.ACCESS_SHORTCUTS" />
846            <permission name="android.permission.ACCESS_BACKGROUND_LOCATION" minSdkVersion="33" />
847            <permission name="android.permission.ACCESS_COARSE_LOCATION" minSdkVersion="33" />
848            <permission name="android.permission.ACCESS_FINE_LOCATION" minSdkVersion="33" />
849            <permission name="android.permission.BLUETOOTH_CONNECT" />
850            <permission name="android.permission.BLUETOOTH_SCAN" />
851            <permission name="android.permission.MANAGE_APP_PREDICTIONS" />
852            <permission name="android.permission.UNLIMITED_SHORTCUTS_API_CALLS" />
853            <permission name="android.permission.MANAGE_SEARCH_UI" />
854            <permission name="android.permission.READ_CALL_LOG" minSdkVersion="33" />
855            <permission name="android.permission.READ_CONTACTS" minSdkVersion="33" />
856            <permission name="android.permission.READ_EXTERNAL_STORAGE" />
857            <permission name="android.permission.READ_MEDIA_AUDIO" minSdkVersion="33" />
858            <permission name="android.permission.READ_MEDIA_IMAGES" minSdkVersion="33" />
859            <permission name="android.permission.READ_MEDIA_VIDEO" minSdkVersion="33" />
860            <permission name="android.permission.READ_SMS" minSdkVersion="33" />
861            <permission name="android.permission.READ_PEOPLE_DATA" />
862            <permission name="android.permission.READ_GLOBAL_APP_SEARCH_DATA" />
863        </permissions>
864    </role>
865
866    <!---
867      ~ A role for the system package that provides on-device intelligent processor for ambient
868      ~ audio.
869      ~
870      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
871      ~ section "9.8.6 Content Capture".
872      ~ Example link for Android 11:
873      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
874      ~
875      ~ In addition, packages MUST NOT:
876      ~ - Request INTERNET permission. Instead packages MUST access the internet through
877      ~   well-defined APIs in an open source project.
878      ~ - Perform direct binds to other applications, except the following system packages:
879      ~   - Bluetooth
880      ~   - Contacts
881      ~   - Media
882      ~   - Telephony
883      ~   - System UI
884      ~   - Component providing internet APIs (see above)
885      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
886      ~   system config.
887      -->
888    <role
889        name="android.app.role.SYSTEM_AMBIENT_AUDIO_INTELLIGENCE"
890        defaultHolders="config_systemAmbientAudioIntelligence"
891        exclusive="true"
892        minSdkVersion="31"
893        static="true"
894        systemOnly="true"
895        visible="false">
896        <permissions>
897            <permission-set name="notifications" />
898            <permission name="android.permission.CAPTURE_AUDIO_OUTPUT" />
899            <permission name="android.permission.CAPTURE_MEDIA_OUTPUT" />
900            <permission name="android.permission.CAPTURE_VOICE_COMMUNICATION_OUTPUT" />
901            <permission name="android.permission.MODIFY_AUDIO_ROUTING" />
902            <permission name="android.permission.RECORD_AUDIO" />
903            <permission name="android.permission.CAPTURE_AUDIO_HOTWORD" />
904            <permission name="android.permission.EXEMPT_FROM_AUDIO_RECORD_RESTRICTIONS" />
905            <permission name="android.permission.MANAGE_SOUND_TRIGGER" />
906            <permission name="android.permission.LOCATION_HARDWARE" />
907            <permission name="android.permission.MANAGE_MUSIC_RECOGNITION" />
908            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
909            <permission name="android.permission.READ_PHONE_STATE" minSdkVersion="33" />
910        </permissions>
911    </role>
912
913    <!---
914      ~ A role for the system package that provides on-device intelligent processor for audio.
915      ~
916      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
917      ~ section "9.8.6 Content Capture".
918      ~ Example link for Android 11:
919      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
920      ~
921      ~ In addition, packages MUST NOT:
922      ~ - Request INTERNET permission. Instead packages MUST access the internet through
923      ~   well-defined APIs in an open source project.
924      ~ - Perform direct binds to other applications, except the following system packages:
925      ~   - Bluetooth
926      ~   - Contacts
927      ~   - Media
928      ~   - Telephony
929      ~   - System UI
930      ~   - Component providing internet APIs (see above)
931      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
932      ~   system config.
933      -->
934    <role
935        name="android.app.role.SYSTEM_AUDIO_INTELLIGENCE"
936        defaultHolders="config_systemAudioIntelligence"
937        exclusive="true"
938        minSdkVersion="31"
939        static="true"
940        systemOnly="true"
941        visible="false">
942        <permissions>
943            <permission-set name="notifications" />
944            <permission name="android.permission.CAPTURE_AUDIO_OUTPUT" />
945            <permission name="android.permission.CAPTURE_MEDIA_OUTPUT" />
946            <permission name="android.permission.CAPTURE_VOICE_COMMUNICATION_OUTPUT" />
947            <permission name="android.permission.CONTROL_INCALL_EXPERIENCE" />
948            <permission name="android.permission.MODIFY_AUDIO_ROUTING" />
949            <permission name="android.permission.MODIFY_PHONE_STATE" />
950            <permission name="android.permission.READ_CALL_LOG" minSdkVersion="33" />
951            <permission name="android.permission.READ_PHONE_STATE" minSdkVersion="33" />
952            <permission name="android.permission.RECORD_AUDIO" />
953            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
954            <permission name="android.permission.SET_SYSTEM_AUDIO_CAPTION" minSdkVersion="33" />
955        </permissions>
956    </role>
957
958    <!---
959      ~ A role for the system package that provides on-device intelligent processor for
960      ~ notifications.
961      ~
962      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
963      ~ section "9.8.6 Content Capture".
964      ~ Example link for Android 11:
965      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
966      ~
967      ~ In addition, packages MUST NOT:
968      ~ - Request INTERNET permission. Instead packages MUST access the internet through
969      ~   well-defined APIs in an open source project.
970      ~ - Perform direct binds to other applications, except the following system packages:
971      ~   - Bluetooth
972      ~   - Contacts
973      ~   - Media
974      ~   - Telephony
975      ~   - System UI
976      ~   - Component providing internet APIs (see above)
977      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
978      ~   system config.
979      -->
980    <role
981        name="android.app.role.SYSTEM_NOTIFICATION_INTELLIGENCE"
982        defaultHolders="config_systemNotificationIntelligence"
983        exclusive="true"
984        minSdkVersion="31"
985        static="true"
986        systemOnly="true"
987        visible="false">
988        <permissions>
989            <permission-set name="notifications" />
990            <permission name="android.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE" />
991            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
992            <!-- If this role holder has a NotificationListenerService, let that service receive
993                 notifications with sensitive content unredacted-->
994            <permission name="android.permission.RECEIVE_SENSITIVE_NOTIFICATIONS" minSdkVersion="35"/>
995        </permissions>
996        <app-ops>
997            <app-op name="android:receive_sensitive_notifications" mode="allowed" minSdkVersion="35"/>
998        </app-ops>
999    </role>
1000
1001    <!---
1002      ~ A role for the system package that provides on-device intelligent processor for text.
1003      ~
1004      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
1005      ~ section "9.8.6 Content Capture".
1006      ~ Example link for Android 11:
1007      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
1008      ~
1009      ~ In addition, packages MUST NOT:
1010      ~ - Request INTERNET permission. Instead packages MUST access the internet through
1011      ~   well-defined APIs in an open source project.
1012      ~ - Perform direct binds to other applications, except the following system packages:
1013      ~   - Bluetooth
1014      ~   - Contacts
1015      ~   - Media
1016      ~   - Telephony
1017      ~   - System UI
1018      ~   - Component providing internet APIs (see above)
1019      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
1020      ~   system config.
1021      -->
1022    <role
1023        name="android.app.role.SYSTEM_TEXT_INTELLIGENCE"
1024        defaultHolders="config_systemTextIntelligence"
1025        exclusive="true"
1026        minSdkVersion="31"
1027        static="true"
1028        systemOnly="true"
1029        visible="false">
1030        <permissions>
1031            <permission-set name="notifications" />
1032            <permission name="android.permission.ACCESS_BACKGROUND_LOCATION" minSdkVersion="33" />
1033            <permission name="android.permission.ACCESS_COARSE_LOCATION" minSdkVersion="33" />
1034            <permission name="android.permission.MANAGE_UI_TRANSLATION" />
1035            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
1036            <permission name="android.permission.READ_CLIPBOARD_IN_BACKGROUND" minSdkVersion="33" />
1037        </permissions>
1038    </role>
1039
1040    <!---
1041      ~ A role for the system package that provides on-device intelligent processor for visual
1042      ~ features.
1043      ~
1044      ~ A package holding this role MUST comply with requirements outlined in the Android CDD
1045      ~ section "9.8.6 Content Capture".
1046      ~ Example link for Android 11:
1047      ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture
1048      ~
1049      ~ In addition, packages MUST NOT:
1050      ~ - Request INTERNET permission. Instead packages MUST access the internet through
1051      ~   well-defined APIs in an open source project.
1052      ~ - Perform direct binds to other applications, except the following system packages:
1053      ~   - Bluetooth
1054      ~   - Contacts
1055      ~   - Media
1056      ~   - Telephony
1057      ~   - System UI
1058      ~   - Component providing internet APIs (see above)
1059      ~   To achieve this packages MUST set up explicit <allow-association> configuration in the
1060      ~   system config.
1061      -->
1062    <role
1063        name="android.app.role.SYSTEM_VISUAL_INTELLIGENCE"
1064        defaultHolders="config_systemVisualIntelligence"
1065        exclusive="true"
1066        minSdkVersion="31"
1067        static="true"
1068        systemOnly="true"
1069        visible="false">
1070        <permissions>
1071            <permission-set name="notifications" />
1072            <permission name="android.permission.CAMERA" />
1073            <permission name="android.permission.SYSTEM_CAMERA" />
1074            <permission name="android.permission.UPDATE_DEVICE_STATS" />
1075            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
1076        </permissions>
1077    </role>
1078
1079    <!---
1080      ~ A role for the system package that is allowed to manage documents (e.g., attach files etc.)
1081      ~ on the device.
1082      ~ A package holding this role must comply with the requirements outlined in the Android CDD
1083      ~ section "2.2.3. Software" under heading "3.2.3.1/H-0-1".
1084      ~ Example link for Android 11:
1085      ~ https://source.android.com/compatibility/11/android-11-cdd#2_2_3_software
1086    -->
1087    <role
1088        name="android.app.role.SYSTEM_DOCUMENT_MANAGER"
1089        behavior="v33.DocumentManagerRoleBehavior"
1090        exclusive="true"
1091        minSdkVersion="33"
1092        static="true"
1093        systemOnly="true"
1094        visible="false">
1095        <required-components>
1096            <!--- Flag value is MATCH_DISABLED_COMPONENTS-->
1097            <activity queryFlags="0x00000200">
1098                <intent-filter>
1099                    <action name="android.intent.action.OPEN_DOCUMENT" />
1100                    <category name="android.intent.category.OPENABLE" />
1101                    <data mimeType="*/*" />
1102                </intent-filter>
1103            </activity>
1104        </required-components>
1105        <permissions>
1106            <permission-set name="notifications" />
1107            <permission name="android.permission.MANAGE_DOCUMENTS" />
1108            <permission name="android.permission.CACHE_CONTENT" />
1109            <permission name="android.permission.REMOVE_TASKS" />
1110        </permissions>
1111    </role>
1112
1113    <!---
1114      ~ A role for the system package that serves as the activity recognizer on the device.
1115      ~ This is the application that provides the data behind the activity recognition
1116      ~ runtime permission.
1117      -->
1118    <role
1119        name="android.app.role.SYSTEM_ACTIVITY_RECOGNIZER"
1120        allowBypassingQualification="true"
1121        defaultHolders="config_systemActivityRecognizer"
1122        exclusive="false"
1123        static="true"
1124        systemOnly="true"
1125        visible="false">
1126        <required-components>
1127            <service>
1128                <intent-filter>
1129                    <action name="android.intent.action.ACTIVITY_RECOGNIZER" />
1130                </intent-filter>
1131            </service>
1132        </required-components>
1133    </role>
1134
1135    <!---
1136      ~ A role for the system UI package.
1137      -->
1138    <role
1139        name="android.app.role.SYSTEM_UI"
1140        defaultHolders="config_systemUi"
1141        exclusive="true"
1142        minSdkVersion="31"
1143        static="true"
1144        systemOnly="true"
1145        visible="false">
1146        <permissions>
1147            <permission-set name="notifications" />
1148            <permission name="android.permission.MANAGE_SENSOR_PRIVACY" />
1149            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
1150            <permission name="android.permission.ACCESS_AMBIENT_CONTEXT_EVENT" minSdkVersion="33"/>
1151            <!-- If this role holder has a NotificationListenerService, let that service receive
1152                 notifications with sensitive content unredacted-->
1153            <permission name="android.permission.RECEIVE_SENSITIVE_NOTIFICATIONS" minSdkVersion="35"/>
1154        </permissions>
1155        <app-ops>
1156            <app-op name="android:receive_sensitive_notifications" mode="allowed" minSdkVersion="35"/>
1157        </app-ops>
1158    </role>
1159
1160    <!---
1161      ~ A role for the package responsible for interacting with a TV remote.
1162      -->
1163    <role
1164        name="android.app.role.SYSTEM_TELEVISION_REMOTE_SERVICE"
1165        behavior="v31.TelevisionRoleBehavior"
1166        defaultHolders="config_systemTelevisionRemoteService"
1167        exclusive="true"
1168        minSdkVersion="31"
1169        static="true"
1170        systemOnly="true"
1171        visible="false">
1172        <permissions>
1173            <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" />
1174        </permissions>
1175    </role>
1176
1177    <!---
1178      ~ A role for the companion device package that create and manage connections to connected
1179      ~ devices and perform app streaming to the devices.
1180      -->
1181    <role
1182        name="android.app.role.COMPANION_DEVICE_APP_STREAMING"
1183        allowBypassingQualification="true"
1184        behavior="v33.CompanionDeviceAppStreamingRoleBehavior"
1185        description="@string/role_app_streaming_description"
1186        exclusive="false"
1187        minSdkVersion="33"
1188        systemOnly="true"
1189        visible="false">
1190        <permissions>
1191            <permission-set name="notifications" />
1192            <!-- For capturing audio from the app on the device. -->
1193            <permission name="android.permission.RECORD_AUDIO" />
1194            <permission name="android.permission.CREATE_VIRTUAL_DEVICE" minSdkVersion="33" />
1195            <permission name="android.permission.ADD_TRUSTED_DISPLAY" minSdkVersion="33" />
1196            <permission name="android.permission.ADD_ALWAYS_UNLOCKED_DISPLAY" minSdkVersion="33" />
1197
1198            <!--TODO(b/201605314) For calling Telecom framework API for audio streaming-->
1199            <!--<permission name="android.permission.PROVIDE_CALL_ENDPOINTS" />-->
1200       </permissions>
1201    </role>
1202
1203    <!---
1204      ~ A role for the companion device package that allows connected computers to mirror
1205      ~ notifications and access photos and media from the phone.
1206      -->
1207    <role
1208        name="android.app.role.COMPANION_DEVICE_COMPUTER"
1209        allowBypassingQualification="true"
1210        behavior="v33.CompanionDeviceComputerRoleBehavior"
1211        description="@string/role_companion_device_computer_description"
1212        exclusive="false"
1213        minSdkVersion="33"
1214        systemOnly="true"
1215        visible="false">
1216        <permissions>
1217            <permission-set name="notifications" />
1218            <permission-set name="storage" />
1219            <!-- If this role holder has a NotificationListenerService, let that service receive
1220                 notifications with sensitive content unredacted-->
1221            <permission name="android.permission.RECEIVE_SENSITIVE_NOTIFICATIONS" minSdkVersion="35"/>
1222       </permissions>
1223        <app-ops>
1224            <app-op name="android:receive_sensitive_notifications" mode="allowed" minSdkVersion="35"/>
1225        </app-ops>
1226    </role>
1227
1228    <role
1229        name="android.app.role.COMPANION_DEVICE_GLASSES"
1230        behavior="v34.CompanionDeviceGlassesRoleBehavior"
1231        exclusive="false"
1232        minSdkVersion="34"
1233        systemOnly="false"
1234        visible="false">
1235        <permissions>
1236            <permission-set name="contacts" />
1237            <permission-set name="microphone" />
1238            <permission-set name="nearby_devices" />
1239            <permission-set name="notifications" />
1240            <permission-set name="phone" />
1241            <permission-set name="sms" />
1242            <!-- If this role holder has a NotificationListenerService, let that service receive
1243                 notifications with sensitive content unredacted-->
1244            <permission name="android.permission.RECEIVE_SENSITIVE_NOTIFICATIONS" minSdkVersion="35"/>
1245       </permissions>
1246       <app-op-permissions>
1247           <app-op-permission name="android.permission.MANAGE_ONGOING_CALLS" />
1248       </app-op-permissions>
1249        <app-ops>
1250            <app-op name="android:receive_sensitive_notifications" mode="allowed" minSdkVersion="35"/>
1251        </app-ops>
1252    </role>
1253
1254    <role
1255        name="android.app.role.COMPANION_DEVICE_NEARBY_DEVICE_STREAMING"
1256        allowBypassingQualification="true"
1257        exclusive="false"
1258        minSdkVersion="34"
1259        systemOnly="true"
1260        visible="false">
1261        <permissions>
1262            <permission-set name="nearby_devices" />
1263            <permission name="android.permission.CREATE_VIRTUAL_DEVICE" />
1264            <permission name="android.permission.ADD_TRUSTED_DISPLAY" />
1265            <permission name="android.permission.ADD_ALWAYS_UNLOCKED_DISPLAY" />
1266        </permissions>
1267    </role>
1268
1269     <role
1270        name="android.app.role.SYSTEM_SUPERVISION"
1271        defaultHolders="config_systemSupervision"
1272        exclusive="true"
1273        minSdkVersion="33"
1274        static="true"
1275        systemOnly="true"
1276        visible="false" >
1277        <permissions>
1278            <permission name="android.permission.ACCESS_INSTANT_APPS"/>
1279            <permission name="android.permission.KILL_UID" minSdkVersion="34"/>
1280            <permission name="android.permission.MANAGE_DEFAULT_APPLICATIONS" minSdkVersion="34"/>
1281            <permission name="android.permission.SUSPEND_APPS"/>
1282            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY"/>
1283        </permissions>
1284    </role>
1285
1286    <!---
1287      ~ A role for the package responsible for constructing managed device experiences,
1288      ~ including during provisioning.
1289      -->
1290    <role
1291        name="android.app.role.DEVICE_POLICY_MANAGEMENT"
1292        behavior="v33.DevicePolicyManagementRoleBehavior"
1293        defaultHolders="config_devicePolicyManagement"
1294        exclusive="true"
1295        minSdkVersion="33"
1296        static="true"
1297        systemOnly="false"
1298        visible="false">
1299        <required-components>
1300            <activity permission="android.permission.LAUNCH_DEVICE_MANAGER_SETUP">
1301                <intent-filter>
1302                    <action name="android.app.action.ROLE_HOLDER_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE" />
1303                </intent-filter>
1304            </activity>
1305            <activity permission="android.permission.LAUNCH_DEVICE_MANAGER_SETUP">
1306                <intent-filter>
1307                    <action name="android.app.action.ROLE_HOLDER_PROVISION_MANAGED_PROFILE" />
1308                </intent-filter>
1309            </activity>
1310            <activity permission="android.permission.LAUNCH_DEVICE_MANAGER_SETUP">
1311                <intent-filter>
1312                    <action name="android.app.action.ROLE_HOLDER_PROVISION_FINALIZATION" />
1313                </intent-filter>
1314            </activity>
1315        </required-components>
1316        <permissions>
1317            <permission-set name="notifications" />
1318            <permission name="android.permission.BIND_DEVICE_ADMIN" />
1319            <permission name="android.permission.MANAGE_DEVICE_ADMINS" />
1320            <permission name="android.permission.NETWORK_MANAGED_PROVISIONING" />
1321            <permission name="android.permission.PEERS_MAC_ADDRESS" />
1322            <permission name="android.permission.USE_COLORIZED_NOTIFICATIONS" />
1323            <permission name="android.permission.MASTER_CLEAR" />
1324            <permission name="android.permission.WRITE_SECURE_SETTINGS" />
1325            <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
1326            <permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
1327            <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" />
1328            <permission name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" />
1329            <permission name="android.permission.INTERACT_ACROSS_USERS" />
1330            <permission name="android.permission.INTERACT_ACROSS_USERS_FULL" />
1331            <permission name="com.android.permission.INSTALL_EXISTING_PACKAGES" />
1332            <permission name="android.permission.DELETE_PACKAGES" />
1333            <permission name="android.permission.ACCESS_PDB_STATE" />
1334            <permission name="android.permission.MARK_DEVICE_ORGANIZATION_OWNED" />
1335            <permission name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
1336            <permission name="android.permission.SET_TIME" />
1337            <permission name="android.permission.SET_TIME_ZONE" />
1338            <permission name="android.permission.CRYPT_KEEPER" />
1339            <permission name="android.permission.SHUTDOWN" />
1340            <permission name="android.permission.PERFORM_CDMA_PROVISIONING" />
1341            <permission name="android.permission.CONFIGURE_INTERACT_ACROSS_PROFILES" />
1342            <permission name="android.permission.WRITE_SETTINGS" />
1343            <permission name="android.permission.CHANGE_CONFIGURATION" />
1344            <permission name="android.permission.LAUNCH_DEVICE_MANAGER_SETUP" />
1345            <permission name="android.permission.INSTALL_DPC_PACKAGES" />
1346            <permission name="android.permission.QUERY_USERS" />
1347            <permission name="android.permission.UPDATE_DEVICE_MANAGEMENT_RESOURCES" />
1348            <permission name="android.permission.QUERY_ADMIN_POLICY" />
1349            <permission name="android.permission.TRIGGER_LOST_MODE" />
1350            <permission name="android.permission.MANAGE_DEVICE_POLICY_APP_EXEMPTIONS" minSdkVersion="34" />
1351            <permission name="android.permission.MANAGE_DEVICE_POLICY_ACCOUNT_MANAGEMENT" minSdkVersion="34" />
1352            <permission name="android.permission.MANAGE_DEVICE_POLICY_AIRPLANE_MODE" minSdkVersion="34" />
1353            <permission name="android.permission.MANAGE_DEVICE_POLICY_CAMERA" minSdkVersion="34" />
1354            <permission name="android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES" minSdkVersion="34" />
1355            <permission name="android.permission.MANAGE_DEVICE_POLICY_COMMON_CRITERIA_MODE" minSdkVersion="34" />
1356            <permission name="android.permission.MANAGE_DEVICE_POLICY_DEFAULT_SMS" minSdkVersion="34" />
1357            <permission name="android.permission.MANAGE_DEVICE_POLICY_FACTORY_RESET" minSdkVersion="34" />
1358            <permission name="android.permission.MANAGE_DEVICE_POLICY_INPUT_METHODS" minSdkVersion="34" />
1359            <permission name="android.permission.MANAGE_DEVICE_POLICY_INSTALL_UNKNOWN_SOURCES" minSdkVersion="34" />
1360            <permission name="android.permission.MANAGE_DEVICE_POLICY_KEYGUARD" minSdkVersion="34" />
1361            <permission name="android.permission.MANAGE_DEVICE_POLICY_LOCK" minSdkVersion="34" />
1362            <permission name="android.permission.MANAGE_DEVICE_POLICY_LOCK_CREDENTIALS" minSdkVersion="34" />
1363            <permission name="android.permission.MANAGE_DEVICE_POLICY_MOBILE_NETWORK" minSdkVersion="34" />
1364            <permission name="android.permission.MANAGE_DEVICE_POLICY_MTE" minSdkVersion="34" />
1365            <permission name="android.permission.MANAGE_DEVICE_POLICY_PACKAGE_STATE" minSdkVersion="34" />
1366            <permission name="android.permission.MANAGE_DEVICE_POLICY_PROFILES" minSdkVersion="34" />
1367            <permission name="android.permission.MANAGE_DEVICE_POLICY_RESTRICT_PRIVATE_DNS" minSdkVersion="34" />
1368            <permission name="android.permission.MANAGE_DEVICE_POLICY_SCREEN_CAPTURE" minSdkVersion="34" />
1369            <permission name="android.permission.MANAGE_DEVICE_POLICY_SECURITY_LOGGING" minSdkVersion="34" />
1370            <permission name="android.permission.MANAGE_DEVICE_POLICY_SUSPEND_PERSONAL_APPS" minSdkVersion="34" />
1371            <permission name="android.permission.MANAGE_DEVICE_POLICY_SYSTEM_UPDATES" minSdkVersion="34" />
1372            <permission name="android.permission.MANAGE_DEVICE_POLICY_TIME" minSdkVersion="34" />
1373            <permission name="android.permission.MANAGE_DEVICE_POLICY_USB_DATA_SIGNALLING" minSdkVersion="34" />
1374            <permission name="android.permission.MANAGE_DEVICE_POLICY_WIFI" minSdkVersion="34" />
1375            <permission name="android.permission.MANAGE_DEVICE_POLICY_WIPE_DATA" minSdkVersion="34" />
1376            <permission name="android.permission.SET_TIME" minSdkVersion="34" />
1377            <permission name="android.permission.SET_TIME_ZONE" minSdkVersion="34" />
1378            <permission name="android.permission.MANAGE_DEVICE_POLICY_DEBUGGING_FEATURES" minSdkVersion="34" />
1379            <permission name="android.permission.MANAGE_DEVICE_POLICY_MODIFY_USERS" minSdkVersion="34" />
1380            <permission name="android.permission.MANAGE_DEVICE_POLICY_SAFE_BOOT" minSdkVersion="34" />
1381            <permission name="android.permission.MANAGE_DEVICE_POLICY_MICROPHONE" minSdkVersion="34" />
1382            <permission name="android.permission.MANAGE_DEVICE_POLICY_USB_FILE_TRANSFER" minSdkVersion="34" />
1383            <permission name="android.permission.MANAGE_DEVICE_POLICY_ACROSS_USERS_SECURITY_CRITICAL" minSdkVersion="34" />
1384            <permission name="android.permission.MANAGE_DEVICE_POLICY_ACROSS_USERS" minSdkVersion="34" />
1385            <permission name="android.permission.MANAGE_DEVICE_POLICY_CONTENT_PROTECTION" minSdkVersion="35" />
1386            <permission name="android.permission.MANAGE_DEVICE_POLICY_QUERY_SYSTEM_UPDATES" minSdkVersion="35" />
1387            <permission name="android.permission.MANAGE_DEVICE_POLICY_BLOCK_UNINSTALL" minSdkVersion="35" />
1388            <permission name="android.permission.MANAGE_DEVICE_POLICY_CAMERA_TOGGLE" minSdkVersion="35" />
1389            <permission name="android.permission.MANAGE_DEVICE_POLICY_MICROPHONE_TOGGLE" minSdkVersion="35" />
1390            <permission name="android.permission.QUERY_DEVICE_STOLEN_STATE" minSdkVersion="35" />
1391            <permission name="android.permission.MANAGE_DEVICE_POLICY_AUDIT_LOGGING" minSdkVersion="35" />
1392            <permission name="android.permission.MANAGE_DEVICE_POLICY_APPS_CONTROL" minSdkVersion="35" />
1393            <permission name="android.permission.MANAGE_DEVICE_POLICY_WALLPAPER" minSdkVersion="35" />
1394            <permission name="android.permission.MANAGE_DEVICE_POLICY_VPN" minSdkVersion="35" />
1395            <permission name="android.permission.MANAGE_DEVICE_POLICY_AUTOFILL" minSdkVersion="35" />
1396            <permission name="android.permission.MANAGE_DEVICE_POLICY_LOCATION" minSdkVersion="35" />
1397            <permission name="android.permission.MANAGE_DEVICE_POLICY_DISPLAY" minSdkVersion="35" />
1398            <permission name="android.permission.MANAGE_DEVICE_POLICY_LOCALE" minSdkVersion="35" />
1399            <permission name="android.permission.MANAGE_DEVICE_POLICY_SMS" minSdkVersion="35" />
1400        </permissions>
1401    </role>
1402
1403    <role
1404        name="android.app.role.SYSTEM_APP_PROTECTION_SERVICE"
1405        defaultHolders="config_systemAppProtectionService"
1406        exclusive="true"
1407        minSdkVersion="33"
1408        static="true"
1409        systemOnly="true"
1410        visible="false">
1411        <permissions>
1412            <permission-set name="notifications" />
1413            <permission name="android.permission.GET_HISTORICAL_APP_OPS_STATS" />
1414            <permission name="android.permission.READ_SMS" />
1415            <permission name="android.permission.RECEIVE_SMS" />
1416            <permission name="android.permission.GET_BACKGROUND_INSTALLED_PACKAGES" minSdkVersion="35" />
1417            <permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
1418            <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" />
1419            <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" />
1420        </permissions>
1421        <app-op-permissions>
1422            <app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" />
1423        </app-op-permissions>
1424    </role>
1425
1426    <!---
1427      ~ A role for the system package that handles syncing calendar from another device on
1428      ~ Automotive.
1429      -->
1430    <role
1431        name="android.app.role.SYSTEM_AUTOMOTIVE_CALENDAR_SYNC_MANAGER"
1432        behavior="v31.AutomotiveRoleBehavior"
1433        defaultHolders="config_systemAutomotiveCalendarSyncManager"
1434        exclusive="true"
1435        minSdkVersion="33"
1436        static="true"
1437        systemOnly="true"
1438        visible="false">
1439        <permissions>
1440            <permission name="android.permission.READ_CALENDAR" />
1441            <permission name="android.permission.WRITE_CALENDAR" />
1442        </permissions>
1443    </role>
1444
1445    <!---
1446      ~ A role for the package that handles navigation on the Automotive.
1447      ~ This is the application that provides point-of-interest search and
1448      ~ turn-by-turn navigation guidance.
1449      -->
1450    <role
1451        name="android.app.role.AUTOMOTIVE_NAVIGATION"
1452        behavior="v31.AutomotiveRoleBehavior"
1453        defaultHolders="config_defaultAutomotiveNavigation"
1454        description="@string/role_automotive_navigation_description"
1455        exclusive="true"
1456        label="@string/role_automotive_navigation_label"
1457        minSdkVersion="33"
1458        overrideUserWhenGranting="true"
1459        requestDescription="@string/role_automotive_navigation_request_description"
1460        requestTitle="@string/role_automotive_navigation_request_title"
1461        shortLabel="@string/role_automotive_navigation_short_label">
1462        <required-components>
1463            <activity>
1464                <intent-filter>
1465                    <action name="android.intent.action.MAIN" />
1466                    <category name="android.intent.category.APP_MAPS" />
1467                </intent-filter>
1468            </activity>
1469            <activity>
1470                <intent-filter>
1471                    <action name="android.intent.action.NAVIGATE" />
1472                    <data scheme="geo" />
1473                </intent-filter>
1474            </activity>
1475            <activity>
1476                <intent-filter>
1477                    <action name="android.intent.action.MAIN" />
1478                    <category name="android.car.cluster.NAVIGATION" />
1479                </intent-filter>
1480            </activity>
1481        </required-components>
1482        <preferred-activities>
1483            <preferred-activity>
1484                <activity>
1485                    <intent-filter>
1486                        <action name="android.intent.action.MAIN" />
1487                        <category name="android.intent.category.APP_MAPS" />
1488                    </intent-filter>
1489                </activity>
1490                <intent-filter>
1491                    <action name="android.intent.action.MAIN" />
1492                    <category name="android.intent.category.APP_MAPS" />
1493                </intent-filter>
1494            </preferred-activity>
1495            <preferred-activity>
1496                <activity>
1497                    <intent-filter>
1498                        <action name="android.intent.action.NAVIGATE" />
1499                        <data scheme="geo" />
1500                    </intent-filter>
1501                </activity>
1502                <intent-filter>
1503                    <action name="android.intent.action.NAVIGATE" />
1504                    <data scheme="geo" />
1505                </intent-filter>
1506            </preferred-activity>
1507            <preferred-activity>
1508                <activity>
1509                    <intent-filter>
1510                        <action name="android.intent.action.MAIN" />
1511                        <category name="android.car.cluster.NAVIGATION" />
1512                    </intent-filter>
1513                </activity>
1514                <intent-filter>
1515                    <action name="android.intent.action.MAIN" />
1516                    <category name="android.car.cluster.NAVIGATION" />
1517                </intent-filter>
1518            </preferred-activity>
1519        </preferred-activities>
1520    </role>
1521
1522    <!---
1523      ~ A role for the package that handles AI features for the settings app
1524      -->
1525    <role
1526        name="android.app.role.SYSTEM_SETTINGS_INTELLIGENCE"
1527        defaultHolders="config_systemSettingsIntelligence"
1528        exclusive="true"
1529        minSdkVersion="33"
1530        static="true"
1531        systemOnly="true"
1532        visible="false">
1533        <permissions>
1534            <permission-set name="notifications" />
1535            <permission name="android.permission.INTERACT_ACROSS_USERS_FULL" minSdkVersion="34" />
1536        </permissions>
1537    </role>
1538
1539    <!---
1540      ~ A role for the package that handles Bluetooth for the device
1541      -->
1542    <role
1543        name="android.app.role.SYSTEM_BLUETOOTH_STACK"
1544        defaultHolders="config_systemBluetoothStack"
1545        exclusive="true"
1546        minSdkVersion="33"
1547        static="true"
1548        systemOnly="true"
1549        visible="false">
1550        <permissions>
1551            <permission name="android.permission.NETWORK_FACTORY" />
1552            <permission name="android.permission.BLUETOOTH_MAP" />
1553            <permission name="android.permission.BLUETOOTH_STACK" />
1554            <permission name="android.permission.NET_ADMIN" />
1555            <permission name="android.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH" />
1556            <permission name="android.permission.MANAGE_APP_OPS_MODES" />
1557            <permission name="android.permission.MANAGE_COMPANION_DEVICES" />
1558            <permission name="android.permission.QUERY_AUDIO_STATE" />
1559            <permission name="android.permission.DEVICE_POWER" />
1560            <permission name="android.permission.NET_TUNNELING" />
1561        </permissions>
1562    </role>
1563
1564    <!--
1565     ~ A role assigned to the financing kiosk app
1566    -->
1567    <role
1568        name="android.app.role.FINANCED_DEVICE_KIOSK"
1569        exclusive="true"
1570        minSdkVersion="34"
1571        visible="false">
1572        <permissions>
1573            <permission-set name="notifications" />
1574            <permission name="android.permission.MANAGE_DEVICE_LOCK_STATE" />
1575        </permissions>
1576    </role>
1577
1578    <!--
1579     ~ A role assigned to the device lock controller
1580    -->
1581    <role
1582        name="android.app.role.SYSTEM_FINANCED_DEVICE_CONTROLLER"
1583        defaultHolders="config_systemFinancedDeviceController"
1584        exclusive="true"
1585        minSdkVersion="34"
1586        static="true"
1587        systemOnly="true"
1588        visible="false">
1589        <permissions>
1590            <permission-set name="notifications" />
1591            <permission name="android.permission.MANAGE_DEVICE_POLICY_APPS_CONTROL" />
1592            <permission name="android.permission.MANAGE_DEVICE_POLICY_CALLS" />
1593            <permission name="android.permission.MANAGE_DEVICE_POLICY_DEBUGGING_FEATURES" />
1594            <permission name="android.permission.MANAGE_DEVICE_POLICY_INSTALL_UNKNOWN_SOURCES" />
1595            <permission name="android.permission.MANAGE_DEVICE_POLICY_LOCK_TASK" />
1596            <permission name="android.permission.MANAGE_DEVICE_POLICY_SAFE_BOOT" />
1597            <permission name="android.permission.MANAGE_DEVICE_POLICY_TIME" />
1598            <permission name="android.permission.MASTER_CLEAR" />
1599            <permission name="android.permission.INTERACT_ACROSS_USERS" />
1600            <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
1601        </permissions>
1602    </role>
1603
1604    <!---
1605      ~ A role for the wear health service that handles health/fitness tracking features.
1606    -->
1607    <role
1608        name="android.app.role.SYSTEM_WEAR_HEALTH_SERVICE"
1609        behavior="v33.SystemWearHealthServiceRoleBehavior"
1610        defaultHolders="config_systemWearHealthService"
1611        exclusive="true"
1612        minSdkVersion="33"
1613        static="true"
1614        systemOnly="true"
1615        visible="false">
1616        <permissions>
1617            <permission-set name="sensors" />
1618            <permission-set name="location" />
1619            <permission name="android.permission.ACCESS_BACKGROUND_LOCATION" />
1620            <permission name="android.permission.ACTIVITY_RECOGNITION" />
1621        </permissions>
1622    </role>
1623
1624    <!---
1625      ~ A role for the package that responds to system notes actions.
1626    -->
1627    <role
1628        name="android.app.role.NOTES"
1629        behavior="v34.NotesRoleBehavior"
1630        defaultHolders="config_defaultNotes"
1631        description="@string/role_notes_description"
1632        exclusive="true"
1633        label="@string/role_notes_label"
1634        minSdkVersion="34"
1635        overrideUserWhenGranting="true"
1636        requestable="false"
1637        searchKeywords="@string/role_notes_search_keywords"
1638        shortLabel="@string/role_notes_short_label"
1639        showNone="true">
1640        <required-components>
1641            <!-- Flag value is FLAG_SHOW_WHEN_LOCKED | FLAG_TURN_SCREEN_ON -->
1642            <activity flags="0x1800000">
1643                <intent-filter>
1644                    <action name="android.intent.action.CREATE_NOTE" />
1645                </intent-filter>
1646            </activity>
1647        </required-components>
1648        <preferred-activities>
1649            <preferred-activity>
1650                <!-- Flag value is FLAG_SHOW_WHEN_LOCKED | FLAG_TURN_SCREEN_ON -->
1651                <activity flags="0x1800000">
1652                    <intent-filter>
1653                        <action name="android.intent.action.CREATE_NOTE" />
1654                    </intent-filter>
1655                </activity>
1656                <intent-filter>
1657                    <action name="android.intent.action.CREATE_NOTE" />
1658                </intent-filter>
1659            </preferred-activity>
1660        </preferred-activities>
1661        <permissions>
1662            <permission name="android.permission.LAUNCH_CAPTURE_CONTENT_ACTIVITY_FOR_NOTE" minSdkVersion="34"/>
1663        </permissions>
1664    </role>
1665
1666    <!---
1667      ~ A role for the package that streams calls to other devices.
1668    -->
1669    <role
1670        name="android.app.role.SYSTEM_CALL_STREAMING"
1671        allowBypassingQualification="true"
1672        defaultHolders="config_systemCallStreaming"
1673        exclusive="true"
1674        minSdkVersion="34"
1675        static="true"
1676        systemOnly="true"
1677        visible="false">
1678        <permissions>
1679            <permission name="android.permission.CALL_AUDIO_INTERCEPTION" />
1680            <permission name="android.permission.RECORD_AUDIO" />
1681        </permissions>
1682        <required-components>
1683            <service permission="android.permission.BIND_CALL_STREAMING_SERVICE">
1684                <intent-filter>
1685                    <action name="android.telecom.CallStreamingService" />
1686                </intent-filter>
1687            </service>
1688        </required-components>
1689    </role>
1690
1691    <role
1692        name="android.app.role.RETAIL_DEMO"
1693        behavior="v35.RetailDemoRoleBehavior"
1694        defaultHolders="config_defaultRetailDemo"
1695        exclusive="true"
1696        minSdkVersion="35"
1697        static="true"
1698        visible="false">
1699        <permissions>
1700            <permission name="android.permission.ACCESS_BLOBS_ACROSS_USERS" />
1701            <permission name="android.permission.CHANGE_CONFIGURATION" />
1702            <permission name="android.permission.MODIFY_DAY_NIGHT_MODE" />
1703            <permission name="android.permission.MODIFY_PHONE_STATE" />
1704            <permission name="android.permission.OBSERVE_APP_USAGE" />
1705            <permission name="android.permission.QUERY_USERS" />
1706            <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
1707            <permission name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
1708            <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" />
1709            <permission name="android.permission.WRITE_SETTINGS" />
1710        </permissions>
1711        <app-op-permissions>
1712            <app-op-permission name="android.permission.PACKAGE_USAGE_STATS" />
1713        </app-op-permissions>
1714    </role>
1715
1716    <role
1717        name="android.app.role.WALLET"
1718        behavior="v35.WalletRoleBehavior"
1719        defaultHolders="config_defaultWallet"
1720        description="@string/role_wallet_description"
1721        exclusive="true"
1722        label="@string/role_wallet_label"
1723        minSdkVersion="35"
1724        overrideUserWhenGranting="true"
1725        requestable="true"
1726        requestDescription="@string/role_wallet_request_description"
1727        requestTitle="@string/role_wallet_request_title"
1728        showNone="true"
1729        shortLabel="@string/role_wallet_short_label"
1730        uiBehavior="v35.WalletRoleUiBehavior"/>
1731
1732
1733</roles>
1734