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