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 AdServices to access API for AdServices Cobalt upload. --> 86 <permission android:name="android.permission.ACCESS_PRIVILEGED_ADSERVICES_COBALT_UPLOAD" 87 android:label="@string/permlab_adServicesAccessAdServicesCobaltUpload" 88 android:description="@string/permdesc_adServicesAccessAdServicesCobaltUpload" 89 android:protectionLevel="signature"/> 90 91 <!-- Allows the caller to modify AdService's state via Common Service. --> 92 <permission android:name="android.permission.MODIFY_ADSERVICES_STATE" 93 android:label="@string/permlab_modifyAdServicesState" 94 android:description="@string/permdesc_modifyAdServicesState" 95 android:protectionLevel="signature|configurator"/> 96 97 <!-- Allows the caller to get AdService's state via Common Service. --> 98 <permission android:name="android.permission.ACCESS_ADSERVICES_STATE" 99 android:label="@string/permlab_accessAdServicesState" 100 android:description="@string/permdesc_accessAdServicesState" 101 android:protectionLevel="signature|configurator"/> 102 103 <!-- Permission to allow calling AdServiceManager's APIs. --> 104 <permission android:name="android.permission.ACCESS_ADSERVICES_MANAGER" 105 android:label="@string/permlab_accessAdServicesManager" 106 android:description="@string/permdesc_accessAdServicesManager" 107 android:protectionLevel="signature"/> 108 109 <!-- Permission to allow calling updating AdId Cache API via Common Service. --> 110 <permission android:name="android.permission.UPDATE_PRIVILEGED_AD_ID" 111 android:label="@string/permlab_updateAdservicesAdId" 112 android:description="@string/permdesc_updateAdservicesAdId" 113 android:protectionLevel="signature|configurator"/> 114 115 <!-- Allow AdServicesApk (PPAPI) to call AdService's system service. --> 116 <uses-permission android:name="android.permission.ACCESS_ADSERVICES_MANAGER"/> 117 118 <uses-permission android:name="android.permission.ACCESS_PRIVILEGED_AD_ID"/> 119 <uses-permission android:name="android.permission.ACCESS_PRIVILEGED_APP_SET_ID"/> 120 <uses-permission android:name="android.permission.ACCESS_PRIVILEGED_ADSERVICES_COBALT_UPLOAD" /> 121 122 <!-- Allows JobScheduler to persist jobs across reboot. --> 123 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 124 125 <!-- Required for sending measurement events --> 126 <uses-permission android:name="android.permission.ondevicepersonalization.NOTIFY_MEASUREMENT_EVENT"/> 127 128 <application 129 android:label="@string/app_label" 130 android:forceQueryable="true" 131 android:allowBackup="false" 132 android:supportsRtl="true" 133 android:icon="@drawable/ic_android_icon" 134 android:theme="@style/FilterTouches"> 135 <!-- Activity for the main view of Adservices Settings UI--> 136 <activity 137 android:name="com.android.adservices.ui.settings.activities.AdServicesSettingsMainActivity" 138 android:exported="true" 139 android:theme="@style/Theme.SubSettingsBase"> 140 <intent-filter android:priority="1"> 141 <action android:name="android.adservices.ui.SETTINGS"/> 142 <category android:name="android.intent.category.DEFAULT"/> 143 </intent-filter> 144 </activity> 145 146 <!-- Activity for the topics view of Adservices Settings UI--> 147 <activity 148 android:name="com.android.adservices.ui.settings.activities.TopicsActivity" 149 android:exported="true" 150 android:theme="@style/Theme.SubSettingsBase"> 151 <intent-filter android:priority="1"> 152 <action android:name="android.adservices.ui.TOPICS"/> 153 <category android:name="android.intent.category.DEFAULT"/> 154 </intent-filter> 155 </activity> 156 157 <!-- Activity for the blocked topics view of Adservices Settings UI--> 158 <activity 159 android:name="com.android.adservices.ui.settings.activities.BlockedTopicsActivity" 160 android:exported="true" 161 android:theme="@style/Theme.SubSettingsBase"> 162 <intent-filter android:priority="1"> 163 <action android:name="android.adservices.ui.BLOCKED_TOPICS"/> 164 <category android:name="android.intent.category.DEFAULT"/> 165 </intent-filter> 166 </activity> 167 168 <!-- Activity for the apps view of Adservices Settings UI--> 169 <activity 170 android:name="com.android.adservices.ui.settings.activities.AppsActivity" 171 android:exported="true" 172 android:theme="@style/Theme.SubSettingsBase"> 173 <intent-filter android:priority="1"> 174 <action android:name="android.adservices.ui.APPS"/> 175 <category android:name="android.intent.category.DEFAULT"/> 176 </intent-filter> 177 </activity> 178 179 <!-- Activity for the blocked apps view of Adservices Settings UI--> 180 <activity 181 android:name="com.android.adservices.ui.settings.activities.BlockedAppsActivity" 182 android:exported="true" 183 android:theme="@style/Theme.SubSettingsBase"> 184 <intent-filter android:priority="1"> 185 <action android:name="android.adservices.ui.BLOCKED_APPS"/> 186 <category android:name="android.intent.category.DEFAULT"/> 187 </intent-filter> 188 </activity> 189 190 <!-- Activity for the ads measurement view of AdServices Settings UI--> 191 <activity 192 android:name="com.android.adservices.ui.settings.activities.MeasurementActivity" 193 android:exported="true" 194 android:theme="@style/Theme.SubSettingsBase"> 195 <intent-filter android:priority="1"> 196 <action android:name="android.adservices.ui.MEASUREMENT"/> 197 <category android:name="android.intent.category.DEFAULT"/> 198 </intent-filter> 199 </activity> 200 201 <!-- Activity for Adservices Detailed Notification UI --> 202 <activity 203 android:name="com.android.adservices.ui.notifications.ConsentNotificationActivity" 204 android:exported="true" 205 android:theme="@style/AdServices.NotificationTheme"> 206 <intent-filter android:priority="1"> 207 <action android:name="android.adservices.ui.NOTIFICATIONS"/> 208 <category android:name="android.intent.category.DEFAULT"/> 209 </intent-filter> 210 </activity> 211 212 <service android:name="com.android.adservices.adselection.AdSelectionService" 213 android:exported="true" 214 android:visibleToInstantApps="false"> 215 <intent-filter android:priority="1"> 216 <action android:name="android.adservices.adselection.AD_SELECTION_SERVICE"/> 217 </intent-filter> 218 </service> 219 220 <service android:name= 221 "com.android.adservices.customaudience.CustomAudienceService" 222 android:exported="true" 223 android:visibleToInstantApps="false"> 224 <intent-filter android:priority="1"> 225 <action android:name= 226 "android.adservices.customaudience.CUSTOM_AUDIENCE_SERVICE"/> 227 </intent-filter> 228 </service> 229 230 <service android:name= 231 "com.android.adservices.signals.ProtectedSignalsService" 232 android:exported="true" 233 android:visibleToInstantApps="false"> 234 <intent-filter android:priority="1"> 235 <action android:name= 236 "android.adservices.signals.PROTECTED_SIGNALS_SERVICE"/> 237 </intent-filter> 238 </service> 239 240 <service android:name="com.android.adservices.topics.TopicsService" 241 android:exported="true" 242 android:visibleToInstantApps="false"> 243 <intent-filter android:priority="1"> 244 <action android:name="android.adservices.TOPICS_SERVICE"/> 245 </intent-filter> 246 </service> 247 248 <service android:name="com.android.adservices.adid.AdIdService" 249 android:exported="true" 250 android:visibleToInstantApps="false"> 251 <intent-filter android:priority="1"> 252 <action android:name="android.adservices.ADID_SERVICE"/> 253 </intent-filter> 254 </service> 255 256 <service android:name="com.android.adservices.appsetid.AppSetIdService" 257 android:exported="true" 258 android:visibleToInstantApps="false"> 259 <intent-filter android:priority="1"> 260 <action android:name="android.adservices.APPSETID_SERVICE"/> 261 </intent-filter> 262 </service> 263 264 <service android:name="com.android.adservices.measurement.MeasurementService" 265 android:exported="true" 266 android:visibleToInstantApps="false"> 267 <intent-filter android:priority="1"> 268 <action android:name="android.adservices.MEASUREMENT_SERVICE"/> 269 </intent-filter> 270 </service> 271 272 <service android:name="com.android.adservices.common.AdServicesCommonService" 273 android:exported="true" 274 android:visibleToInstantApps="false" 275 > 276 <intent-filter android:priority="1"> 277 <action android:name="android.adservices.AD_SERVICES_COMMON_SERVICE"/> 278 </intent-filter> 279 </service> 280 281 <service android:name="com.android.adservices.shell.AdServicesShellCommandService" 282 android:exported="true" 283 android:visibleToInstantApps="false" 284 > 285 <intent-filter android:priority="1"> 286 <action android:name="android.adservices.SHELL_COMMAND_SERVICE"/> 287 </intent-filter> 288 </service> 289 290 <!-- The JobService schedules all jobs for AdServices using SPE framework. --> 291 <service android:name="com.android.adservices.spe.AdServicesJobService" 292 android:permission="android.permission.BIND_JOB_SERVICE"> 293 </service> 294 295 <!-- Daily maintenance Job. --> 296 <service android:name="com.android.adservices.service.MaintenanceJobService" 297 android:permission="android.permission.BIND_JOB_SERVICE"> 298 </service> 299 300 <!-- Epoch computation Job. --> 301 <service android:name="com.android.adservices.service.topics.EpochJobService" 302 android:permission="android.permission.BIND_JOB_SERVICE"> 303 </service> 304 305 <!-- Mdd background Job. --> 306 <service android:name="com.android.adservices.download.MddJobService" 307 android:permission="android.permission.BIND_JOB_SERVICE"> 308 </service> 309 310 <!-- Encryption key fetch job. --> 311 <service android:name="com.android.adservices.service.encryptionkey.EncryptionKeyJobService" 312 android:permission="android.permission.BIND_JOB_SERVICE"> 313 </service> 314 315 <!-- Enable Notification Job. --> 316 <service android:name="com.android.adservices.service.common.ConsentNotificationJobService" 317 android:permission="android.permission.BIND_JOB_SERVICE"> 318 </service> 319 320 <!-- Measurement event main report upload job. --> 321 <service 322 android:name="com.android.adservices.service.measurement.reporting.EventReportingJobService" 323 android:permission="android.permission.BIND_JOB_SERVICE"> 324 </service> 325 326 <!-- Measurement debug report upload job. --> 327 <service android:name= 328 "com.android.adservices.service.measurement.reporting.DebugReportingJobService" 329 android:permission="android.permission.BIND_JOB_SERVICE"> 330 </service> 331 332 <!-- Measurement verbose debug report upload job. --> 333 <service android:name= 334 "com.android.adservices.service.measurement.reporting.VerboseDebugReportingJobService" 335 android:permission="android.permission.BIND_JOB_SERVICE"> 336 </service> 337 338 <!-- Measurement event fallback report upload job. --> 339 <service android:name= 340 "com.android.adservices.service.measurement.reporting.EventFallbackReportingJobService" 341 android:permission="android.permission.BIND_JOB_SERVICE"> 342 </service> 343 344 <!-- Measurement aggregate main report upload job. --> 345 <service android:name= 346 "com.android.adservices.service.measurement.reporting.AggregateReportingJobService" 347 android:permission="android.permission.BIND_JOB_SERVICE"> 348 </service> 349 350 <!-- Measurement aggregate fallback report upload job. --> 351 <service android:name= 352 "com.android.adservices.service.measurement.reporting.AggregateFallbackReportingJobService" 353 android:permission="android.permission.BIND_JOB_SERVICE"> 354 </service> 355 356 <!-- Measurement immediate aggregate report upload job. --> 357 <service android:name= 358 "com.android.adservices.service.measurement.reporting.ImmediateAggregateReportingJobService" 359 android:permission="android.permission.BIND_JOB_SERVICE"> 360 </service> 361 362 <!-- Measurement report upload job. --> 363 <service android:name= 364 "com.android.adservices.service.measurement.reporting.ReportingJobService" 365 android:permission="android.permission.BIND_JOB_SERVICE"> 366 </service> 367 368 <!-- Measurement Attribution Job.--> 369 <service android:name= 370 "com.android.adservices.service.measurement.attribution.AttributionJobService" 371 android:permission="android.permission.BIND_JOB_SERVICE"> 372 </service> 373 <!-- Measurement Attribution Fallback Job.--> 374 <service android:name= 375 "com.android.adservices.service.measurement.attribution.AttributionFallbackJobService" 376 android:permission="android.permission.BIND_JOB_SERVICE"> 377 </service> 378 379 <!-- Deletion Job.--> 380 <service android:name= 381 "com.android.adservices.service.measurement.DeleteExpiredJobService" 382 android:permission="android.permission.BIND_JOB_SERVICE"> 383 </service> 384 385 <!-- Measurement Deletion Uninstalled Apps Job. --> 386 <service android:name= 387 "com.android.adservices.service.measurement.DeleteUninstalledJobService" 388 android:permission="android.permission.BIND_JOB_SERVICE"> 389 </service> 390 391 <!-- FLEDGE Background Fetch Job --> 392 <service android:name= 393 "com.android.adservices.service.customaudience.BackgroundFetchJobService" 394 android:permission="android.permission.BIND_JOB_SERVICE"> 395 </service> 396 397 <!-- FLEDGE Schedule Custom Audience Update Job --> 398 <service android:name= 399 "com.android.adservices.service.customaudience.ScheduleCustomAudienceUpdateJobService" 400 android:permission="android.permission.BIND_JOB_SERVICE"> 401 </service> 402 403 <!-- FLEDGE Ad selection debug report sender Job --> 404 <service android:name= 405 "com.android.adservices.service.adselection.DebugReportSenderJobService" 406 android:permission="android.permission.BIND_JOB_SERVICE"> 407 </service> 408 409 <!-- FLEDGE Protected Signals periodic encoding job --> 410 <service android:name= 411 "com.android.adservices.service.signals.PeriodicEncodingJobService" 412 android:permission="android.permission.BIND_JOB_SERVICE"> 413 </service> 414 415 <!-- FLEDGE KAnon sign join background job --> 416 <service android:name= 417 "com.android.adservices.service.kanon.KAnonSignJoinBackgroundJobService" 418 android:permission="android.permission.BIND_JOB_SERVICE"> 419 </service> 420 421 <!-- FLEDGE Background Key Fetch Job --> 422 <service android:name= 423 "com.android.adservices.service.adselection.encryption.BackgroundKeyFetchJobService" 424 android:permission="android.permission.BIND_JOB_SERVICE"> 425 </service> 426 427 <!-- Measurement Registration Job --> 428 <service android:name= 429 "com.android.adservices.service.measurement.registration.AsyncRegistrationQueueJobService" 430 android:permission="android.permission.BIND_JOB_SERVICE"> 431 </service> 432 <!-- Measurement Registration Fallback Job --> 433 <service android:name= 434 "com.android.adservices.service.measurement.registration.AsyncRegistrationFallbackJobService" 435 android:permission="android.permission.BIND_JOB_SERVICE"> 436 </service> 437 438 <!-- Measurement Verbose Debug Reporting Fallback Job. --> 439 <service android:name= 440 "com.android.adservices.service.measurement.reporting.VerboseDebugReportingFallbackJobService" 441 android:permission="android.permission.BIND_JOB_SERVICE"> 442 </service> 443 444 <!-- Measurement Debug Reporting Fallback Job. --> 445 <service android:name= 446 "com.android.adservices.service.measurement.reporting.DebugReportingFallbackJobService" 447 android:permission="android.permission.BIND_JOB_SERVICE"> 448 </service> 449 450 <!-- Cobalt Logging Job --> 451 <service 452 android:name="com.android.adservices.cobalt.CobaltJobService" 453 android:permission="android.permission.BIND_JOB_SERVICE"> 454 </service> 455 456 <receiver android:name="com.android.adservices.service.common.PackageChangedReceiver" 457 android:enabled="false" 458 android:exported="true"> 459 <intent-filter> 460 <!-- This intent must match the intent definition in the AdServices system 461 service. --> 462 <action android:name="com.android.adservices.PACKAGE_CHANGED"/> 463 </intent-filter> 464 </receiver> 465 466 <provider 467 android:name= 468 "com.android.adservices.service.measurement.attribution.TriggerContentProvider" 469 android:authorities="com.android.adservices.provider.trigger" 470 android:exported="false" 471 /> 472 <provider 473 android:name= 474 "com.android.adservices.service.measurement.registration.AsyncRegistrationContentProvider" 475 android:authorities="com.android.adservices.provider.asyncregistration" 476 android:exported="false" 477 /> 478 <provider 479 android:name= 480 "com.android.adservices.service.common.AdServicesInternalProvider" 481 android:authorities="com.android.adservices.provider.internal" 482 android:exported="false" 483 /> 484 </application> 485</manifest> 486 487