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