• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<!--
2**
3** Copyright 2014, The Android Open Source Project
4**
5** Licensed under the Apache License, Version 2.0 (the "License");
6** you may not use this file except in compliance with the License.
7** You may obtain a copy of the License at
8**
9**     http://www.apache.org/licenses/LICENSE-2.0
10**
11** Unless required by applicable law or agreed to in writing, software
12** distributed under the License is distributed on an "AS IS" BASIS,
13** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14** See the License for the specific language governing permissions and
15** limitations under the License.
16*/
17-->
18<manifest xmlns:android="http://schemas.android.com/apk/res/android"
19    xmlns:tools="http://schemas.android.com/tools"
20    package="com.android.managedprovisioning">
21
22    <permission
23        android:name="android.permission.PROVISION_MANAGED_DEVICE_SILENTLY"
24        android:protectionLevel="signature|preinstalled" />
25
26    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
27    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
28    <uses-permission android:name="android.permission.MANAGE_USERS" />
29    <uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" />
30    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
31    <uses-permission android:name="android.permission.INSTALL_PACKAGES" />
32    <uses-permission android:name="android.permission.DELETE_PACKAGES" />
33    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
34    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
35    <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
36    <uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" />
37    <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
38    <uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES" />
39    <uses-permission android:name="android.permission.HIDE_OVERLAY_WINDOWS" />
40
41    <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
42    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
43    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
44
45    <uses-permission android:name="android.permission.INTERNET" />
46    <uses-permission android:name="android.permission.MASTER_CLEAR" />
47    <uses-permission android:name="android.permission.NFC" />
48    <uses-permission android:name="android.permission.SET_TIME" />
49    <uses-permission android:name="android.permission.SET_TIME_ZONE" />
50
51    <uses-permission android:name="android.permission.CRYPT_KEEPER" />
52    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
53    <uses-permission android:name="android.permission.SHUTDOWN" />
54
55    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
56    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
57
58    <uses-permission android:name="android.permission.PERFORM_CDMA_PROVISIONING" />
59    <uses-permission android:name="android.permission.ACCESS_PDB_STATE" />
60    <uses-permission android:name="android.permission.PEERS_MAC_ADDRESS" />
61
62    <uses-permission android:name="android.permission.NETWORK_MANAGED_PROVISIONING" />
63
64    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
65    <uses-permission android:name="android.permission.MARK_DEVICE_ORGANIZATION_OWNED" />
66
67    <!-- To set the bg color of the deferred setup notification (without a foreground service) -->
68    <uses-permission android:name="android.permission.USE_COLORIZED_NOTIFICATIONS" />
69
70    <uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
71
72    <!-- Required by setup design library -->
73    <uses-permission android:name="com.google.android.setupwizard.SETUP_COMPAT_SERVICE" />
74
75    <uses-permission android:name="android.permission.CONFIGURE_INTERACT_ACROSS_PROFILES" />
76
77    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
78
79    <uses-permission android:name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" />
80
81    <uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
82
83    <uses-permission android:name="android.permission.LAUNCH_DEVICE_MANAGER_SETUP" />
84
85    <!-- Used to read the device management role holder package name -->
86    <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" />
87
88    <application
89        android:name=".ManagedProvisioningApplication"
90        android:allowClearUserData="false"
91        android:hardwareAccelerated="true"
92        android:label="@string/app_label"
93        android:supportsRtl="true"
94        android:usesCleartextTraffic="true"
95        android:enableOnBackInvokedCallback="false">
96
97        <meta-data
98            android:name="com.android.managedprovisioning.patch.24760218"
99            android:value="true" />
100
101        <!--
102             Note: Setup activities are android:immersive to prevent full-screen notifications (USB
103            mass storage; incoming calls) from taking over. Note that high-priority notifications
104            (phone calls) will still pop up a small window that can be activated.
105        -->
106        <activity
107            android:name=".provisioning.ProvisioningActivity"
108            android:excludeFromRecents="true"
109            android:immersive="true"
110            android:launchMode="singleTop"
111            android:theme="@style/SudThemeGlifV4.DayNight"></activity>
112
113        <activity
114            android:name=".provisioning.AdminIntegratedFlowPrepareActivity"
115            android:excludeFromRecents="true"
116            android:immersive="true"
117            android:launchMode="singleTop"
118            android:theme="@style/SudThemeGlifV4.DayNight"></activity>
119
120        <activity
121            android:name=".preprovisioning.PreProvisioningActivity"
122            android:excludeFromRecents="true"
123            android:exported="true"
124            android:immersive="true"
125            android:launchMode="singleTop"
126            android:theme="@style/SudThemeGlifV4.DayNight">
127            <intent-filter android:priority="10">
128                <action android:name="android.app.action.PROVISION_MANAGED_PROFILE" />
129                <action android:name="android.app.action.PROVISION_MANAGED_DEVICE" />
130
131                <category android:name="android.intent.category.DEFAULT" />
132            </intent-filter>
133        </activity>
134
135        <activity
136            android:name=".provisioning.ResetAndReturnDeviceActivity"
137            android:excludeFromRecents="true"
138            android:immersive="true"
139            android:theme="@style/SudThemeGlifV4.Light" />
140
141        <activity
142            android:name=".provisioning.ResetDeviceActivity"
143            android:excludeFromRecents="true"
144            android:immersive="true"
145            android:theme="@style/SudThemeGlifV4.Light" />
146
147        <!--
148            Nfc bump entry for device owner provisioning, protected by a permission so only the Nfc
149            stack can trigger this.
150        -->
151        <activity
152            android:name=".preprovisioning.PreProvisioningActivityViaNfc"
153            android:exported="true"
154            android:permission="android.permission.DISPATCH_NFC_MESSAGE"
155            android:theme="@style/SudThemeGlifV4.DayNight">
156            <intent-filter android:priority="10">
157                <action android:name="android.nfc.action.NDEF_DISCOVERED" />
158                <category android:name="android.intent.category.DEFAULT" />
159                <data android:mimeType="application/com.android.managedprovisioning" />
160            </intent-filter>
161        </activity>
162        <!--
163            Trusted app entry for device owner provisioning, protected by a permission so only
164            privileged app can trigger this.
165        -->
166        <activity-alias
167            android:name=".PreProvisioningActivityViaTrustedApp"
168            android:exported="true"
169            android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE"
170            android:targetActivity=".preprovisioning.PreProvisioningActivity">
171            <intent-filter android:priority="10">
172                <action android:name="android.app.action.PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE" />
173                <action android:name="android.app.action.PROVISION_FINANCED_DEVICE" />
174
175                <category android:name="android.intent.category.DEFAULT" />
176            </intent-filter>
177        </activity-alias>
178        <!-- Entry to resume encryption after reboot. -->
179        <activity-alias
180            android:name=".PreProvisioningActivityAfterEncryption"
181            android:exported="false"
182            android:targetActivity=".preprovisioning.PreProvisioningActivity">
183            <intent-filter android:priority="10">
184                <action android:name="com.android.managedprovisioning.action.RESUME_PROVISIONING" />
185                <category android:name="android.intent.category.DEFAULT" />
186            </intent-filter>
187        </activity-alias>
188
189        <activity
190            android:name=".preprovisioning.terms.TermsActivity"
191            android:excludeFromRecents="true"
192            android:immersive="true"
193            android:launchMode="singleTop"
194            android:theme="@style/SudThemeGlifV4.DayNight" />
195        <activity
196            android:name=".preprovisioning.EncryptDeviceActivity"
197            android:immersive="true"
198            android:launchMode="singleTop"></activity>
199        <!--
200            Entry point for silent device owner provisioning.
201        -->
202        <service android:name=".provisioning.SilentDeviceOwnerProvisioningService"></service>
203        <receiver
204            android:name=".provisioning.SilentDeviceOwnerProvisioningReceiver"
205            android:exported="true"
206            android:permission="android.permission.PROVISION_MANAGED_DEVICE_SILENTLY">
207            <intent-filter android:priority="10">
208                <action android:name="android.app.action.PROVISION_MANAGED_DEVICE_SILENTLY" />
209            </intent-filter>
210        </receiver>
211
212        <activity
213            android:name=".preprovisioning.WebActivity"
214            android:immersive="true"
215            android:launchMode="singleTop"
216            android:process=":webview"
217            android:theme="@style/SudThemeGlifV4.DayNight"></activity>
218
219        <activity
220            android:name=".TrampolineActivity"
221            android:excludeFromRecents="true"
222            android:theme="@android:style/Theme.NoDisplay"></activity>
223
224        <!--
225            When PostEncryptionActivity is disabled, its entire task is going to get killed.
226            So, we explicitly specify a taskAffinity for this instead of a package default to make
227            sure it starts in a new task.
228        -->
229        <activity
230            android:name=".preprovisioning.PostEncryptionActivity"
231            android:enabled="false"
232            android:excludeFromRecents="true"
233            android:exported="true"
234            android:noHistory="true"
235            android:taskAffinity=":PostEncryptionActivity"
236            android:theme="@android:style/Theme.NoDisplay">
237            <intent-filter android:priority="10">
238                <action android:name="android.intent.action.MAIN" />
239
240                <category android:name="android.intent.category.HOME" />
241                <category android:name="android.intent.category.DEFAULT" />
242            </intent-filter>
243        </activity>
244
245        <service android:name=".provisioning.ProvisioningService" />
246        <service android:name=".finalization.SendDpcBroadcastService" />
247        <service android:name=".ota.OtaService" />
248
249        <receiver
250            android:name="com.android.managedprovisioning.BootReminder"
251            android:exported="true">
252            <intent-filter>
253                <action android:name="android.intent.action.BOOT_COMPLETED" />
254            </intent-filter>
255        </receiver>
256
257        <receiver
258            android:name="com.android.managedprovisioning.ota.PreBootListener"
259            android:exported="true">
260            <intent-filter>
261                <action android:name="android.intent.action.PRE_BOOT_COMPLETED" />
262            </intent-filter>
263        </receiver>
264
265        <receiver
266            android:name="com.android.managedprovisioning.provisioninglisteners.ProvisioningCompletedListener"
267            android:exported="true">
268            <intent-filter>
269                <action android:name="android.app.action.PROVISIONING_COMPLETED" />
270            </intent-filter>
271        </receiver>
272
273        <receiver
274            android:name="com.android.managedprovisioning.provisioninglisteners.ManagedUserRemovalListener"
275            android:exported="true">
276            <intent-filter>
277                <action android:name="android.intent.action.USER_REMOVED" />
278            </intent-filter>
279        </receiver>
280
281        <!-- TODO (b/146135268): Add permission for setup-wizard to guard access? -->
282        <activity
283            android:name=".finalization.FinalizationForwarderActivity"
284            android:excludeFromRecents="true"
285            android:exported="true"
286            android:immersive="true"
287            android:launchMode="singleTop"
288            android:theme="@android:style/Theme.Translucent.NoTitleBar">
289            <intent-filter>
290                <!-- TODO (b/177666246): Remove PROVISION_FINALIZATION_INSIDE_SUW
291                after the setup wizard change which calls PROVISION_FINALIZATION is in prebuilt -->
292                <action android:name="android.app.action.PROVISION_FINALIZATION_INSIDE_SUW" />
293                <action android:name="android.app.action.PROVISION_FINALIZATION" />
294
295                <category android:name="android.intent.category.DEFAULT" />
296            </intent-filter>
297        </activity>
298
299        <activity
300            android:name=".finalization.FinalizationInsideSuwActivity"
301            android:excludeFromRecents="true"
302            android:immersive="true"
303            android:launchMode="singleTop"
304            android:theme="@style/SudThemeGlifV4.DayNight" />
305
306        <activity
307            android:name=".provisioning.LandingActivity"
308            android:immersive="true"
309            android:theme="@style/SudThemeGlifV4.DayNight" />
310
311        <activity
312            android:name=".provisioning.FinancedDeviceLandingActivity"
313            android:immersive="true"
314            android:theme="@style/SudThemeGlifV4.DayNight" />
315
316        <activity
317            android:name=".preprovisioning.DownloadRoleHolderActivity"
318            android:immersive="true"
319            android:theme="@style/SudThemeGlifV4.DayNight" />
320
321        <activity
322            android:name=".common.RetryLaunchActivity"
323            android:immersive="true"
324            android:theme="@style/SudThemeGlifV4.DayNight" />
325
326        <activity
327            android:name=".networkconnection.EstablishNetworkConnectionActivity"
328            android:excludeFromRecents="true"
329            android:exported="true"
330            android:immersive="true"
331            android:launchMode="singleTop"
332            android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE"
333            android:theme="@style/SudThemeGlifV3.DayNight">
334            <intent-filter>
335                <action android:name="android.app.action.ESTABLISH_NETWORK_CONNECTION" />
336                <category android:name="android.intent.category.DEFAULT" />
337            </intent-filter>
338        </activity>
339
340        <service
341            android:name=".analytics.ProcessMetricsJobService"
342            android:permission="android.permission.BIND_JOB_SERVICE" />
343
344        <!-- (b/197919878) Disable startup provider due to resource loading issue. -->
345        <provider
346            android:name="androidx.startup.InitializationProvider"
347            android:authorities="${applicationId}.androidx-startup"
348            tools:node="remove" />
349    </application>
350</manifest>
351