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