1<?xml version="1.0" encoding="utf-8"?> 2<!-- Copyright (C) 2015 The Android Open Source Project 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15--> 16 17<manifest xmlns:android="http://schemas.android.com/apk/res/android" 18 xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" 19 package="com.android.car" 20 coreApp="true" 21 android:sharedUserId="android.uid.system"> 22 23 <original-package android:name="com.android.car" /> 24 25 <!-- Used for runtime permissions related to monitoring vehicle information. --> 26 <permission-group 27 android:name="android.car.permission-group.CAR_MONITORING" 28 android:icon="@drawable/perm_group_car" 29 android:description="@string/car_permission_desc" 30 android:label="@string/car_permission_label" /> 31 32 <!-- Allows an application to read the vehicle energy information. 33 <p>Protection level: dangerous 34 --> 35 <permission 36 android:name="android.car.permission.CAR_ENERGY" 37 android:permissionGroup="android.car.permission-group.CAR_MONITORING" 38 android:protectionLevel="dangerous" 39 android:label="@string/car_permission_label_energy" 40 android:description="@string/car_permission_desc_energy" /> 41 42 <!-- Allows an application to read the VIN information. 43 <p>Protection level: signature|privileged 44 --> 45 <permission 46 android:name="android.car.permission.CAR_IDENTIFICATION" 47 android:protectionLevel="signature|privileged" 48 android:label="@string/car_permission_label_car_identification" 49 android:description="@string/car_permission_desc_car_identification" /> 50 51 <!-- Allows an application to control the vehicle HVAC. 52 <p>Protection level: signature|privileged 53 --> 54 <permission 55 android:name="android.car.permission.CONTROL_CAR_CLIMATE" 56 android:protectionLevel="signature|privileged" 57 android:label="@string/car_permission_label_hvac" 58 android:description="@string/car_permission_desc_hvac" /> 59 60 <!-- Allows an application to control the vehicle doors. 61 <p>Protection level: signature|privileged 62 --> 63 <permission 64 android:name="android.car.permission.CONTROL_CAR_DOORS" 65 android:protectionLevel="signature|privileged" 66 android:label="@string/car_permission_label_control_car_doors" 67 android:description="@string/car_permission_desc_control_car_doors" /> 68 69 <!-- Allows an application to control the vehicle windows. 70 <p>Protection level: signature|privileged 71 --> 72 <permission 73 android:name="android.car.permission.CONTROL_CAR_WINDOWS" 74 android:protectionLevel="signature|privileged" 75 android:label="@string/car_permission_label_control_car_windows" 76 android:description="@string/car_permission_desc_control_car_windows" /> 77 78 <!-- Allows an application to control the vehicle mirrors. 79 <p>Protection level: signature|privileged 80 --> 81 <permission 82 android:name="android.car.permission.CONTROL_CAR_MIRRORS" 83 android:protectionLevel="signature|privileged" 84 android:label="@string/car_permission_label_control_car_mirrors" 85 android:description="@string/car_permission_desc_control_car_mirrors" /> 86 87 <!-- Allows an application to control the vehicle seats. 88 <p>Protection level: signature|privileged 89 --> 90 <permission 91 android:name="android.car.permission.CONTROL_CAR_SEATS" 92 android:protectionLevel="signature|privileged" 93 android:label="@string/car_permission_label_control_car_seats" 94 android:description="@string/car_permission_desc_control_car_seats" /> 95 96 <!-- Allows an application to read the vehicle mileage information. 97 <p>Protection level: signature|privileged 98 --> 99 <permission 100 android:name="android.car.permission.CAR_MILEAGE" 101 android:protectionLevel="signature|privileged" 102 android:label="@string/car_permission_label_mileage" 103 android:description="@string/car_permission_desc_mileage" /> 104 105 <!-- Allows an application to read the vehicle tire pressure information. 106 <p>Protection level: signature|privileged 107 --> 108 <permission 109 android:name="android.car.permission.CAR_TIRES" 110 android:protectionLevel="signature|privileged" 111 android:label="@string/car_permission_label_car_tires" 112 android:description="@string/car_permission_desc_car_tires" /> 113 114 <!-- Allows an application to read the vehicle steering angle information. 115 <p>Protection level: signature|privileged 116 --> 117 <permission 118 android:name="android.car.permission.READ_CAR_STEERING" 119 android:protectionLevel="signature|privileged" 120 android:label="@string/car_permission_label_car_steering" 121 android:description="@string/car_permission_desc_car_steering" /> 122 123 <!-- Allows an application to read the display units for distance, fuel, tire pressure, 124 EV battery and fuel consumption. 125 <p>Protection level: normal 126 --> 127 <permission 128 android:name="android.car.permission.READ_CAR_DISPLAY_UNITS" 129 android:protectionLevel="normal" 130 android:label="@string/car_permission_label_read_car_display_units" 131 android:description="@string/car_permission_desc_read_car_display_units" /> 132 133 <!-- Allows an application to control the display units for distance, fuel, tire pressure, 134 EV battery and fuel consumption. 135 <p>Protection level: normal 136 --> 137 <permission 138 android:name="android.car.permission.CONTROL_CAR_DISPLAY_UNITS" 139 android:protectionLevel="normal" 140 android:label="@string/car_permission_label_control_car_display_units" 141 android:description="@string/car_permission_desc_control_car_display_units" /> 142 143 <!-- Allows an application to read the vehicle speed. 144 <p>Protection level: dangerous 145 --> 146 <permission 147 android:name="android.car.permission.CAR_SPEED" 148 android:permissionGroup="android.permission-group.LOCATION" 149 android:protectionLevel="dangerous" 150 android:label="@string/car_permission_label_speed" 151 android:description="@string/car_permission_desc_speed" /> 152 153 <!-- Allows an application to read the vehicle fuel and charge port status. 154 <p>Protection level: normal 155 --> 156 <permission 157 android:name="android.car.permission.CAR_ENERGY_PORTS" 158 android:protectionLevel="normal" 159 android:label="@string/car_permission_label_car_energy_ports" 160 android:description="@string/car_permission_desc_car_energy_ports" /> 161 162 <!-- Allows an application to read the vehicle engine information. For example, it allows an 163 application to read the engine oil level, oil temperature, coolant temperature and RPM. 164 <p>Protection level: signature|privileged 165 --> 166 <permission 167 android:name="android.car.permission.CAR_ENGINE_DETAILED" 168 android:protectionLevel="signature|privileged" 169 android:label="@string/car_permission_label_car_engine_detailed" 170 android:description="@string/car_permission_desc_car_engine_detailed" /> 171 172 <!-- Allows an application to read the vehicle dynamic state information. For example, it 173 allows an application to read the ABS and traction control status. 174 <p>Protection level: signature|privileged 175 --> 176 <permission 177 android:name="android.car.permission.CAR_DYNAMICS_STATE" 178 android:protectionLevel="signature|privileged" 179 android:label="@string/car_permission_label_vehicle_dynamics_state" 180 android:description="@string/car_permission_desc_vehicle_dynamics_state" /> 181 182 <!-- Allows an application to access the vehicle vendor channel to exchange vendor-specific information. 183 <p>Protection level: signature|privileged 184 --> 185 <permission 186 android:name="android.car.permission.CAR_VENDOR_EXTENSION" 187 android:protectionLevel="signature|privileged" 188 android:label="@string/car_permission_label_vendor_extension" 189 android:description="@string/car_permission_desc_vendor_extension" /> 190 191 <!-- Allows an application to project an interface from a phone to the vehicle display. 192 <p>Protection level: signature|privileged 193 --> 194 <permission 195 android:name="android.car.permission.CAR_PROJECTION" 196 android:protectionLevel="signature|privileged" 197 android:label="@string/car_permission_label_projection" 198 android:description="@string/car_permission_desc_projection" /> 199 200 <!-- Allows an application to get the status of other applications projecting to the vehicle display. 201 technologies status changes. 202 <p>Protection level: signature|privileged 203 --> 204 <permission 205 android:name="android.car.permission.ACCESS_CAR_PROJECTION_STATUS" 206 android:protectionLevel="signature|privileged" 207 android:label="@string/car_permission_label_access_projection_status" 208 android:description="@string/car_permission_desc_access_projection_status" /> 209 210 <!-- Must be required by projection service to ensure only system can bind to it. 211 <p>Protection level: signature 212 --> 213 <permission 214 android:name="android.car.permission.BIND_PROJECTION_SERVICE" 215 android:protectionLevel="signature" 216 android:label="@string/car_permission_label_bind_projection_service" 217 android:description="@string/car_permission_desc_bind_projection_service" /> 218 219 <!-- Allows an application to emulate the vehicle HAL for testing purposes. 220 <p>Protection level: signature|privileged 221 --> 222 <permission 223 android:name="android.car.permission.CAR_MOCK_VEHICLE_HAL" 224 android:protectionLevel="signature|privileged" 225 android:label="@string/car_permission_label_mock_vehicle_hal" 226 android:description="@string/car_permission_desc_mock_vehicle_hal" /> 227 228 <!-- Allows an application to read the vehicle car basic information. For example, it allows 229 an application to read the vehicle Make, Model, Model Year, fuel capacity, fuel type, 230 EV battery capacity, EV connection type, fuel door location and driver seat location. 231 <p>Protection level: normal 232 --> 233 <permission 234 android:name="android.car.permission.CAR_INFO" 235 android:protectionLevel="normal" 236 android:label="@string/car_permission_label_car_info" 237 android:description="@string/car_permission_desc_car_info" /> 238 239 <!-- Allows an application to read the vehicle exterior environment information. For example, 240 it allows an application to read the vehicle exterior temperature and night mode status. 241 <p>Protection level: normal 242 --> 243 <permission 244 android:name="android.car.permission.CAR_EXTERIOR_ENVIRONMENT" 245 android:protectionLevel="normal" 246 android:label="@string/car_permission_label_car_exterior_environment" 247 android:description="@string/car_permission_desc_car_exterior_environment" /> 248 249 <!-- Allows an application to read the vehicle exterior lights state. 250 <p>Protection level: signature|privileged 251 --> 252 <permission 253 android:name="android.car.permission.CAR_EXTERIOR_LIGHTS" 254 android:protectionLevel="signature|privileged" 255 android:label="@string/car_permission_label_car_exterior_lights" 256 android:description="@string/car_permission_desc_car_exterior_lights" /> 257 258 <!-- Allows an application to control the vehicle exterior lights. 259 <p>Protection level: signature|privileged 260 --> 261 <permission 262 android:name="android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS" 263 android:protectionLevel="signature|privileged" 264 android:label="@string/car_permission_label_control_car_exterior_lights" 265 android:description="@string/car_permission_desc_control_car_exterior_lights" /> 266 267 <!-- Allows an application to read the vehicle interior lights state. 268 <p>Protection level: signature|privileged 269 --> 270 <permission 271 android:name="android.car.permission.READ_CAR_INTERIOR_LIGHTS" 272 android:protectionLevel="signature|privileged" 273 android:label="@string/car_permission_label_car_interior_lights" 274 android:description="@string/car_permission_desc_car_interior_lights" /> 275 276 <!-- Allows an application to control the vehicle interior lights state. 277 <p>Protection level: signature|privileged 278 --> 279 <permission 280 android:name="android.car.permission.CONTROL_CAR_INTERIOR_LIGHTS" 281 android:protectionLevel="signature|privileged" 282 android:label="@string/car_permission_label_control_car_interior_lights" 283 android:description="@string/car_permission_desc_control_car_interior_lights" /> 284 285 <!-- Allows an application to control the vehicle power state. 286 <p>Protection level: signature|privileged 287 --> 288 <permission 289 android:name="android.car.permission.CAR_POWER" 290 android:protectionLevel="signature|privileged" 291 android:label="@string/car_permission_label_car_power" 292 android:description="@string/car_permission_desc_car_power" /> 293 294 <!-- Allows an application to read the vehicle powertrain information. For example, it allows 295 an application to read the vehicle current gear, ignition state or parking break status. 296 <p>Protection level: normal 297 --> 298 <permission 299 android:name="android.car.permission.CAR_POWERTRAIN" 300 android:protectionLevel="normal" 301 android:label="@string/car_permission_label_car_powertrain" 302 android:description="@string/car_permission_desc_car_powertrain" /> 303 304 <!-- Allows an application to access {@link android.car.navigation.CarNavigationStatusManager} 305 to report navigation data. This information may be displayed by the vehicle in the 306 instrument cluster, head-up display or other locations. 307 <p>Protection level: signature|privileged 308 --> 309 <permission 310 android:name="android.car.permission.CAR_NAVIGATION_MANAGER" 311 android:protectionLevel="signature|privileged" 312 android:label="@string/car_permission_car_navigation_manager" 313 android:description="@string/car_permission_desc_car_navigation_manager" /> 314 315 <!-- Allows an application to read vehicle diagnostic information, including vendor-specific 316 information. 317 <p>Protection level: signature|privileged 318 --> 319 <permission 320 android:name="android.car.permission.CAR_DIAGNOSTICS" 321 android:protectionLevel="signature|privileged" 322 android:label="@string/car_permission_label_diag_read" 323 android:description="@string/car_permission_desc_diag_read" /> 324 325 <!-- Allows an application to clear diagnostic information from the vehicle. 326 <p>Protection level: signature|privileged 327 --> 328 <permission 329 android:name="android.car.permission.CLEAR_CAR_DIAGNOSTICS" 330 android:protectionLevel="signature|privileged" 331 android:label="@string/car_permission_label_diag_clear" 332 android:description="@string/car_permission_desc_diag_clear" /> 333 334 <!-- Must be required by VMS client service to ensure only system can bind to it. 335 <p>Protection level: signature 336 --> 337 <permission 338 android:name="android.car.permission.BIND_VMS_CLIENT" 339 android:protectionLevel="signature" 340 android:label="@string/car_permission_label_bind_vms_client" 341 android:description="@string/car_permission_desc_bind_vms_client" /> 342 343 <!-- Allows an application to publich VMS messages. 344 <p>Protection level: signature|privileged 345 --> 346 <permission 347 android:name="android.car.permission.VMS_PUBLISHER" 348 android:protectionLevel="signature|privileged" 349 android:label="@string/car_permission_label_vms_publisher" 350 android:description="@string/car_permission_desc_vms_publisher" /> 351 352 <!-- Allows an application to subscribe to VMS messages. 353 <p>Protection level: signature|privileged 354 --> 355 <permission 356 android:name="android.car.permission.VMS_SUBSCRIBER" 357 android:protectionLevel="signature|privileged" 358 android:label="@string/car_permission_label_vms_subscriber" 359 android:description="@string/car_permission_desc_vms_subscriber" /> 360 361 <!-- Allows an application to read the vehicle driving state. 362 <p>Protection level: signature|privileged 363 --> 364 <permission 365 android:name="android.car.permission.CAR_DRIVING_STATE" 366 android:protectionLevel="signature|privileged" 367 android:label="@string/car_permission_label_driving_state" 368 android:description="@string/car_permission_desc_driving_state" /> 369 370 <!-- may replace this with system permission if proper one is defined. --> 371 <eat-comment /> 372 <!-- Allows an application to block other applications for driver distraction purposes. 373 Note: This permission may be replaced in future versions. 374 <p>Protection level: signature|privileged 375 --> 376 <permission 377 android:name="android.car.permission.CONTROL_APP_BLOCKING" 378 android:protectionLevel="signature|privileged" 379 android:label="@string/car_permission_label_control_app_blocking" 380 android:description="@string/car_permission_desc_control_app_blocking" /> 381 382 <!-- Allows an application to control the vehicle audio volume. 383 <p>Protection level: signature|privileged 384 --> 385 <permission 386 android:name="android.car.permission.CAR_CONTROL_AUDIO_VOLUME" 387 android:protectionLevel="signature|privileged" 388 android:label="@string/car_permission_label_audio_volume" 389 android:description="@string/car_permission_desc_audio_volume" /> 390 391 <!-- Allows an application to control the vehicle audio settings. 392 <p>Protection level: signature|privileged 393 --> 394 <permission 395 android:name="android.car.permission.CAR_CONTROL_AUDIO_SETTINGS" 396 android:protectionLevel="signature|privileged" 397 android:label="@string/car_permission_label_audio_settings" 398 android:description="@string/car_permission_desc_audio_settings" /> 399 400 <!-- Must be required by instrument cluster service to ensure only system can bind to it. 401 <p>Protection level: signature 402 --> 403 <permission 404 android:name="android.car.permission.RECEIVE_CAR_AUDIO_DUCKING_EVENTS" 405 android:protectionLevel="system|signature" 406 android:label="@string/car_permission_label_receive_ducking" 407 android:description="@string/car_permission_desc_receive_ducking" /> 408 409 <permission 410 android:name="android.car.permission.BIND_INSTRUMENT_CLUSTER_RENDERER_SERVICE" 411 android:protectionLevel="signature" 412 android:label="@string/car_permission_label_bind_instrument_cluster_rendering" 413 android:description="@string/car_permission_desc_bind_instrument_cluster_rendering"/> 414 415 <!-- Allows an application to handle the vehicle input events. 416 <p>Protection level: signature 417 --> 418 <permission 419 android:name="android.car.permission.BIND_CAR_INPUT_SERVICE" 420 android:protectionLevel="signature" 421 android:label="@string/car_permission_label_bind_input_service" 422 android:description="@string/car_permission_desc_bind_input_service"/> 423 424 <!-- Allows an application to declare activities to be displayed in the instrument cluster. 425 <p>Protection level: signature|privileged 426 --> 427 <permission 428 android:name="android.car.permission.CAR_DISPLAY_IN_CLUSTER" 429 android:protectionLevel="signature|privileged" 430 android:label="@string/car_permission_car_display_in_cluster" 431 android:description="@string/car_permission_desc_car_display_in_cluster" /> 432 433 <!-- Allows an application to lunch applications in the instrument cluster. 434 <p>Protection level: signature|privileged 435 --> 436 <permission 437 android:name="android.car.permission.CAR_INSTRUMENT_CLUSTER_CONTROL" 438 android:protectionLevel="signature|privileged" 439 android:label="@string/car_permission_car_cluster_control" 440 android:description="@string/car_permission_desc_car_cluster_control" /> 441 442 <!-- Allows an application to communicate with a device in AOAP mode. 443 <p>Protection level: signature|privileged 444 --> 445 <permission 446 android:name="android.car.permission.CAR_HANDLE_USB_AOAP_DEVICE" 447 android:protectionLevel="signature|privileged" 448 android:label="@string/car_permission_label_car_handle_usb_aoap_device" 449 android:description="@string/car_permission_desc_car_handle_usb_aoap_device" /> 450 451 <!-- Allows an application to configure UX restrictions in the device. 452 <p>Protection level: signature|privileged 453 --> 454 <permission 455 android:name="android.car.permission.CAR_UX_RESTRICTIONS_CONFIGURATION" 456 android:protectionLevel="signature|privileged" 457 android:label="@string/car_permission_label_car_ux_restrictions_configuration" 458 android:description="@string/car_permission_desc_car_ux_restrictions_configuration" /> 459 460 <!-- Allows an application to monitor flash storage usage. 461 <p>Protection level: signature|privileged 462 --> 463 <permission 464 android:name="android.car.permission.STORAGE_MONITORING" 465 android:protectionLevel="signature|privileged" 466 android:label="@string/car_permission_label_storage_monitoring" 467 android:description="@string/car_permission_desc_storage_monitoring" /> 468 469 <!-- Allows an application to enroll trusted devices. 470 <p>Protection level: signature|privileged 471 --> 472 <permission 473 android:name="android.car.permission.CAR_ENROLL_TRUST" 474 android:protectionLevel="signature|privileged" 475 android:label="@string/car_permission_label_enroll_trust" 476 android:description="@string/car_permission_desc_enroll_trust" /> 477 478 <!-- Allows a test application to control car service's testing mode. 479 This is only for platform level testing. 480 <p>Protection level: signature|privileged 481 --> 482 <permission 483 android:name="android.car.permission.CAR_TEST_SERVICE" 484 android:protectionLevel="signature|privileged" 485 android:label="@string/car_permission_label_car_test_service" 486 android:description="@string/car_permission_desc_car_test_service" /> 487 488 <uses-permission android:name="android.permission.CALL_PHONE" /> 489 <uses-permission android:name="android.permission.DEVICE_POWER" /> 490 <uses-permission android:name="android.permission.GRANT_RUNTIME_PERMISSIONS" /> 491 <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" /> 492 <uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" /> 493 <uses-permission android:name="android.permission.MODIFY_AUDIO_ROUTING" /> 494 <uses-permission android:name="android.permission.MODIFY_DAY_NIGHT_MODE" /> 495 <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> 496 <uses-permission android:name="android.permission.READ_CALL_LOG" /> 497 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 498 <uses-permission android:name="android.permission.REAL_GET_TASKS" /> 499 <uses-permission android:name="android.permission.REBOOT" /> 500 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 501 <uses-permission android:name="android.permission.REMOVE_TASKS" /> 502 <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 503 <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 504 <uses-permission android:name="android.permission.BLUETOOTH" /> 505 <uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES" /> 506 <uses-permission android:name="android.permission.MANAGE_USERS" /> 507 <uses-permission android:name="android.permission.LOCATION_HARDWARE" /> 508 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 509 <uses-permission android:name="android.permission.PROVIDE_TRUST_AGENT" /> 510 <uses-permission android:name="android.permission.READ_LOGS" /> 511 512 <application android:label="@string/app_title" 513 android:directBootAware="true" 514 android:allowBackup="false" 515 android:persistent="true"> 516 517 <uses-library android:name="android.test.runner" /> 518 <service android:name=".CarService" 519 android:singleUser="true"> 520 <intent-filter> 521 <action android:name="android.car.ICar" /> 522 </intent-filter> 523 </service> 524 <service android:name=".PerUserCarService" android:exported="false" /> 525 526 <service 527 android:name="com.android.car.trust.CarBleTrustAgent" 528 android:permission="android.permission.BIND_TRUST_AGENT" 529 android:singleUser="true"> 530 <intent-filter> 531 <action android:name="android.service.trust.TrustAgentService" /> 532 <category android:name="android.intent.category.DEFAULT" /> 533 </intent-filter> 534 <!-- Warning: the meta data must be included if the service is direct boot aware. 535 If not included, the device will crash before boot completes. Rendering the 536 device unusable. --> 537 <meta-data android:name="android.service.trust.trustagent" 538 android:resource="@xml/car_trust_agent"/> 539 </service> 540 <activity android:name="com.android.car.pm.ActivityBlockingActivity" 541 android:documentLaunchMode="always" 542 android:excludeFromRecents="true" 543 android:exported="false" 544 android:theme="@android:style/Theme.Translucent.NoTitleBar"> 545 <intent-filter> 546 <action android:name="android.intent.action.MAIN" /> 547 </intent-filter> 548 </activity> 549 <activity android:name="com.android.car.am.ContinuousBlankActivity" 550 android:excludeFromRecents="true" 551 android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 552 android:exported="false" 553 android:launchMode="singleTask"> 554 </activity> 555 </application> 556</manifest> 557