1<?xml version="1.0" encoding="utf-8"?>
2<!--
3  ~ Copyright (C) 2022 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<manifest xmlns:android="http://schemas.android.com/apk/res/android"
19          package="com.android.ondevicepersonalization.servicetests" >
20
21    <uses-permission android:name="android.permission.INTERNET" />
22    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
23    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
24    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
25    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
26    <uses-permission android:name="android.permission.READ_PHONE_STATE"/>
27    <uses-permission android:name="android.permission.INTERNAL_SYSTEM_WINDOW"/>
28    <!-- Permissions required for reading device configs -->
29    <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
30
31    <!-- Required for reading and writing device configs -->
32
33    <!-- Used for persisting scheduled jobs -->
34    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
35
36    <!--  Permission to call OdpExampleStore  -->
37    <uses-permission android:name="android.permission.BIND_EXAMPLE_STORE_SERVICE" />
38
39    <application android:name="com.android.ondevicepersonalization.services.OnDevicePersonalizationApplication"
40            android:label="OnDevicePersonalizationManagingServicesTests"
41            android:debuggable="true">
42        <uses-library android:name="android.test.runner"/>
43        <property android:name="android.ondevicepersonalization.ON_DEVICE_PERSONALIZATION_CONFIG"
44                  android:resource="@xml/OdpSettings"></property>
45        <service android:name="com.android.ondevicepersonalization.services.OnDevicePersonalizationManagingServiceImpl" android:exported="true" >
46            <intent-filter>
47                <action android:name="android.OnDevicePersonalizationService" />
48            </intent-filter>
49        </service>
50        <service android:name="com.android.ondevicepersonalization.services.OnDevicePersonalizationDebugServiceImpl" android:exported="true" >
51            <intent-filter>
52                <action android:name="android.OnDevicePersonalizationService" />
53            </intent-filter>
54        </service>
55        <service android:name="com.android.ondevicepersonalization.libraries.plugin.internal.PluginExecutorService"
56                 android:isolatedProcess="true"
57                 android:process=":plugin_disable_art_image_"
58                 android:exported="false" >
59        </service>
60        <service android:name="com.android.ondevicepersonalization.services.download.OnDevicePersonalizationDownloadProcessingJobService"
61                 android:exported="false"
62                 android:permission="android.permission.BIND_JOB_SERVICE">
63        </service>
64        <service android:name="com.android.ondevicepersonalization.services.maintenance.OnDevicePersonalizationMaintenanceJobService"
65                 android:exported="false"
66                 android:permission="android.permission.BIND_JOB_SERVICE">
67        </service>
68        <service android:name="com.android.ondevicepersonalization.services.download.mdd.MddJobService"
69                 android:exported="false"
70                 android:permission="android.permission.BIND_JOB_SERVICE">
71        </service>
72        <service android:name="com.android.ondevicepersonalization.services.data.user.UserDataCollectionJobService"
73                 android:exported="false"
74                 android:permission="android.permission.BIND_JOB_SERVICE">
75        </service>
76        <service android:name="com.android.ondevicepersonalization.services.reset.ResetDataJobService"
77                 android:exported="false"
78                 android:permission="android.permission.BIND_JOB_SERVICE">
79        </service>
80        <service android:name="com.android.ondevicepersonalization.services.data.errors.AggregateErrorDataReportingService"
81                 android:exported="false"
82                 android:permission="android.permission.BIND_JOB_SERVICE">
83        </service>
84        <service
85            android:name="com.android.ondevicepersonalization.services.federatedcompute.OdpExampleStoreService"
86            android:enabled="true"
87            android:exported="true"
88            android:permission="android.permission.BIND_EXAMPLE_STORE_SERVICE">
89            <intent-filter>
90                <action android:name="android.federatedcompute.EXAMPLE_STORE" />
91            </intent-filter>
92        </service>
93        <service android:name="com.android.ondevicepersonalization.services.federatedcompute.OdpResultHandlingService"
94                 android:enabled="true" android:exported="true" >
95            <intent-filter>
96                <action android:name="android.federatedcompute.COMPUTATION_RESULT" />
97            </intent-filter>
98        </service>
99        <service
100            android:name="com.android.ondevicepersonalization.services.inference.IsolatedModelService"
101            android:isolatedProcess="true"
102            android:allowSharedIsolatedProcess="true"
103            android:exported="false">
104        </service>
105        <service
106            android:name="com.test.TestPersonalizationService"
107            android:isolatedProcess="true"
108            android:allowSharedIsolatedProcess="true"/>
109
110        <!-- The JobService schedules all jobs for ODP using SPE framework. -->
111        <service
112            android:name="com.android.ondevicepersonalization.services.sharedlibrary.spe.OdpJobService"
113            android:exported="false"
114            android:permission="android.permission.BIND_JOB_SERVICE">
115        </service>
116
117        <!-- On BOOT_COMPLETED receiver for registering jobs -->
118        <!-- TODO(b/250001593) Enable any required broadcast receivers during runtime/onCreate. -->
119        <receiver
120            android:name="com.android.ondevicepersonalization.services.OnDevicePersonalizationBroadcastReceiver"
121            android:enabled="false"
122            android:exported="false">
123            <intent-filter>
124                <action android:name="android.intent.action.BOOT_COMPLETED"/>
125            </intent-filter>
126        </receiver>
127    </application>
128    <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner"
129                     android:targetPackage="com.android.ondevicepersonalization.servicetests"
130                     android:label="Tests of OnDevicePersonalizationManagingService"/>
131</manifest>
132