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