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="android.car.apitest"
20     android:debuggable="true">
21
22    <uses-sdk android:minSdkVersion="33"/>
23    <uses-permission android:name="android.car.permission.ACCESS_CAR_PROJECTION_STATUS"/>
24    <uses-permission android:name="android.car.permission.CAR_CAMERA"/>
25    <uses-permission android:name="android.car.permission.CAR_CONTROL_AUDIO_SETTINGS"/>
26    <uses-permission android:name="android.car.permission.CAR_CONTROL_AUDIO_VOLUME"/>
27    <uses-permission android:name="android.car.permission.CAR_DIAGNOSTICS"/>
28    <uses-permission android:name="android.car.permission.CAR_DISPLAY_IN_CLUSTER"/>
29    <!-- use for display mirroring in kitchen sink -->
30    <uses-permission android:name="android.permission.READ_FRAME_BUFFER" />
31    <!-- use for CarServiceTest -->
32    <uses-permission android:name="android.car.permission.CAR_DRIVING_STATE"/>
33    <uses-permission android:name="android.car.permission.CAR_ENERGY"/>
34    <uses-permission android:name="android.car.permission.CAR_MONITOR_CLUSTER_NAVIGATION_STATE"/>
35    <!-- use for AndroidCarApiTest -->
36    <uses-permission android:name="android.car.permission.CAR_INFO"/>
37    <!-- use for AndroidCarApiTest -->
38    <uses-permission android:name="android.car.permission.CAR_PROJECTION"/>
39    <uses-permission android:name="android.car.permission.CAR_INSTRUMENT_CLUSTER_CONTROL"/>
40    <uses-permission android:name="android.car.permission.CAR_MILEAGE"/>
41    <uses-permission android:name="android.car.permission.CAR_MOCK_VEHICLE_HAL"/>
42    <uses-permission android:name="android.car.permission.CAR_NAVIGATION_MANAGER"/>
43    <!-- use for CarServiceTest -->
44    <uses-permission android:name="android.car.permission.CAR_EXTERIOR_ENVIRONMENT"/>
45    <uses-permission android:name="android.car.permission.CAR_POWER"/>
46    <!-- use for CarServiceTest -->
47    <uses-permission android:name="android.car.permission.CAR_POWERTRAIN"/>
48    <uses-permission android:name="android.car.permission.CAR_SPEED"/>
49     <!-- use for CarServiceTest -->
50    <uses-permission android:name="android.car.permission.CAR_TEST_SERVICE"/>
51    <!-- use for CarServiceTest -->
52    <uses-permission android:name="android.car.permission.CAR_VENDOR_EXTENSION"/>
53    <!-- use for CarServiceTest -->
54    <uses-permission android:name="android.car.permission.CAR_UX_RESTRICTIONS_CONFIGURATION"/>
55    <!-- use for AndroidCarApiTest -->
56    <uses-permission android:name="android.car.permission.CONTROL_CAR_APP_LAUNCH"/>
57    <uses-permission android:name="android.car.permission.CONTROL_CAR_CLIMATE"/>
58    <uses-permission android:name="android.car.permission.READ_CAR_STEERING"/>
59    <uses-permission android:name="android.car.permission.STORAGE_MONITORING"/>
60    <uses-permission android:name="android.car.permission.CAR_DYNAMICS_STATE"/>
61    <uses-permission android:name="android.car.permission.CONTROL_APP_BLOCKING"/>
62    <!-- use for CarServiceTest -->
63    <uses-permission android:name="android.car.permission.USE_CAR_TELEMETRY_SERVICE"/>
64    <!-- Allow querying and writing to any property -->
65    <uses-permission android:name="android.car.permission.CAR_ENERGY_PORTS" />
66    <uses-permission android:name="android.car.permission.PERMISSION_CONTROL_ENERGY_PORTS" />
67    <uses-permission android:name="android.car.permission.CAR_EXTERIOR_LIGHTS" />
68    <uses-permission android:name="android.car.permission.CAR_TIRES" />
69    <uses-permission android:name="android.car.permission.CONTROL_CAR_DOORS" />
70    <uses-permission android:name="android.car.permission.CONTROL_CAR_EXTERIOR_LIGHTS" />
71    <uses-permission android:name="android.car.permission.CONTROL_CAR_MIRRORS" />
72    <uses-permission android:name="android.car.permission.CONTROL_CAR_SEATS" />
73    <uses-permission android:name="android.car.permission.CONTROL_CAR_WINDOWS" />
74    <uses-permission android:name="android.car.permission.READ_CAR_DISPLAY_UNITS" />
75    <uses-permission android:name="android.car.permission.CONTROL_CAR_DISPLAY_UNITS" />
76    <uses-permission android:name="android.car.permission.CAR_IDENTIFICATION" />
77    <uses-permission android:name="android.car.permission.PERMISSION_ADJUST_RANGE_REMAINING" />
78    <uses-permission android:name="android.car.permission.PERMISSION_CAR_ENGINE_DETAILED" />
79    <!-- use for CarServiceTest -->
80    <uses-permission android:name="android.car.permission.VMS_PUBLISHER"/>
81    <!-- use for CarServiceTest -->
82    <uses-permission android:name="android.car.permission.VMS_SUBSCRIBER"/>
83    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
84    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
85    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
86    <uses-permission android:name="android.permission.ACCESS_VOICE_INTERACTION_SERVICE"/>
87    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
88    <uses-permission android:name="android.permission.ACTIVITY_EMBEDDING"/>
89    <uses-permission android:name="android.permission.BACKUP"/>
90    <uses-permission android:name="android.permission.BLUETOOTH"/>
91    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
92    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE"/>
93    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
94    <uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
95    <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED"/>
96    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
97    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
98    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION"/>
99    <uses-permission android:name="android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS"/>
100    <uses-permission android:name="android.permission.LOCATION_BYPASS" />
101    <!-- Use for sensor access in Sensors fragment. -->
102    <uses-permission android:name="android.permission.HIGH_SAMPLING_RATE_SENSORS"/>
103    <uses-permission android:name="android.permission.INJECT_EVENTS"/>
104    <!-- use for CarServiceUnitTest and CarServiceTest -->
105    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>
106    <!-- use for CarServiceUnitTest -->
107    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
108    <uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW"/>
109    <uses-permission android:name="android.permission.LOCATION_HARDWARE"/>
110    <uses-permission android:name="android.permission.MANAGE_USB"/>
111    <uses-permission android:name="android.permission.MANAGE_USERS"/>
112    <!-- use for CarServiceTest -->
113    <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/>
114    <uses-permission android:name="android.permission.MODIFY_AUDIO_ROUTING"/>
115    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
116    <uses-permission android:name="android.permission.RECORD_AUDIO" />
117    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
118    <uses-permission android:name="android.permission.MODIFY_DAY_NIGHT_MODE"/>
119    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
120    <uses-permission android:name="android.permission.OVERRIDE_WIFI_CONFIG"/>
121    <uses-permission android:name="android.permission.PROVIDE_TRUST_AGENT"/>
122    <!-- Allow query of any normal app on the device in R+ -->
123    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
124    <uses-permission android:name="android.permission.READ_LOGS"/>
125    <uses-permission android:name="android.permission.READ_SMS"/>
126    <uses-permission android:name="android.permission.REAL_GET_TASKS"/>
127    <uses-permission android:name="android.permission.REBOOT"/>
128    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
129    <uses-permission android:name="android.permission.SEND_CATEGORY_CAR_NOTIFICATIONS"/>
130    <uses-permission android:name="android.permission.SEND_SMS"/>
131    <!-- use for CarServiceTest -->
132    <uses-permission android:name="android.permission.MONITOR_INPUT"/>
133    <uses-permission android:name="android.permission.SET_ACTIVITY_WATCHER"/>
134    <!-- use for CarWatchdogReliabilityTest -->
135    <uses-permission android:name="android.car.permission.USE_CAR_WATCHDOG" />
136    <!-- needed for User fragment to lock user data -->
137    <uses-permission android:name="android.permission.STORAGE_INTERNAL"/>
138    <uses-permission android:name="android.permission.USE_FULL_SCREEN_INTENT"/>
139    <uses-permission android:name="android.permission.WRITE_DEVICE_CONFIG"/>
140    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
141    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
142    <!-- use for vendor properties -->
143    <uses-permission android:name="android.car.permission.CAR_VENDOR_EXTENSION"/>
144    <uses-permission android:name="android.car.permission.GET_CAR_VENDOR_CATEGORY_SEAT"/>
145    <uses-permission android:name="android.car.permission.GET_CAR_VENDOR_CATEGORY_INFO"/>
146    <uses-permission android:name="android.car.permission.SET_CAR_VENDOR_CATEGORY_INFO"/>
147
148    <uses-permission android:name="android.car.permission.CONTROL_CAR_FEATURES"/>
149
150    <!-- use for rotary fragment to enable/disable packages related to rotary -->
151    <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE"/>
152
153    <!-- Used on DEVICE POLICY screen to lock screen -->
154    <uses-permission android:name="android.permission.LOCK_DEVICE"/>
155    <!-- Used on DEVICE POLICY screen to reset password -->
156    <uses-permission android:name="android.permission.RESET_PASSWORD"/>
157    <!-- Used on DEVICE POLICY screen to wipe data -->
158    <uses-permission android:name="android.permission.MASTER_CLEAR"/>
159
160    <!-- Allows to use the CarEvsService -->
161    <uses-permission android:name="android.car.permission.REQUEST_CAR_EVS_ACTIVITY"/>
162    <uses-permission android:name="android.car.permission.CONTROL_CAR_EVS_ACTIVITY"/>
163    <uses-permission android:name="android.car.permission.USE_CAR_EVS_CAMERA"/>
164    <uses-permission android:name="android.car.permission.MONITOR_CAR_EVS_STATUS"/>
165
166    <uses-permission android:name="android.permission.CALL_PHONE" />
167
168    <!-- Allows sending of notifications in T+ -->
169    <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
170
171    <!-- To make curl downloads work in CarTelemetryTestFragment -->
172    <uses-permission android:name="android.permission.INTERNET"/>
173    <!-- To enable suspend to RAM emulation via shell command in CarTelemetryTestFragment -->
174    <uses-permission android:name="android.permission.DEVICE_POWER"/>
175
176    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
177         android:targetPackage="android.car.apitest"
178         android:label="Tests for Car APIs"
179         android:debuggable="true"/>
180
181    <application android:label="CarApiTest"
182         android:debuggable="true">
183
184        <!-- Used by CarPackageManagerTest -->
185        <meta-data android:name="android.car.targetCarVersion" android:value="108:42"/>
186
187        <uses-library android:name="android.test.runner"/>
188        <activity android:name=".TestCarProxyActivity"
189             android:exported="true">
190            <intent-filter>
191                <action android:name="android.intent.action.MAIN"/>
192            </intent-filter>
193        </activity>
194        <activity android:name=".TestDrivingSafetyAllRegionActivity"
195                  android:exported="true">
196            <meta-data android:name="distractionOptimized" android:value="true"/>
197        </activity>
198        <activity android:name=".TestDrivingSafetyExplicitAllRegionsActivity"
199                  android:exported="true">
200            <meta-data android:name="distractionOptimized" android:value="true"/>
201            <!-- not necessary as all region is the default state but this is still valid -->
202            <meta-data android:name="android.car.drivingsafetyregions"
203                       android:value="android.car.drivingsafetyregion.all"/>
204        </activity>
205        <activity android:name=".TestDrivingSafetyOneRegionActivity"
206                  android:exported="true">
207            <meta-data android:name="distractionOptimized" android:value="true"/>
208            <meta-data android:name="android.car.drivingsafetyregions"
209                       android:value="com.android.car.test.drivingsafetyregion.1"/>
210        </activity>
211        <activity android:name=".TestDrivingSafetyTwoRegionsActivity"
212                  android:exported="true">
213            <meta-data android:name="distractionOptimized" android:value="true"/>
214            <meta-data android:name="android.car.drivingsafetyregions"
215                       android:value="com.android.car.test.drivingsafetyregion.1,com.android.car.test.drivingsafetyregion.2"/>
216        </activity>
217        <activity android:name=".TestDrivingSafetyRegion1OnlyActivity"
218                  android:exported="true">
219            <!--No distractionOptimized, so this app will be unsafe. -->
220            <meta-data android:name="android.car.drivingsafetyregions"
221                       android:value="com.android.test.drivingsafetyregion.1"/>
222        </activity>
223        <activity android:name=".TestDrivingSafetyRegionAllOnlyActivity"
224                  android:exported="true">
225            <!--No distractionOptimized, so this app will be unsafe. -->
226            <meta-data android:name="android.car.drivingsafetyregions"
227                       android:value="android.car.drivingsafetyregion.all"/>
228        </activity>
229        <activity android:name=".TestDrivingSafetyRegionNoMetadataActivity"
230                  android:exported="true">
231        </activity>
232        <activity android:name=".CarDisplayInputLockTest$TestActivity" />
233        <service android:name=".CarProjectionManagerTest$TestService"
234             android:exported="true"/>
235        <service android:name="com.android.car.internal.test.LargeParcelableTestService"
236             android:process=":apiTestServiceProcess"
237             android:exported="true"/>
238        <service android:name="com.android.car.internal.test.IStableAIDLBinderTestService"
239                 android:process=":apiTestServiceProcess"
240                 android:exported="true"/>
241    </application>
242</manifest>
243