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<!-- versionCode is set to placeholder module version which will 19 be replaced during build. Do not change it! --> 20<manifest 21 xmlns:android="http://schemas.android.com/apk/res/android" 22 package="com.android.federatedcompute.services" 23 android:versionCode="0"> 24 25 <!-- Define the permission to call federated compute clients implemented ExampleStoreService --> 26 <permission 27 android:name="android.permission.BIND_EXAMPLE_STORE_SERVICE" 28 android:protectionLevel="signature" /> 29 30 <!-- Required for finding calling package info --> 31 <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/> 32 <!-- Required for persisting scheduled jobs --> 33 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 34 <!-- Used for scheduling connectivity jobs --> 35 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 36 <uses-permission android:name="android.permission.INTERNET" /> 37 <!-- Required for reading device configs --> 38 <uses-permission android:name="android.permission.READ_DEVICE_CONFIG"/> 39 <!-- Permission to call federated compute clients implemented ExampleStoreService --> 40 <uses-permission 41 android:name="android.permission.BIND_EXAMPLE_STORE_SERVICE" /> 42 43 <application android:forceQueryable="true"> 44 <service android:name=".FederatedComputeManagingServiceImpl" android:exported="true"> 45 <intent-filter> 46 <action android:name="android.federatedcompute.FederatedComputeService"/> 47 </intent-filter> 48 </service> 49 50 <!-- The JobService schedules all jobs for FederatedCompute using SPE framework. --> 51 <service 52 android:name="com.android.federatedcompute.services.sharedlibrary.spe.FederatedComputeJobService" 53 android:exported="false" 54 android:permission="android.permission.BIND_JOB_SERVICE"> 55 </service> 56 57 <!-- The JobService runs in main process, so when JobScheduler wakes up, it allows us to 58 decide not to start training without incurring overhead. --> 59 <service android:name="com.android.federatedcompute.services.training.FederatedJobService" 60 android:exported="false" 61 android:permission="android.permission.BIND_JOB_SERVICE"> 62 </service> 63 <service 64 android:name="com.android.federatedcompute.services.encryption.BackgroundKeyFetchJobService" 65 android:exported="false" 66 android:permission="android.permission.BIND_JOB_SERVICE"> 67 </service> 68 <service 69 android:name="com.android.federatedcompute.services.scheduling.DeleteExpiredJobService" 70 android:exported="false" 71 android:permission="android.permission.BIND_JOB_SERVICE"> 72 </service> 73 <service android:name="com.android.federatedcompute.services.training.IsolatedTrainingService" 74 android:isolatedProcess="true" android:exported="false" > 75 </service> 76 <!-- On BOOT_COMPLETED receiver for registering jobs --> 77 <receiver android:name=".FederatedComputeBroadcastReceiver" 78 android:enabled="true" 79 android:exported="false"> 80 <intent-filter> 81 <action android:name="android.intent.action.BOOT_COMPLETED" /> 82 </intent-filter> 83 </receiver> 84 </application> 85</manifest>