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    <!-- Do not add any new permission here.
26         Update ../service/AndroidManifest instead (Except signature only permission).
27         Signature only permission should be associated with platform signature, not module
28         signature. -->
29
30    <!-- Must be required by projection service to ensure only system can bind to it.
31         <p>Protection level: signature
32    -->
33    <permission android:name="android.car.permission.BIND_PROJECTION_SERVICE"
34         android:protectionLevel="signature"
35         android:label="@string/car_permission_label_bind_projection_service"
36         android:description="@string/car_permission_desc_bind_projection_service"/>
37
38    <!-- Must be required by VMS client service to ensure only system can bind to it.
39         <p>Protection level: signature
40    -->
41    <permission android:name="android.car.permission.BIND_VMS_CLIENT"
42         android:protectionLevel="signature"
43         android:label="@string/car_permission_label_bind_vms_client"
44         android:description="@string/car_permission_desc_bind_vms_client"/>
45
46    <!-- Must be required by instrument cluster service to ensure only system can bind to it.
47         <p>Protection level: signature
48    -->
49   <permission android:name="android.car.permission.BIND_INSTRUMENT_CLUSTER_RENDERER_SERVICE"
50         android:protectionLevel="signature"
51         android:label="@string/car_permission_label_bind_instrument_cluster_rendering"
52         android:description="@string/car_permission_desc_bind_instrument_cluster_rendering"/>
53
54    <!-- Allows an application to handle the vehicle input events.
55         <p>Protection level: signature
56    -->
57    <permission android:name="android.car.permission.BIND_CAR_INPUT_SERVICE"
58         android:protectionLevel="signature"
59         android:label="@string/car_permission_label_bind_input_service"
60         android:description="@string/car_permission_desc_bind_input_service"/>
61
62    <uses-permission android:name="android.permission.CALL_PHONE"/>
63    <uses-permission android:name="android.permission.DEVICE_POWER"/>
64    <uses-permission android:name="android.permission.TURN_SCREEN_ON"/>
65    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
66    <uses-permission android:name="android.permission.MANAGE_ACTIVITY_TASKS"/>
67    <uses-permission android:name="android.permission.MODIFY_AUDIO_ROUTING"/>
68    <uses-permission android:name="android.permission.MODIFY_DAY_NIGHT_MODE"/>
69    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
70    <uses-permission android:name="android.permission.READ_CALL_LOG"/>
71    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
72    <uses-permission android:name="android.permission.REAL_GET_TASKS"/>
73    <uses-permission android:name="android.permission.REBOOT"/>
74    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
75    <uses-permission android:name="android.permission.REMOVE_TASKS"/>
76    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
77    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
78    <uses-permission android:name="android.permission.BLUETOOTH"/>
79    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
80    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE"/>
81    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
82    <uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
83    <uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES"/>
84    <uses-permission android:name="android.permission.MANAGE_USERS"/>
85    <uses-permission android:name="android.permission.LOCATION_HARDWARE"/>
86    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
87    <uses-permission android:name="android.permission.CONTROL_AUTOMOTIVE_GNSS"/>
88    <uses-permission android:name="android.permission.PROVIDE_TRUST_AGENT"/>
89    <uses-permission android:name="android.permission.READ_LOGS"/>
90    <!--  Used by NotificationHelper to change the notifications app name -->
91    <uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME"/>
92    <uses-permission android:name="android.permission.SUGGEST_EXTERNAL_TIME" />
93    <!--  Used by CPMS to kill cached processes to free memory -->
94    <uses-permission android:name="android.permission.KILL_ALL_BACKGROUND_PROCESSES" />
95
96    <application android:label="@string/app_title"
97         android:directBootAware="true"
98         android:allowBackup="false"
99         android:persistent="true">
100
101        <!-- Do not add any new service without addressing mainline issues -->
102        <service android:name=".CarService"
103             android:singleUser="true"
104             android:exported="true">
105            <intent-filter>
106                <action android:name="android.car.ICar"/>
107            </intent-filter>
108        </service>
109        <service android:name=".CarPerUserService"
110            android:exported="false"/>
111        <service
112            android:name="com.android.car.pm.CarSafetyAccessibilityService"
113            android:singleUser="true"
114            android:permission="android.permission.BIND_ACCESSIBILITY_SERVICE"
115            android:exported="false">
116            <intent-filter>
117                <action android:name="android.accessibilityservice.AccessibilityService" />
118            </intent-filter>
119            <meta-data
120                android:name="android.accessibilityservice"
121                android:resource="@xml/car_safety_accessibility_service_config" />
122        </service>
123
124        <!-- Do not add any new Activity. -->
125        <activity android:name=".DistractionOptimizedActivityForTesting">
126            <meta-data android:name="distractionOptimized" android:value="true"/>
127        </activity>
128        <activity android:name=".NonDistractionOptimizedActivityForTesting">
129            <meta-data android:name="distractionOptimized" android:value="false"/>
130        </activity>
131    </application>
132</manifest>
133