• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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