• 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 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