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