1<?xml version="1.0" encoding="utf-8"?> 2<!-- 3/* 4 * Copyright (C) 2022 The Android Open Source Project 5 * 6 * Licensed under the Apache License, Version 2.0 (the "License"); 7 * you may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18--> 19 20<!-- versionCode is set to placeholder module version which will 21 be replaced during build. Do not change it! --> 22<manifest 23 xmlns:android="http://schemas.android.com/apk/res/android" 24 package="com.android.ondevicepersonalization.services" 25 android:versionCode="0"> 26 <uses-sdk android:minSdkVersion="33"/> 27 28 <uses-permission android:name="android.permission.INTERNET"/> 29 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 30 <uses-permission android:name="android.permission.READ_BASIC_PHONE_STATE"/> 31 32 <!-- Required for the app to find all packages onboarded to ODP --> 33 <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/> 34 35 <!-- Required for persisting scheduled jobs --> 36 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 37 38 <!-- Required for reading device configs --> 39 <uses-permission android:name="android.permission.READ_DEVICE_CONFIG"/> 40 41 <!-- Required for reading common states from AdServices --> 42 <uses-permission android:name="android.permission.ACCESS_ADSERVICES_STATE"/> 43 44 <!-- Required for modifying personalization state --> 45 <permission android:name="android.permission.ondevicepersonalization.MODIFY_ONDEVICEPERSONALIZATION_STATE" 46 android:protectionLevel="signature|privileged"/> 47 48 <!-- Required for sending measurement events --> 49 <permission android:name="android.permission.ondevicepersonalization.NOTIFY_MEASUREMENT_EVENT" 50 android:protectionLevel="signature|privileged"/> 51 52 <!-- Required for invoking the system server service --> 53 <permission android:name="android.permission.ondevicepersonalization.ACCESS_SYSTEM_SERVER_SERVICE" 54 android:protectionLevel="signature"/> 55 56 <uses-permission android:name="android.permission.ondevicepersonalization.ACCESS_SYSTEM_SERVER_SERVICE" /> 57 58 <application android:name=".OnDevicePersonalizationApplication" 59 android:forceQueryable="true"> 60 <service android:name=".OnDevicePersonalizationManagingServiceImpl" android:exported="true" > 61 <intent-filter> 62 <action android:name="android.OnDevicePersonalizationService" /> 63 </intent-filter> 64 </service> 65 <service android:name=".OnDevicePersonalizationDebugServiceImpl" android:exported="true"> 66 <intent-filter> 67 <action android:name="android.OnDevicePersonalizationDebugService"/> 68 </intent-filter> 69 </service> 70 71 <!-- The JobService schedules all jobs for ODP using SPE framework. --> 72 <service 73 android:name="com.android.ondevicepersonalization.services.sharedlibrary.spe.OdpJobService" 74 android:exported="false" 75 android:permission="android.permission.BIND_JOB_SERVICE"> 76 </service> 77 78 <service 79 android:name="com.android.ondevicepersonalization.services.download.OnDevicePersonalizationDownloadProcessingJobService" 80 android:exported="false" 81 android:permission="android.permission.BIND_JOB_SERVICE"> 82 </service> 83 <service 84 android:name="com.android.ondevicepersonalization.services.maintenance.OnDevicePersonalizationMaintenanceJobService" 85 android:exported="false" 86 android:permission="android.permission.BIND_JOB_SERVICE"> 87 </service> 88 <service 89 android:name="com.android.ondevicepersonalization.services.data.user.UserDataCollectionJobService" 90 android:exported="false" 91 android:permission="android.permission.BIND_JOB_SERVICE"> 92 </service> 93 <service 94 android:name="com.android.ondevicepersonalization.services.download.mdd.MddJobService" 95 android:exported="false" 96 android:permission="android.permission.BIND_JOB_SERVICE"> 97 </service> 98 <service 99 android:name="com.android.ondevicepersonalization.services.reset.ResetDataJobService" 100 android:exported="false" 101 android:permission="android.permission.BIND_JOB_SERVICE"> 102 </service> 103 <service 104 android:name="com.android.ondevicepersonalization.services.data.errors.AggregateErrorDataReportingService" 105 android:exported="false" 106 android:permission="android.permission.BIND_JOB_SERVICE"> 107 </service> 108 <service android:name="com.android.ondevicepersonalization.libraries.plugin.internal.PluginExecutorService" 109 android:isolatedProcess="true" 110 android:process=":plugin_disable_art_image_" 111 android:exported="false" > 112 </service> 113 <service 114 android:name="com.android.ondevicepersonalization.services.federatedcompute.OdpExampleStoreService" 115 android:enabled="true" 116 android:exported="true" 117 android:permission="android.permission.BIND_EXAMPLE_STORE_SERVICE"> 118 <intent-filter> 119 <action android:name="android.federatedcompute.EXAMPLE_STORE" /> 120 </intent-filter> 121 </service> 122 <service android:name="com.android.ondevicepersonalization.services.federatedcompute.OdpResultHandlingService" 123 android:enabled="true" android:exported="true" > 124 <intent-filter> 125 <action android:name="android.federatedcompute.COMPUTATION_RESULT" /> 126 </intent-filter> 127 </service> 128 <service 129 android:name="com.android.ondevicepersonalization.services.inference.IsolatedModelService" 130 android:isolatedProcess="true" 131 android:allowSharedIsolatedProcess="true" 132 android:exported="false"> 133 </service> 134 135 <!-- On BOOT_COMPLETED receiver for registering jobs --> 136 <receiver android:name=".OnDevicePersonalizationBroadcastReceiver" 137 android:enabled="true" 138 android:exported="false"> 139 <intent-filter> 140 <action android:name="android.intent.action.BOOT_COMPLETED" /> 141 </intent-filter> 142 </receiver> 143 </application> 144</manifest> 145