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_FINE_LOCATION" /> 41 <permission name="android.permission.ACCESS_COARSE_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-set> 73 74 <permission-set name="storage"> 75 <permission name="android.permission.READ_EXTERNAL_STORAGE" /> 76 <permission name="android.permission.WRITE_EXTERNAL_STORAGE" /> 77 </permission-set> 78 79 <permission-set name="nearby_devices"> 80 <permission name="android.permission.BLUETOOTH_ADVERTISE" minSdkVersion="31" /> 81 <permission name="android.permission.BLUETOOTH_CONNECT" minSdkVersion="31" /> 82 <permission name="android.permission.BLUETOOTH_SCAN" minSdkVersion="31" /> 83 </permission-set> 84 85 <role 86 name="android.app.role.ASSISTANT" 87 behavior="AssistantRoleBehavior" 88 defaultHolders="config_defaultAssistant" 89 description="@string/role_assistant_description" 90 exclusive="true" 91 fallBackToDefaultHolder="true" 92 showNone="true" 93 label="@string/role_assistant_label" 94 requestable="false" 95 shortLabel="@string/role_assistant_short_label"> 96 <required-components> 97 <!-- Qualified components are determined int AssistantRoleBehavior. This comment here is 98 ignored and represents just a rough description 99 100 <any-of> 101 <service permission="android.permission.BIND_VOICE_INTERACTION" 102 supportsAssist="true"> 103 <intent-filter> 104 <action name="android.service.voice.VoiceInteractionService" /> 105 </intent-filter> 106 <meta-data name="android.voice_interaction" 107 optional="false"> 108 required tag in metadata xml: sessionService 109 required tag in metadata xml: recognitionService 110 required tag in metadata xml: supportsAssist = true 111 </meta-data> 112 </service> 113 <activity> 114 <intent-filter> 115 <action name="android.intent.action.ASSIST" /> 116 </intent-filter> 117 </activity> 118 </ any-of> 119 120 --> 121 </required-components> 122 <permissions> 123 <permission-set name="sms" /> 124 <permission name="android.permission.READ_CALL_LOG" /> 125 <permission name="android.permission.ACCESS_BLOBS_ACROSS_USERS" minSdkVersion="31" /> 126 </permissions> 127 <app-op-permissions> 128 <app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" /> 129 </app-op-permissions> 130 </role> 131 132 <!--- 133 ~ @see com.android.settings.applications.defaultapps.DefaultBrowserPreferenceController 134 ~ @see com.android.settings.applications.defaultapps.DefaultBrowserPicker 135 ~ @see com.android.server.pm.PackageManagerService.resolveAllBrowserApps(int) 136 ~ @see com.android.server.pm.PackageManagerService.setDefaultBrowserPackageName(String, int) 137 ~ @see com.android.server.pm.permission.DefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultBrowser(String, int) 138 --> 139 <role 140 name="android.app.role.BROWSER" 141 behavior="BrowserRoleBehavior" 142 defaultHolders="config_defaultBrowser" 143 description="@string/role_browser_description" 144 exclusive="true" 145 label="@string/role_browser_label" 146 requestDescription="@string/role_browser_request_description" 147 requestTitle="@string/role_browser_request_title" 148 shortLabel="@string/role_browser_short_label"> 149 <!-- 150 ~ Required components matching is handled in BrowserRoleBehavior because it needs the 151 ~ PackageManager.MATCH_ALL flag and other manual filtering, which cannot fit in our 152 ~ current mechanism easily. 153 --> 154 <!-- 155 <required-components> 156 <activity> 157 <intent-filter> 158 <action name="android.intent.action.VIEW" /> 159 <category name="android.intent.category.BROWSABLE" /> 160 <data scheme="http" /> 161 </intent-filter> 162 </activity> 163 </required-components> 164 --> 165 <!-- 166 ~ Not need to set preferred activity because PackageManager handles browser intents 167 ~ specially. 168 --> 169 </role> 170 171 <!-- 172 ~ @see com.android.settings.applications.defaultapps.DefaultPhonePreferenceController 173 ~ @see com.android.settings.applications.defaultapps.DefaultPhonePicker 174 ~ @see android.telecom.DefaultDialerManager 175 ~ @see com.android.server.pm.permission.DefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultDialerApp(String, int) 176 ~ @see com.android.server.pm.Settings.setDefaultDialerPackageNameLPw(String, int) 177 --> 178 <role 179 name="android.app.role.DIALER" 180 behavior="DialerRoleBehavior" 181 defaultHolders="config_defaultDialer" 182 description="@string/role_dialer_description" 183 exclusive="true" 184 fallBackToDefaultHolder="true" 185 label="@string/role_dialer_label" 186 requestDescription="@string/role_dialer_request_description" 187 requestTitle="@string/role_dialer_request_title" 188 searchKeywords="@string/role_dialer_search_keywords" 189 shortLabel="@string/role_dialer_short_label"> 190 <required-components> 191 <activity> 192 <intent-filter> 193 <action name="android.intent.action.DIAL" /> 194 </intent-filter> 195 </activity> 196 <activity> 197 <intent-filter> 198 <action name="android.intent.action.DIAL" /> 199 <data scheme="tel" /> 200 </intent-filter> 201 </activity> 202 </required-components> 203 <permissions> 204 <permission-set name="phone" /> 205 <permission-set name="contacts" /> 206 <permission-set name="sms" /> 207 <permission-set name="microphone" /> 208 <permission-set name="camera" /> 209 </permissions> 210 <app-op-permissions> 211 <app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" /> 212 </app-op-permissions> 213 <app-ops> 214 <!-- 215 ~ @see com.android.settings.applications.defaultapps.DefaultPhonePicker#setDefaultKey(String) 216 ~ @see com.android.settings.fuelgauge.BatteryUtils#setForceAppStandby(int, String, int) 217 --> 218 <app-op name="android:run_in_background" maxTargetSdkVersion="25" mode="allowed" /> 219 <app-op name="android:run_any_in_background" mode="allowed" /> 220 </app-ops> 221 <preferred-activities> 222 <preferred-activity> 223 <activity> 224 <intent-filter> 225 <action name="android.intent.action.DIAL" /> 226 </intent-filter> 227 </activity> 228 <intent-filter> 229 <action name="android.intent.action.DIAL" /> 230 </intent-filter> 231 </preferred-activity> 232 <preferred-activity> 233 <activity> 234 <intent-filter> 235 <action name="android.intent.action.DIAL" /> 236 <data scheme="tel" /> 237 </intent-filter> 238 </activity> 239 <intent-filter> 240 <action name="android.intent.action.DIAL" /> 241 <data scheme="tel" /> 242 </intent-filter> 243 </preferred-activity> 244 </preferred-activities> 245 </role> 246 247 <!-- 248 ~ @see com.android.settings.applications.defaultapps.DefaultSmsPreferenceController 249 ~ @see com.android.settings.applications.defaultapps.DefaultSmsPicker 250 ~ @see com.android.internal.telephony.SmsApplication 251 ~ @see com.android.server.pm.permission.DefaultPermissionGrantPolicy.grantDefaultPermissionsToDefaultSmsApp(String, int) 252 --> 253 <role 254 name="android.app.role.SMS" 255 behavior="SmsRoleBehavior" 256 defaultHolders="config_defaultSms" 257 description="@string/role_sms_description" 258 exclusive="true" 259 label="@string/role_sms_label" 260 requestDescription="@string/role_sms_request_description" 261 requestTitle="@string/role_sms_request_title" 262 searchKeywords="@string/role_sms_search_keywords" 263 shortLabel="@string/role_sms_short_label"> 264 <required-components> 265 <receiver permission="android.permission.BROADCAST_SMS"> 266 <intent-filter> 267 <action name="android.provider.Telephony.SMS_DELIVER" /> 268 </intent-filter> 269 </receiver> 270 <receiver permission="android.permission.BROADCAST_WAP_PUSH"> 271 <intent-filter> 272 <action name="android.provider.Telephony.WAP_PUSH_DELIVER" /> 273 <data mimeType="application/vnd.wap.mms-message" /> 274 </intent-filter> 275 </receiver> 276 <service permission="android.permission.SEND_RESPOND_VIA_MESSAGE"> 277 <intent-filter> 278 <action name="android.intent.action.RESPOND_VIA_MESSAGE" /> 279 <data scheme="smsto" /> 280 </intent-filter> 281 </service> 282 <activity> 283 <intent-filter> 284 <action name="android.intent.action.SENDTO" /> 285 <data scheme="smsto" /> 286 </intent-filter> 287 </activity> 288 </required-components> 289 <permissions> 290 <permission-set name="phone" /> 291 <permission-set name="contacts" /> 292 <permission-set name="sms" /> 293 <permission-set name="storage" /> 294 <permission-set name="microphone" /> 295 <permission-set name="camera" /> 296 <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" minSdkVersion="31" /> 297 </permissions> 298 <app-ops> 299 <app-op name="android:write_sms" mode="allowed" /> 300 <!-- 301 ~ @see com.android.settings.applications.defaultapps.DefaultSmsPicker#setDefaultKey(String) 302 ~ @see com.android.settings.fuelgauge.BatteryUtils#setForceAppStandby(int, String, int) 303 --> 304 <app-op name="android:run_in_background" maxTargetSdkVersion="25" mode="allowed" /> 305 <app-op name="android:run_any_in_background" mode="allowed" /> 306 <app-op name="android:read_device_identifiers" mode="allowed" /> 307 </app-ops> 308 <preferred-activities> 309 <preferred-activity> 310 <activity> 311 <intent-filter> 312 <action name="android.intent.action.SENDTO" /> 313 <data scheme="smsto" /> 314 </intent-filter> 315 </activity> 316 <intent-filter> 317 <action name="android.intent.action.SENDTO" /> 318 <data scheme="sms" /> 319 </intent-filter> 320 <intent-filter> 321 <action name="android.intent.action.SENDTO" /> 322 <data scheme="smsto" /> 323 </intent-filter> 324 <intent-filter> 325 <action name="android.intent.action.SENDTO" /> 326 <data scheme="mms" /> 327 </intent-filter> 328 <intent-filter> 329 <action name="android.intent.action.SENDTO" /> 330 <data scheme="mmsto" /> 331 </intent-filter> 332 </preferred-activity> 333 </preferred-activities> 334 </role> 335 336 <!--- 337 ~ @see com.android.settings.applications.defaultapps.DefaultEmergencyPreferenceController 338 ~ @see com.android.settings.applications.defaultapps.DefaultEmergencyPicker 339 ~ @see com.android.phone.EmergencyAssistanceHelper 340 --> 341 <role 342 name="android.app.role.EMERGENCY" 343 behavior="EmergencyRoleBehavior" 344 description="@string/role_emergency_description" 345 exclusive="true" 346 label="@string/role_emergency_label" 347 requestDescription="@string/role_emergency_request_description" 348 requestTitle="@string/role_emergency_request_title" 349 searchKeywords="@string/role_emergency_search_keywords" 350 shortLabel="@string/role_emergency_short_label" 351 systemOnly="true"> 352 <required-components> 353 <activity> 354 <intent-filter> 355 <action name="android.telephony.action.EMERGENCY_ASSISTANCE" /> 356 </intent-filter> 357 </activity> 358 </required-components> 359 <permissions> 360 <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" minSdkVersion="31" /> 361 <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" minSdkVersion="31" /> 362 </permissions> 363 </role> 364 365 <!--- 366 ~ @see com.android.settings.applications.defaultapps.DefaultHomePreferenceController 367 ~ @see com.android.settings.applications.defaultapps.DefaultHomePicker 368 ~ @see com.android.server.pm.PackageManagerService#setHomeActivity(ComponentName, int) 369 --> 370 <role 371 name="android.app.role.HOME" 372 behavior="HomeRoleBehavior" 373 description="@string/role_home_description" 374 exclusive="true" 375 label="@string/role_home_label" 376 requestDescription="@string/role_home_request_description" 377 requestTitle="@string/role_home_request_title" 378 searchKeywords="@string/role_home_search_keywords" 379 shortLabel="@string/role_home_short_label"> 380 <!-- Also used by HomeRoleBehavior.getFallbackHolder(). --> 381 <required-components> 382 <activity> 383 <intent-filter> 384 <action name="android.intent.action.MAIN" /> 385 <category name="android.intent.category.HOME" /> 386 </intent-filter> 387 </activity> 388 </required-components> 389 <preferred-activities> 390 <preferred-activity> 391 <activity> 392 <intent-filter> 393 <action name="android.intent.action.MAIN" /> 394 <category name="android.intent.category.HOME" /> 395 </intent-filter> 396 </activity> 397 <intent-filter> 398 <action name="android.intent.action.MAIN" /> 399 <category name="android.intent.category.HOME" /> 400 </intent-filter> 401 </preferred-activity> 402 </preferred-activities> 403 </role> 404 405 <!--- @see android.telecom.CallRedirectionService --> 406 <role 407 name="android.app.role.CALL_REDIRECTION" 408 defaultHolders="config_defaultCallRedirection" 409 description="@string/role_call_redirection_description" 410 exclusive="true" 411 label="@string/role_call_redirection_label" 412 requestDescription="@string/role_call_redirection_request_description" 413 requestTitle="@string/role_call_redirection_request_title" 414 shortLabel="@string/role_call_redirection_short_label" 415 showNone="true"> 416 <required-components> 417 <service permission="android.permission.BIND_CALL_REDIRECTION_SERVICE"> 418 <intent-filter> 419 <action name="android.telecom.CallRedirectionService" /> 420 </intent-filter> 421 </service> 422 </required-components> 423 </role> 424 425 <!--- @see android.telecom.CallScreeningService --> 426 <role 427 name="android.app.role.CALL_SCREENING" 428 defaultHolders="config_defaultCallScreening" 429 description="@string/role_call_screening_description" 430 exclusive="true" 431 label="@string/role_call_screening_label" 432 requestDescription="@string/role_call_screening_request_description" 433 requestTitle="@string/role_call_screening_request_title" 434 shortLabel="@string/role_call_screening_short_label" 435 showNone="true"> 436 <required-components> 437 <service permission="android.permission.BIND_SCREENING_SERVICE"> 438 <intent-filter> 439 <action name="android.telecom.CallScreeningService" /> 440 </intent-filter> 441 </service> 442 </required-components> 443 <app-op-permissions> 444 <app-op-permission name="android.permission.SYSTEM_ALERT_WINDOW" /> 445 </app-op-permissions> 446 </role> 447 448 <role 449 name="android.app.role.SYSTEM_GALLERY" 450 defaultHolders="config_systemGallery" 451 exclusive="true" 452 static="true" 453 systemOnly="true" 454 visible="false"> 455 <permissions> 456 <permission-set name="storage" /> 457 <permission name="android.permission.ACCESS_MEDIA_LOCATION" /> 458 <permission name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" minSdkVersion="31" /> 459 </permissions> 460 <app-ops> 461 <app-op name="android:write_media_images" mode="allowed" /> 462 <app-op name="android:write_media_video" mode="allowed" /> 463 </app-ops> 464 </role> 465 466 <role 467 name="android.app.role.SYSTEM_AUTOMOTIVE_CLUSTER" 468 behavior="SystemAutomotiveClusterRoleBehavior" 469 defaultHolders="config_systemAutomotiveCluster" 470 exclusive="true" 471 minSdkVersion="31" 472 static="true" 473 systemOnly="true" 474 visible="false"> 475 <permissions> 476 <permission name="android.permission.ANSWER_PHONE_CALLS" /> 477 <permission name="android.permission.READ_CALL_LOG" /> 478 <permission name="android.permission.READ_CONTACTS" /> 479 <permission name="android.car.permission.CAR_ENERGY"/> 480 </permissions> 481 </role> 482 483 <role 484 name="android.app.role.COMPANION_DEVICE_WATCH" 485 behavior="CompanionDeviceWatchRoleBehavior" 486 description="@string/role_watch_description" 487 exclusive="false" 488 minSdkVersion="31" 489 overrideUserWhenGranting="false" 490 systemOnly="false" 491 visible="false"> 492 <permissions> 493 <permission-set name="calendar" /> 494 <permission-set name="phone" /> 495 <permission-set name="sms" /> 496 <permission-set name="contacts" /> 497 <permission-set name="nearby_devices" /> 498 </permissions> 499 <app-op-permissions> 500 <app-op-permission name="android.permission.MANAGE_ONGOING_CALLS" /> 501 <app-op-permission name="android.permission.USE_ICC_AUTH_WITH_DEVICE_IDENTIFIER" /> 502 </app-op-permissions> 503 </role> 504 505 <role 506 name="android.app.role.SYSTEM_AUTOMOTIVE_PROJECTION" 507 defaultHolders="config_systemAutomotiveProjection" 508 exclusive="false" 509 minSdkVersion="31" 510 static="true" 511 systemOnly="true" 512 visible="false"> 513 <permissions> 514 <permission-set name="microphone" /> 515 <permission-set name="location" /> 516 <permission-set name="nearby_devices" /> 517 <permission name="android.permission.CALL_PHONE" /> 518 <permission name="android.permission.READ_CALENDAR" /> 519 <permission name="android.permission.READ_CALL_LOG" /> 520 <permission name="android.permission.READ_CONTACTS" /> 521 <permission name="android.permission.READ_PHONE_STATE" /> 522 <permission name="android.permission.RECEIVE_SMS" /> 523 <permission name="android.permission.SEND_SMS" /> 524 </permissions> 525 </role> 526 527 <role 528 name="android.app.role.SYSTEM_SHELL" 529 behavior="SystemShellRoleBehavior" 530 defaultHolders="config_systemShell" 531 exclusive="true" 532 minSdkVersion="31" 533 static="true" 534 systemOnly="true" 535 visible="false"> 536 <permissions> 537 <!-- Used for CTS testing --> 538 <permission name="android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE" /> 539 <permission name="android.permission.PERFORM_IMS_SINGLE_REGISTRATION" /> 540 <permission name="android.permission.BACKGROUND_CAMERA" /> 541 <permission name="android.permission.RECORD_BACKGROUND_AUDIO" /> 542 <permission name="android.permission.BYPASS_ROLE_QUALIFICATION" /> 543 <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" /> 544 <permission name="android.permission.MANAGE_SENSOR_PRIVACY" /> 545 <permission name="android.permission.READ_GLOBAL_APP_SEARCH_DATA" /> 546 </permissions> 547 </role> 548 549 <role 550 name="android.app.role.SYSTEM_CONTACTS" 551 defaultHolders="config_systemContacts" 552 exclusive="true" 553 minSdkVersion="31" 554 static="true" 555 systemOnly="true" 556 visible="false"> 557 <permissions> 558 <permission name="android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE" /> 559 </permissions> 560 </role> 561 562 <role 563 name="android.app.role.SYSTEM_SPEECH_RECOGNIZER" 564 defaultHolders="config_systemSpeechRecognizer" 565 exclusive="true" 566 minSdkVersion="31" 567 static="true" 568 systemOnly="true" 569 visible="false"> 570 <permissions> 571 <permission name="android.permission.RECORD_AUDIO" /> 572 <permission name="android.permission.UPDATE_APP_OPS_STATS" /> 573 </permissions> 574 <required-components> 575 <service> 576 <intent-filter> 577 <action name="android.speech.RecognitionService" /> 578 </intent-filter> 579 </service> 580 </required-components> 581 </role> 582 583 <role 584 name="android.app.role.SYSTEM_WIFI_COEX_MANAGER" 585 defaultHolders="config_systemWifiCoexManager" 586 exclusive="true" 587 minSdkVersion="31" 588 static="true" 589 systemOnly="true" 590 visible="false"> 591 <permissions> 592 <permission name="android.permission.WIFI_ACCESS_COEX_UNSAFE_CHANNELS" /> 593 <permission name="android.permission.WIFI_UPDATE_COEX_UNSAFE_CHANNELS" /> 594 </permissions> 595 </role> 596 597 <role 598 name="android.app.role.SYSTEM_WELLBEING" 599 defaultHolders="config_systemWellbeing" 600 exclusive="true" 601 minSdkVersion="31" 602 static="true" 603 systemOnly="true" 604 visible="false" > 605 <permissions> 606 <permission name="android.permission.ACCESS_INSTANT_APPS"/> 607 <permission name="android.permission.SUSPEND_APPS"/> 608 <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY"/> 609 </permissions> 610 </role> 611 612 <!--- 613 ~ A role for the notification handler on TV devices. 614 ~ Note: on TV devices that have the Dashboard screen, the holder for this role is responsible 615 ~ for it, which is why it needs OBSERVE_SENSOR_PRIVACY permission (the Dashboard displays 616 ~ the state of the privacy sensors). 617 --> 618 <role 619 name="android.app.role.SYSTEM_TELEVISION_NOTIFICATION_HANDLER" 620 behavior="TelevisionRoleBehavior" 621 defaultHolders="config_systemTelevisionNotificationHandler" 622 exclusive="true" 623 minSdkVersion="31" 624 static="true" 625 systemOnly="true" 626 visible="false"> 627 <permissions> 628 <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" /> 629 </permissions> 630 </role> 631 632 <!--- 633 A role for the system package that is allowed to create CompanionDeviceManager associations 634 based on user consent to allow the associated app to manage the associated device. 635 --> 636 <role 637 name="android.app.role.SYSTEM_COMPANION_DEVICE_PROVIDER" 638 defaultHolders="config_systemCompanionDeviceProvider" 639 exclusive="true" 640 minSdkVersion="31" 641 static="true" 642 systemOnly="true" 643 visible="false" > 644 <permissions> 645 <permission name="android.permission.ASSOCIATE_COMPANION_DEVICES"/> 646 </permissions> 647 </role> 648 649 <!--- 650 ~ A role for the system package that provides privacy-preserving intelligent processor for 651 ~ system UI features. 652 ~ 653 ~ A package holding this role MUST comply with requirements outlined in the Android CDD 654 ~ section "9.8.6 Content Capture". 655 ~ Example link for Android 11: 656 ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture 657 ~ 658 ~ In addition, packages MUST NOT: 659 ~ - Request INTERNET permission. Instead packages MUST access the internet through 660 ~ well-defined APIs in an open source project. 661 ~ - Perform direct binds to other applications, except the following system packages: 662 ~ - Bluetooth 663 ~ - Contacts 664 ~ - Media 665 ~ - Telephony 666 ~ - System UI 667 ~ - Component providing internet APIs (see above) 668 ~ To achieve this packages MUST set up explicit <allow-association> configuration in the 669 ~ system config. 670 --> 671 <role 672 name="android.app.role.SYSTEM_UI_INTELLIGENCE" 673 defaultHolders="config_systemUiIntelligence" 674 exclusive="true" 675 minSdkVersion="31" 676 static="true" 677 systemOnly="true" 678 visible="false"> 679 <permissions> 680 <permission name="android.permission.ACCESS_SHORTCUTS" /> 681 <permission name="android.permission.BLUETOOTH_CONNECT" /> 682 <permission name="android.permission.BLUETOOTH_SCAN" /> 683 <permission name="android.permission.MANAGE_APP_PREDICTIONS" /> 684 <permission name="android.permission.UNLIMITED_SHORTCUTS_API_CALLS" /> 685 <permission name="android.permission.MANAGE_SEARCH_UI" /> 686 <permission name="android.permission.READ_EXTERNAL_STORAGE" /> 687 <permission name="android.permission.READ_PEOPLE_DATA" /> 688 <permission name="android.permission.READ_GLOBAL_APP_SEARCH_DATA" /> 689 </permissions> 690 </role> 691 692 <!--- 693 ~ A role for the system package that provides on-device intelligent processor for ambient 694 ~ audio. 695 ~ 696 ~ A package holding this role MUST comply with requirements outlined in the Android CDD 697 ~ section "9.8.6 Content Capture". 698 ~ Example link for Android 11: 699 ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture 700 ~ 701 ~ In addition, packages MUST NOT: 702 ~ - Request INTERNET permission. Instead packages MUST access the internet through 703 ~ well-defined APIs in an open source project. 704 ~ - Perform direct binds to other applications, except the following system packages: 705 ~ - Bluetooth 706 ~ - Contacts 707 ~ - Media 708 ~ - Telephony 709 ~ - System UI 710 ~ - Component providing internet APIs (see above) 711 ~ To achieve this packages MUST set up explicit <allow-association> configuration in the 712 ~ system config. 713 --> 714 <role 715 name="android.app.role.SYSTEM_AMBIENT_AUDIO_INTELLIGENCE" 716 defaultHolders="config_systemAmbientAudioIntelligence" 717 exclusive="true" 718 minSdkVersion="31" 719 static="true" 720 systemOnly="true" 721 visible="false"> 722 <permissions> 723 <permission name="android.permission.CAPTURE_AUDIO_OUTPUT" /> 724 <permission name="android.permission.CAPTURE_MEDIA_OUTPUT" /> 725 <permission name="android.permission.CAPTURE_VOICE_COMMUNICATION_OUTPUT" /> 726 <permission name="android.permission.MODIFY_AUDIO_ROUTING" /> 727 <permission name="android.permission.RECORD_AUDIO" /> 728 <permission name="android.permission.CAPTURE_AUDIO_HOTWORD" /> 729 <permission name="android.permission.EXEMPT_FROM_AUDIO_RECORD_RESTRICTIONS" /> 730 <permission name="android.permission.MANAGE_SOUND_TRIGGER" /> 731 <permission name="android.permission.LOCATION_HARDWARE" /> 732 <permission name="android.permission.MANAGE_MUSIC_RECOGNITION" /> 733 <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" /> 734 </permissions> 735 </role> 736 737 <!--- 738 ~ A role for the system package that provides on-device intelligent processor for audio. 739 ~ 740 ~ A package holding this role MUST comply with requirements outlined in the Android CDD 741 ~ section "9.8.6 Content Capture". 742 ~ Example link for Android 11: 743 ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture 744 ~ 745 ~ In addition, packages MUST NOT: 746 ~ - Request INTERNET permission. Instead packages MUST access the internet through 747 ~ well-defined APIs in an open source project. 748 ~ - Perform direct binds to other applications, except the following system packages: 749 ~ - Bluetooth 750 ~ - Contacts 751 ~ - Media 752 ~ - Telephony 753 ~ - System UI 754 ~ - Component providing internet APIs (see above) 755 ~ To achieve this packages MUST set up explicit <allow-association> configuration in the 756 ~ system config. 757 --> 758 <role 759 name="android.app.role.SYSTEM_AUDIO_INTELLIGENCE" 760 defaultHolders="config_systemAudioIntelligence" 761 exclusive="true" 762 minSdkVersion="31" 763 static="true" 764 systemOnly="true" 765 visible="false"> 766 <permissions> 767 <permission name="android.permission.CAPTURE_AUDIO_OUTPUT" /> 768 <permission name="android.permission.CAPTURE_MEDIA_OUTPUT" /> 769 <permission name="android.permission.CAPTURE_VOICE_COMMUNICATION_OUTPUT" /> 770 <permission name="android.permission.CONTROL_INCALL_EXPERIENCE" /> 771 <permission name="android.permission.MODIFY_AUDIO_ROUTING" /> 772 <permission name="android.permission.MODIFY_PHONE_STATE" /> 773 <permission name="android.permission.RECORD_AUDIO" /> 774 <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" /> 775 </permissions> 776 </role> 777 778 <!--- 779 ~ A role for the system package that provides on-device intelligent processor for 780 ~ notifications. 781 ~ 782 ~ A package holding this role MUST comply with requirements outlined in the Android CDD 783 ~ section "9.8.6 Content Capture". 784 ~ Example link for Android 11: 785 ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture 786 ~ 787 ~ In addition, packages MUST NOT: 788 ~ - Request INTERNET permission. Instead packages MUST access the internet through 789 ~ well-defined APIs in an open source project. 790 ~ - Perform direct binds to other applications, except the following system packages: 791 ~ - Bluetooth 792 ~ - Contacts 793 ~ - Media 794 ~ - Telephony 795 ~ - System UI 796 ~ - Component providing internet APIs (see above) 797 ~ To achieve this packages MUST set up explicit <allow-association> configuration in the 798 ~ system config. 799 --> 800 <role 801 name="android.app.role.SYSTEM_NOTIFICATION_INTELLIGENCE" 802 defaultHolders="config_systemNotificationIntelligence" 803 exclusive="true" 804 minSdkVersion="31" 805 static="true" 806 systemOnly="true" 807 visible="false"> 808 <permissions> 809 <permission name="android.permission.REQUEST_NOTIFICATION_ASSISTANT_SERVICE" /> 810 <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" /> 811 </permissions> 812 </role> 813 814 <!--- 815 ~ A role for the system package that provides on-device intelligent processor for text. 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_TEXT_INTELLIGENCE" 837 defaultHolders="config_systemTextIntelligence" 838 exclusive="true" 839 minSdkVersion="31" 840 static="true" 841 systemOnly="true" 842 visible="false"> 843 <permissions> 844 <permission name="android.permission.MANAGE_UI_TRANSLATION" /> 845 <permission name="android.permission.SYSTEM_APPLICATION_OVERLAY" /> 846 </permissions> 847 </role> 848 849 <!--- 850 ~ A role for the system package that provides on-device intelligent processor for visual 851 ~ features. 852 ~ 853 ~ A package holding this role MUST comply with requirements outlined in the Android CDD 854 ~ section "9.8.6 Content Capture". 855 ~ Example link for Android 11: 856 ~ https://source.android.com/compatibility/11/android-11-cdd#9_8_6_content_capture 857 ~ 858 ~ In addition, packages MUST NOT: 859 ~ - Request INTERNET permission. Instead packages MUST access the internet through 860 ~ well-defined APIs in an open source project. 861 ~ - Perform direct binds to other applications, except the following system packages: 862 ~ - Bluetooth 863 ~ - Contacts 864 ~ - Media 865 ~ - Telephony 866 ~ - System UI 867 ~ - Component providing internet APIs (see above) 868 ~ To achieve this packages MUST set up explicit <allow-association> configuration in the 869 ~ system config. 870 --> 871 <role 872 name="android.app.role.SYSTEM_VISUAL_INTELLIGENCE" 873 defaultHolders="config_systemVisualIntelligence" 874 exclusive="true" 875 minSdkVersion="31" 876 static="true" 877 systemOnly="true" 878 visible="false"> 879 <permissions> 880 <permission name="android.permission.CAMERA" /> 881 <permission name="android.permission.SYSTEM_CAMERA" /> 882 <permission name="android.permission.UPDATE_DEVICE_STATS" /> 883 <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" /> 884 </permissions> 885 </role> 886 887 <!--- 888 ~ A role for the system package that serves as the activity recognizer on the device. 889 ~ This is the application that provides the data behind the activity recognition 890 ~ runtime permission. 891 --> 892 <role 893 name="android.app.role.SYSTEM_ACTIVITY_RECOGNIZER" 894 allowBypassingQualification="true" 895 defaultHolders="config_systemActivityRecognizer" 896 exclusive="false" 897 static="true" 898 systemOnly="true" 899 visible="false"> 900 <required-components> 901 <service> 902 <intent-filter> 903 <action name="android.intent.action.ACTIVITY_RECOGNIZER" /> 904 </intent-filter> 905 </service> 906 </required-components> 907 </role> 908 909 <!--- 910 ~ A role for the system UI package. 911 --> 912 <role 913 name="android.app.role.SYSTEM_UI" 914 defaultHolders="config_systemUi" 915 exclusive="true" 916 minSdkVersion="31" 917 static="true" 918 systemOnly="true" 919 visible="false"> 920 <permissions> 921 <permission name="android.permission.MANAGE_SENSOR_PRIVACY" /> 922 <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" /> 923 </permissions> 924 </role> 925 926 <!--- 927 ~ A role for the package responsible for interacting with a TV remote. 928 --> 929 <role 930 name="android.app.role.SYSTEM_TELEVISION_REMOTE_SERVICE" 931 behavior="TelevisionRoleBehavior" 932 defaultHolders="config_systemTelevisionRemoteService" 933 exclusive="true" 934 minSdkVersion="31" 935 static="true" 936 systemOnly="true" 937 visible="false"> 938 <permissions> 939 <permission name="android.permission.OBSERVE_SENSOR_PRIVACY" /> 940 </permissions> 941 </role> 942 943</roles> 944