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<manifest 20 xmlns:android="http://schemas.android.com/apk/res/android" 21 package="com.android.adservices.api"> 22 23 <!-- Declare the broadcast as protected so only the system service can send it. The AdServices 24 System Service will send this broadcast to the AdServices module where there is a package 25 change.--> 26 <protected-broadcast android:name="com.android.adservices.PACKAGE_CHANGED"/> 27 28 <!-- Allows the system service to query app status--> 29 <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/> 30 31 <!-- Permissions required for showing notifications. --> 32 <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/> 33 34 <!-- Permissions required for reading device configs --> 35 <uses-permission android:name="android.permission.READ_DEVICE_CONFIG"/> 36 37 <!-- Used for reporting --> 38 <uses-permission android:name="android.permission.INTERNET"/> 39 40 <!-- Used for scheduling connectivity jobs --> 41 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 42 43 <!-- Used to verify if the calling application is running in foreground. --> 44 <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/> 45 46 <!-- Used for persisting scheduled jobs --> 47 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 48 49 <!-- Allows an application to access AdServices Topics API. --> 50 <permission android:name="android.permission.ACCESS_ADSERVICES_TOPICS" 51 android:label="@string/permlab_accessAdServicesTopics" 52 android:description="@string/permdesc_accessAdServicesTopics" 53 android:protectionLevel="normal"/> 54 55 <!-- Allows an application to access AdServices Attribution APIs. --> 56 <permission android:name="android.permission.ACCESS_ADSERVICES_ATTRIBUTION" 57 android:label="@string/permlab_accessAdServicesAttribution" 58 android:description="@string/permdesc_accessAdServicesAttribution" 59 android:protectionLevel="normal"/> 60 61 <!-- Allows an application to access AdServices Custom Audience APIs. --> 62 <permission android:name="android.permission.ACCESS_ADSERVICES_CUSTOM_AUDIENCE" 63 android:label="@string/permlab_accessAdServicesCustomAudience" 64 android:description="@string/permdesc_accessAdServicesCustomAudience" 65 android:protectionLevel="normal"/> 66 67 <!-- Allows an application to access AdServices Ad Id API. --> 68 <permission android:name="android.permission.ACCESS_ADSERVICES_AD_ID" 69 android:label="@string/permlab_accessAdServicesAdId" 70 android:description="@string/permdesc_accessAdServicesAdId" 71 android:protectionLevel="normal"/> 72 73 <!-- Allows AdServices to access API for Ad ID. --> 74 <permission android:name="android.permission.ACCESS_PRIVILEGED_AD_ID" 75 android:label="@string/permlab_adServicesAccessAdId" 76 android:description="@string/permdesc_adServicesAccessAdId" 77 android:protectionLevel="signature"/> 78 79 <!-- Allows AdServices to access API for App set ID. --> 80 <permission android:name="android.permission.ACCESS_PRIVILEGED_APP_SET_ID" 81 android:label="@string/permlab_adServicesAccessAppSetId" 82 android:description="@string/permdesc_adServicesAccessAppSetId" 83 android:protectionLevel="signature"/> 84 85 <!-- Allows the caller to modify AdService's state via Common Service. --> 86 <permission android:name="android.permission.MODIFY_ADSERVICES_STATE" 87 android:label="@string/permlab_modifyAdServicesState" 88 android:description="@string/permdesc_modifyAdServicesState" 89 android:protectionLevel="signature|configurator"/> 90 91 <!-- Allows the caller to get AdService's state via Common Service. --> 92 <permission android:name="android.permission.ACCESS_ADSERVICES_STATE" 93 android:label="@string/permlab_accessAdServicesState" 94 android:description="@string/permdesc_accessAdServicesState" 95 android:protectionLevel="signature|configurator"/> 96 97 <!-- Permission to allow calling AdServiceManager's APIs. --> 98 <permission android:name="android.permission.ACCESS_ADSERVICES_MANAGER" 99 android:label="@string/permlab_accessAdServicesManager" 100 android:description="@string/permdesc_accessAdServicesManager" 101 android:protectionLevel="signature"/> 102 103 <!-- Allow AdServicesApk (PPAPI) to call AdService's system service. --> 104 <uses-permission android:name="android.permission.ACCESS_ADSERVICES_MANAGER"/> 105 106 <uses-permission android:name="android.permission.ACCESS_PRIVILEGED_AD_ID"/> 107 <uses-permission android:name="android.permission.ACCESS_PRIVILEGED_APP_SET_ID"/> 108 109 <!-- Allows JobScheduler to persist jobs across reboot. --> 110 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 111 112 <application 113 android:label="@string/app_label" 114 android:forceQueryable="true" 115 android:allowBackup="false" 116 android:supportsRtl="true" 117 android:icon="@drawable/ic_android_icon" 118 android:theme="@style/FilterTouches"> 119 <!-- Activity for the main view of Adservices Settings UI--> 120 <activity 121 android:name="com.android.adservices.ui.settings.activities.AdServicesSettingsMainActivity" 122 android:exported="true" 123 android:theme="@style/Theme.SubSettingsBase"> 124 <intent-filter android:priority="1"> 125 <action android:name="android.adservices.ui.SETTINGS"/> 126 <category android:name="android.intent.category.DEFAULT"/> 127 </intent-filter> 128 </activity> 129 130 <!-- Activity for the topics view of Adservices Settings UI--> 131 <activity 132 android:name="com.android.adservices.ui.settings.activities.TopicsActivity" 133 android:exported="true" 134 android:theme="@style/Theme.SubSettingsBase"> 135 <intent-filter android:priority="1"> 136 <action android:name="android.adservices.ui.TOPICS"/> 137 <category android:name="android.intent.category.DEFAULT"/> 138 </intent-filter> 139 </activity> 140 141 <!-- Activity for the blocked topics view of Adservices Settings UI--> 142 <activity 143 android:name="com.android.adservices.ui.settings.activities.BlockedTopicsActivity" 144 android:exported="true" 145 android:theme="@style/Theme.SubSettingsBase"> 146 <intent-filter android:priority="1"> 147 <action android:name="android.adservices.ui.BLOCKED_TOPICS"/> 148 <category android:name="android.intent.category.DEFAULT"/> 149 </intent-filter> 150 </activity> 151 152 <!-- Activity for the apps view of Adservices Settings UI--> 153 <activity 154 android:name="com.android.adservices.ui.settings.activities.AppsActivity" 155 android:exported="true" 156 android:theme="@style/Theme.SubSettingsBase"> 157 <intent-filter android:priority="1"> 158 <action android:name="android.adservices.ui.APPS"/> 159 <category android:name="android.intent.category.DEFAULT"/> 160 </intent-filter> 161 </activity> 162 163 <!-- Activity for the blocked apps view of Adservices Settings UI--> 164 <activity 165 android:name="com.android.adservices.ui.settings.activities.BlockedAppsActivity" 166 android:exported="true" 167 android:theme="@style/Theme.SubSettingsBase"> 168 <intent-filter android:priority="1"> 169 <action android:name="android.adservices.ui.BLOCKED_APPS"/> 170 <category android:name="android.intent.category.DEFAULT"/> 171 </intent-filter> 172 </activity> 173 174 <!-- Activity for the ads measurement view of AdServices Settings UI--> 175 <activity 176 android:name="com.android.adservices.ui.settings.activities.MeasurementActivity" 177 android:exported="true" 178 android:theme="@style/Theme.SubSettingsBase"> 179 <intent-filter android:priority="1"> 180 <action android:name="android.adservices.ui.MEASUREMENT"/> 181 <category android:name="android.intent.category.DEFAULT"/> 182 </intent-filter> 183 </activity> 184 185 <!-- Activity for Adservices Detailed Notification UI --> 186 <activity 187 android:name="com.android.adservices.ui.notifications.ConsentNotificationActivity" 188 android:exported="true" 189 android:theme="@style/AdServices.NotificationTheme"> 190 <intent-filter android:priority="1"> 191 <action android:name="android.adservices.ui.NOTIFICATIONS"/> 192 <category android:name="android.intent.category.DEFAULT"/> 193 </intent-filter> 194 </activity> 195 196 <service android:name="com.android.adservices.adselection.AdSelectionService" 197 android:exported="true" 198 android:visibleToInstantApps="false"> 199 <intent-filter android:priority="1"> 200 <action android:name="android.adservices.adselection.AD_SELECTION_SERVICE"/> 201 </intent-filter> 202 </service> 203 204 <service android:name= 205 "com.android.adservices.customaudience.CustomAudienceService" 206 android:exported="true" 207 android:visibleToInstantApps="false"> 208 <intent-filter android:priority="1"> 209 <action android:name= 210 "android.adservices.customaudience.CUSTOM_AUDIENCE_SERVICE"/> 211 </intent-filter> 212 </service> 213 214 <service android:name="com.android.adservices.topics.TopicsService" 215 android:exported="true" 216 android:visibleToInstantApps="false"> 217 <intent-filter android:priority="1"> 218 <action android:name="android.adservices.TOPICS_SERVICE"/> 219 </intent-filter> 220 </service> 221 222 <service android:name="com.android.adservices.adid.AdIdService" 223 android:exported="true" 224 android:visibleToInstantApps="false"> 225 <intent-filter android:priority="1"> 226 <action android:name="android.adservices.ADID_SERVICE"/> 227 </intent-filter> 228 </service> 229 230 <service android:name="com.android.adservices.appsetid.AppSetIdService" 231 android:exported="true" 232 android:visibleToInstantApps="false"> 233 <intent-filter android:priority="1"> 234 <action android:name="android.adservices.APPSETID_SERVICE"/> 235 </intent-filter> 236 </service> 237 238 <service android:name="com.android.adservices.measurement.MeasurementService" 239 android:exported="true" 240 android:visibleToInstantApps="false"> 241 <intent-filter android:priority="1"> 242 <action android:name="android.adservices.MEASUREMENT_SERVICE"/> 243 </intent-filter> 244 </service> 245 246 <service android:name="com.android.adservices.common.AdServicesCommonService" 247 android:exported="true" 248 android:visibleToInstantApps="false" 249 > 250 <intent-filter android:priority="1"> 251 <action android:name="android.adservices.AD_SERVICES_COMMON_SERVICE"/> 252 </intent-filter> 253 </service> 254 255 <!-- Daily maintenance Job. --> 256 <service android:name="com.android.adservices.service.MaintenanceJobService" 257 android:permission="android.permission.BIND_JOB_SERVICE"> 258 </service> 259 260 <!-- Epoch computation Job. --> 261 <service android:name="com.android.adservices.service.topics.EpochJobService" 262 android:permission="android.permission.BIND_JOB_SERVICE"> 263 </service> 264 265 <!-- Mdd background Job. --> 266 <service android:name="com.android.adservices.download.MddJobService" 267 android:permission="android.permission.BIND_JOB_SERVICE"> 268 </service> 269 270 <!-- Enable Notification Job. --> 271 <service android:name="com.android.adservices.service.common.ConsentNotificationJobService" 272 android:permission="android.permission.BIND_JOB_SERVICE"> 273 </service> 274 275 <!-- Measurement event main report upload job. --> 276 <service 277 android:name="com.android.adservices.service.measurement.reporting.EventReportingJobService" 278 android:permission="android.permission.BIND_JOB_SERVICE"> 279 </service> 280 281 <!-- Measurement debug report upload job. --> 282 <service 283 android:name="com.android.adservices.service.measurement.reporting.DebugReportingJobService" 284 android:permission="android.permission.BIND_JOB_SERVICE"> 285 </service> 286 287 <!-- Measurement event fallback report upload job. --> 288 <service android:name= 289 "com.android.adservices.service.measurement.reporting.EventFallbackReportingJobService" 290 android:permission="android.permission.BIND_JOB_SERVICE"> 291 </service> 292 293 <!-- Measurement aggregate main report upload job. --> 294 <service android:name= 295 "com.android.adservices.service.measurement.reporting.AggregateReportingJobService" 296 android:permission="android.permission.BIND_JOB_SERVICE"> 297 </service> 298 299 <!-- Measurement aggregate fallback report upload job. --> 300 <service android:name= 301 "com.android.adservices.service.measurement.reporting.AggregateFallbackReportingJobService" 302 android:permission="android.permission.BIND_JOB_SERVICE"> 303 </service> 304 305 <!-- Measurement Attribution Job.--> 306 <service android:name= 307 "com.android.adservices.service.measurement.attribution.AttributionJobService" 308 android:permission="android.permission.BIND_JOB_SERVICE"> 309 </service> 310 <!-- Measurement Attribution Fallback Job.--> 311 <service android:name= 312 "com.android.adservices.service.measurement.attribution.AttributionFallbackJobService" 313 android:permission="android.permission.BIND_JOB_SERVICE"> 314 </service> 315 316 <!-- Deletion Job.--> 317 <service android:name= 318 "com.android.adservices.service.measurement.DeleteExpiredJobService" 319 android:permission="android.permission.BIND_JOB_SERVICE"> 320 </service> 321 322 <!-- Measurement Deletion Uninstalled Apps Job. --> 323 <service android:name= 324 "com.android.adservices.service.measurement.DeleteUninstalledJobService" 325 android:permission="android.permission.BIND_JOB_SERVICE"> 326 </service> 327 328 <!-- FLEDGE Background Fetch Job --> 329 <service android:name= 330 "com.android.adservices.service.customaudience.BackgroundFetchJobService" 331 android:permission="android.permission.BIND_JOB_SERVICE"> 332 </service> 333 334 <!-- Measurement Registration Job --> 335 <service android:name= 336 "com.android.adservices.service.measurement.registration.AsyncRegistrationQueueJobService" 337 android:permission="android.permission.BIND_JOB_SERVICE"> 338 </service> 339 <!-- Measurement Registration Fallback Job --> 340 <service android:name= 341 "com.android.adservices.service.measurement.registration.AsyncRegistrationFallbackJobService" 342 android:permission="android.permission.BIND_JOB_SERVICE"> 343 </service> 344 345 <receiver android:name="com.android.adservices.service.common.PackageChangedReceiver" 346 android:enabled="false" 347 android:exported="true"> 348 <intent-filter> 349 <!-- This intent must match the intent definition in the AdServices system 350 service. --> 351 <action android:name="com.android.adservices.PACKAGE_CHANGED"/> 352 </intent-filter> 353 </receiver> 354 355 <provider 356 android:name= 357 "com.android.adservices.service.measurement.attribution.TriggerContentProvider" 358 android:authorities="com.android.adservices.provider.trigger" 359 android:exported="false" 360 /> 361 <provider 362 android:name= 363 "com.android.adservices.service.measurement.registration.AsyncRegistrationContentProvider" 364 android:authorities="com.android.adservices.provider.asyncregistration" 365 android:exported="false" 366 /> 367 </application> 368</manifest> 369