| <?xml version="1.0" encoding="utf-8"?> |
| <!-- Copyright (C) 2015 The Android Open Source Project |
| |
| Licensed under the Apache License, Version 2.0 (the "License"); |
| you may not use this file except in compliance with the License. |
| You may obtain a copy of the License at |
| |
| http://www.apache.org/licenses/LICENSE-2.0 |
| |
| Unless required by applicable law or agreed to in writing, software |
| distributed under the License is distributed on an "AS IS" BASIS, |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| See the License for the specific language governing permissions and |
| limitations under the License. |
| --> |
| |
| <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
| xmlns:androidprv="http://schemas.android.com/apk/prv/res/android" |
| package="com.android.car" |
| coreApp="true" |
| android:sharedUserId="android.uid.system"> |
| |
| <original-package android:name="com.android.car" /> |
| |
| <!-- Used for runtime permissions related to monitoring vehicle information. --> |
| <permission-group |
| android:name="android.car.permission-group.CAR_MONITORING" |
| android:icon="@drawable/perm_group_car" |
| android:description="@string/car_permission_desc" |
| android:label="@string/car_permission_label" /> |
| |
| <!-- Allows an application to read the vehicle energy information. |
| <p>Protection level: dangerous |
| --> |
| <permission |
| android:name="android.car.permission.CAR_ENERGY" |
| android:permissionGroup="android.car.permission-group.CAR_MONITORING" |
| android:protectionLevel="dangerous" |
| android:label="@string/car_permission_label_energy" |
| android:description="@string/car_permission_desc_energy" /> |
| |
| <!-- Allows an application to read the VIN information. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_IDENTIFICATION" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_car_identification" |
| android:description="@string/car_permission_desc_car_identification" /> |
| |
| <!-- Allows an application to control the vehicle HVAC. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CONTROL_CAR_CLIMATE" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_hvac" |
| android:description="@string/car_permission_desc_hvac" /> |
| |
| <!-- Allows an application to control the vehicle doors. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CONTROL_CAR_DOORS" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_control_car_doors" |
| android:description="@string/car_permission_desc_control_car_doors" /> |
| |
| <!-- Allows an application to control the vehicle windows. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CONTROL_CAR_WINDOWS" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_control_car_windows" |
| android:description="@string/car_permission_desc_control_car_windows" /> |
| |
| <!-- Allows an application to control the vehicle mirrors. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CONTROL_CAR_MIRRORS" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_control_car_mirrors" |
| android:description="@string/car_permission_desc_control_car_mirrors" /> |
| |
| <!-- Allows an application to control the vehicle seats. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CONTROL_CAR_SEATS" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_control_car_seats" |
| android:description="@string/car_permission_desc_control_car_seats" /> |
| |
| <!-- Allows an application to read the vehicle mileage information. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_MILEAGE" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_mileage" |
| android:description="@string/car_permission_desc_mileage" /> |
| |
| <!-- Allows an application to read the vehicle tire pressure information. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_TIRES" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_car_tires" |
| android:description="@string/car_permission_desc_car_tires" /> |
| |
| <!-- Allows an application to read the vehicle steering angle information. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.READ_CAR_STEERING" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_car_steering" |
| android:description="@string/car_permission_desc_car_steering" /> |
| |
| <!-- Allows an application to read the display units for distance, fuel, tire pressure, |
| EV battery and fuel consumption. |
| <p>Protection level: normal |
| --> |
| <permission |
| android:name="android.car.permission.READ_CAR_DISPLAY_UNITS" |
| android:protectionLevel="normal" |
| android:label="@string/car_permission_label_read_car_display_units" |
| android:description="@string/car_permission_desc_read_car_display_units" /> |
| |
| <!-- Allows an application to control the display units for distance, fuel, tire pressure, |
| EV battery and fuel consumption. |
| <p>Protection level: normal |
| --> |
| <permission |
| android:name="android.car.permission.CONTROL_CAR_DISPLAY_UNITS" |
| android:protectionLevel="normal" |
| android:label="@string/car_permission_label_control_car_display_units" |
| android:description="@string/car_permission_desc_control_car_display_units" /> |
| |
| <!-- Allows an application to read the vehicle speed. |
| <p>Protection level: dangerous |
| --> |
| <permission |
| android:name="android.car.permission.CAR_SPEED" |
| android:permissionGroup="android.permission-group.LOCATION" |
| android:protectionLevel="dangerous" |
| android:label="@string/car_permission_label_speed" |
| android:description="@string/car_permission_desc_speed" /> |
| |
| <!-- Allows an application to read the vehicle fuel and charge port status. |
| <p>Protection level: normal |
| --> |
| <permission |
| android:name="android.car.permission.CAR_ENERGY_PORTS" |
| android:protectionLevel="normal" |
| android:label="@string/car_permission_label_car_energy_ports" |
| android:description="@string/car_permission_desc_car_energy_ports" /> |
| |
| <!-- Allows an application to read the vehicle engine information. For example, it allows an |
| application to read the engine oil level, oil temperature, coolant temperature and RPM. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_ENGINE_DETAILED" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_car_engine_detailed" |
| android:description="@string/car_permission_desc_car_engine_detailed" /> |
| |
| <!-- Allows an application to read the vehicle dynamic state information. For example, it |
| allows an application to read the ABS and traction control status. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_DYNAMICS_STATE" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_vehicle_dynamics_state" |
| android:description="@string/car_permission_desc_vehicle_dynamics_state" /> |
| |
| <!-- Allows an application to access the vehicle vendor channel to exchange vendor-specific information. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_VENDOR_EXTENSION" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_vendor_extension" |
| android:description="@string/car_permission_desc_vendor_extension" /> |
| |
| <!-- Allows an application to project an interface from a phone to the vehicle display. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_PROJECTION" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_projection" |
| android:description="@string/car_permission_desc_projection" /> |
| |
| <!-- Allows an application to get the status of other applications projecting to the vehicle display. |
| technologies status changes. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.ACCESS_CAR_PROJECTION_STATUS" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_access_projection_status" |
| android:description="@string/car_permission_desc_access_projection_status" /> |
| |
| <!-- Must be required by projection service to ensure only system can bind to it. |
| <p>Protection level: signature |
| --> |
| <permission |
| android:name="android.car.permission.BIND_PROJECTION_SERVICE" |
| android:protectionLevel="signature" |
| android:label="@string/car_permission_label_bind_projection_service" |
| android:description="@string/car_permission_desc_bind_projection_service" /> |
| |
| <!-- Allows an application to emulate the vehicle HAL for testing purposes. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_MOCK_VEHICLE_HAL" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_mock_vehicle_hal" |
| android:description="@string/car_permission_desc_mock_vehicle_hal" /> |
| |
| <!-- Allows an application to read the vehicle car basic information. For example, it allows |
| an application to read the vehicle Make, Model, Model Year, fuel capacity, fuel type, |
| EV battery capacity, EV connection type, fuel door location and driver seat location. |
| <p>Protection level: normal |
| --> |
| <permission |
| android:name="android.car.permission.CAR_INFO" |
| android:protectionLevel="normal" |
| android:label="@string/car_permission_label_car_info" |
| android:description="@string/car_permission_desc_car_info" /> |
| |
| <!-- Allows an application to read the vehicle exterior environment information. For example, |
| it allows an application to read the vehicle exterior temperature and night mode status. |
| <p>Protection level: normal |
| --> |
| <permission |
| android:name="android.car.permission.CAR_EXTERIOR_ENVIRONMENT" |
| android:protectionLevel="normal" |
| android:label="@string/car_permission_label_car_exterior_environment" |
| android:description="@string/car_permission_desc_car_exterior_environment" /> |
| |
| <!-- Allows an application to read the vehicle exterior lights state. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_EXTERIOR_LIGHTS" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_car_exterior_lights" |
| android:description="@string/car_permission_desc_car_exterior_lights" /> |
| |
| <!-- Allows an application to control the vehicle exterior lights. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_control_car_exterior_lights" |
| android:description="@string/car_permission_desc_control_car_exterior_lights" /> |
| |
| <!-- Allows an application to read the vehicle interior lights state. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.READ_CAR_INTERIOR_LIGHTS" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_car_interior_lights" |
| android:description="@string/car_permission_desc_car_interior_lights" /> |
| |
| <!-- Allows an application to control the vehicle interior lights state. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CONTROL_CAR_INTERIOR_LIGHTS" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_control_car_interior_lights" |
| android:description="@string/car_permission_desc_control_car_interior_lights" /> |
| |
| <!-- Allows an application to control the vehicle power state. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_POWER" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_car_power" |
| android:description="@string/car_permission_desc_car_power" /> |
| |
| <!-- Allows an application to read the vehicle powertrain information. For example, it allows |
| an application to read the vehicle current gear, ignition state or parking break status. |
| <p>Protection level: normal |
| --> |
| <permission |
| android:name="android.car.permission.CAR_POWERTRAIN" |
| android:protectionLevel="normal" |
| android:label="@string/car_permission_label_car_powertrain" |
| android:description="@string/car_permission_desc_car_powertrain" /> |
| |
| <!-- Allows an application to access {@link android.car.navigation.CarNavigationStatusManager} |
| to report navigation data. This information may be displayed by the vehicle in the |
| instrument cluster, head-up display or other locations. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_NAVIGATION_MANAGER" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_car_navigation_manager" |
| android:description="@string/car_permission_desc_car_navigation_manager" /> |
| |
| <!-- Allows an application to read vehicle diagnostic information, including vendor-specific |
| information. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_DIAGNOSTICS" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_diag_read" |
| android:description="@string/car_permission_desc_diag_read" /> |
| |
| <!-- Allows an application to clear diagnostic information from the vehicle. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CLEAR_CAR_DIAGNOSTICS" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_diag_clear" |
| android:description="@string/car_permission_desc_diag_clear" /> |
| |
| <!-- Must be required by VMS client service to ensure only system can bind to it. |
| <p>Protection level: signature |
| --> |
| <permission |
| android:name="android.car.permission.BIND_VMS_CLIENT" |
| android:protectionLevel="signature" |
| android:label="@string/car_permission_label_bind_vms_client" |
| android:description="@string/car_permission_desc_bind_vms_client" /> |
| |
| <!-- Allows an application to publich VMS messages. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.VMS_PUBLISHER" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_vms_publisher" |
| android:description="@string/car_permission_desc_vms_publisher" /> |
| |
| <!-- Allows an application to subscribe to VMS messages. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.VMS_SUBSCRIBER" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_vms_subscriber" |
| android:description="@string/car_permission_desc_vms_subscriber" /> |
| |
| <!-- Allows an application to read the vehicle driving state. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_DRIVING_STATE" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_driving_state" |
| android:description="@string/car_permission_desc_driving_state" /> |
| |
| <!-- may replace this with system permission if proper one is defined. --> |
| <eat-comment /> |
| <!-- Allows an application to block other applications for driver distraction purposes. |
| Note: This permission may be replaced in future versions. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CONTROL_APP_BLOCKING" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_control_app_blocking" |
| android:description="@string/car_permission_desc_control_app_blocking" /> |
| |
| <!-- Allows an application to control the vehicle audio volume. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_CONTROL_AUDIO_VOLUME" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_audio_volume" |
| android:description="@string/car_permission_desc_audio_volume" /> |
| |
| <!-- Allows an application to control the vehicle audio settings. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_CONTROL_AUDIO_SETTINGS" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_audio_settings" |
| android:description="@string/car_permission_desc_audio_settings" /> |
| |
| <!-- Must be required by instrument cluster service to ensure only system can bind to it. |
| <p>Protection level: signature |
| --> |
| <permission |
| android:name="android.car.permission.RECEIVE_CAR_AUDIO_DUCKING_EVENTS" |
| android:protectionLevel="system|signature" |
| android:label="@string/car_permission_label_receive_ducking" |
| android:description="@string/car_permission_desc_receive_ducking" /> |
| |
| <permission |
| android:name="android.car.permission.BIND_INSTRUMENT_CLUSTER_RENDERER_SERVICE" |
| android:protectionLevel="signature" |
| android:label="@string/car_permission_label_bind_instrument_cluster_rendering" |
| android:description="@string/car_permission_desc_bind_instrument_cluster_rendering"/> |
| |
| <!-- Allows an application to handle the vehicle input events. |
| <p>Protection level: signature |
| --> |
| <permission |
| android:name="android.car.permission.BIND_CAR_INPUT_SERVICE" |
| android:protectionLevel="signature" |
| android:label="@string/car_permission_label_bind_input_service" |
| android:description="@string/car_permission_desc_bind_input_service"/> |
| |
| <!-- Allows an application to declare activities to be displayed in the instrument cluster. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_DISPLAY_IN_CLUSTER" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_car_display_in_cluster" |
| android:description="@string/car_permission_desc_car_display_in_cluster" /> |
| |
| <!-- Allows an application to lunch applications in the instrument cluster. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_INSTRUMENT_CLUSTER_CONTROL" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_car_cluster_control" |
| android:description="@string/car_permission_desc_car_cluster_control" /> |
| |
| <!-- Allows an application to communicate with a device in AOAP mode. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_HANDLE_USB_AOAP_DEVICE" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_car_handle_usb_aoap_device" |
| android:description="@string/car_permission_desc_car_handle_usb_aoap_device" /> |
| |
| <!-- Allows an application to configure UX restrictions in the device. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_UX_RESTRICTIONS_CONFIGURATION" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_car_ux_restrictions_configuration" |
| android:description="@string/car_permission_desc_car_ux_restrictions_configuration" /> |
| |
| <!-- Allows an application to monitor flash storage usage. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.STORAGE_MONITORING" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_storage_monitoring" |
| android:description="@string/car_permission_desc_storage_monitoring" /> |
| |
| <!-- Allows an application to enroll trusted devices. |
| <p>Protection level: signature|privileged |
| --> |
| <permission |
| android:name="android.car.permission.CAR_ENROLL_TRUST" |
| android:protectionLevel="signature|privileged" |
| android:label="@string/car_permission_label_enroll_trust" |
| android:description="@string/car_permission_desc_enroll_trust" /> |
| |
| <uses-permission android:name="android.permission.CALL_PHONE" /> |
| <uses-permission android:name="android.permission.DEVICE_POWER" /> |
| <uses-permission android:name="android.permission.GRANT_RUNTIME_PERMISSIONS" /> |
| <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" /> |
| <uses-permission android:name="android.permission.MANAGE_ACTIVITY_STACKS" /> |
| <uses-permission android:name="android.permission.MODIFY_AUDIO_ROUTING" /> |
| <uses-permission android:name="android.permission.MODIFY_DAY_NIGHT_MODE" /> |
| <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" /> |
| <uses-permission android:name="android.permission.READ_CALL_LOG" /> |
| <uses-permission android:name="android.permission.READ_PHONE_STATE" /> |
| <uses-permission android:name="android.permission.REAL_GET_TASKS" /> |
| <uses-permission android:name="android.permission.REBOOT" /> |
| <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> |
| <uses-permission android:name="android.permission.REMOVE_TASKS" /> |
| <uses-permission android:name="android.permission.WRITE_SETTINGS" /> |
| <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> |
| <uses-permission android:name="android.permission.BLUETOOTH" /> |
| <uses-permission android:name="android.permission.MANAGE_USERS" /> |
| <uses-permission android:name="android.permission.LOCATION_HARDWARE" /> |
| <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> |
| <uses-permission android:name="android.permission.PROVIDE_TRUST_AGENT" /> |
| <uses-permission android:name="android.permission.READ_LOGS" /> |
| |
| <application android:label="@string/app_title" |
| android:directBootAware="true" |
| android:allowBackup="false" |
| android:persistent="true"> |
| |
| <uses-library android:name="android.test.runner" /> |
| <service android:name=".CarService" |
| android:singleUser="true"> |
| <intent-filter> |
| <action android:name="android.car.ICar" /> |
| </intent-filter> |
| </service> |
| <service android:name=".PerUserCarService" android:exported="false" /> |
| |
| <service |
| android:name="com.android.car.trust.CarBleTrustAgent" |
| android:permission="android.permission.BIND_TRUST_AGENT" |
| android:singleUser="true"> |
| <intent-filter> |
| <action android:name="android.service.trust.TrustAgentService" /> |
| <category android:name="android.intent.category.DEFAULT" /> |
| </intent-filter> |
| <!-- Warning: the meta data must be included if the service is direct boot aware. |
| If not included, the device will crash before boot completes. Rendering the |
| device unusable. --> |
| <meta-data android:name="android.service.trust.trustagent" |
| android:resource="@xml/car_trust_agent"/> |
| </service> |
| <activity android:name="com.android.car.pm.ActivityBlockingActivity" |
| android:documentLaunchMode="always" |
| android:excludeFromRecents="true" |
| android:exported="false" |
| android:theme="@android:style/Theme.Translucent.NoTitleBar"> |
| <intent-filter> |
| <action android:name="android.intent.action.MAIN" /> |
| </intent-filter> |
| </activity> |
| </application> |
| </manifest> |