• 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:label="@string/app_label"
90        android:allowClearUserData="false"
91        android:hardwareAccelerated="true"
92        android:usesCleartextTraffic="true"
93        android:supportsRtl="true"
94        android:name=".ManagedProvisioningApplication">
95
96        <!--
97             Note: Setup activities are android:immersive to prevent full-screen notifications (USB
98            mass storage; incoming calls) from taking over. Note that high-priority notifications
99            (phone calls) will still pop up a small window that can be activated.
100        -->
101        <activity
102             android:name=".provisioning.ProvisioningActivity"
103             android:excludeFromRecents="true"
104             android:immersive="true"
105             android:launchMode="singleTop"
106             android:theme="@style/SudThemeGlifV4.DayNight">
107        </activity>
108
109        <activity
110            android:name=".provisioning.AdminIntegratedFlowPrepareActivity"
111            android:excludeFromRecents="true"
112            android:immersive="true"
113            android:launchMode="singleTop"
114            android:theme="@style/SudThemeGlifV4.DayNight">
115        </activity>
116
117        <activity
118            android:name=".preprovisioning.PreProvisioningActivity"
119            android:excludeFromRecents="true"
120            android:immersive="true"
121            android:launchMode="singleTop"
122            android:exported="true"
123            android:theme="@style/SudThemeGlifV4.DayNight">
124            <intent-filter android:priority="10">
125                <action android:name="android.app.action.PROVISION_MANAGED_PROFILE" />
126                <action android:name="android.app.action.PROVISION_MANAGED_DEVICE" />
127                <category android:name="android.intent.category.DEFAULT" />
128            </intent-filter>
129        </activity>
130
131        <activity
132            android:name=".provisioning.ResetAndReturnDeviceActivity"
133            android:excludeFromRecents="true"
134            android:immersive="true"
135            android:theme="@style/SudThemeGlifV4.Light"/>
136
137        <!--
138            Nfc bump entry for device owner provisioning, protected by a permission so only the Nfc
139            stack can trigger this.
140        -->
141        <activity
142            android:name=".preprovisioning.PreProvisioningActivityViaNfc"
143            android:permission="android.permission.DISPATCH_NFC_MESSAGE"
144            android:theme="@style/SudThemeGlifV4.DayNight"
145            android:exported="true">
146            <intent-filter android:priority="10">
147                <action android:name="android.nfc.action.NDEF_DISCOVERED" />
148                <category android:name="android.intent.category.DEFAULT" />
149                <data android:mimeType="application/com.android.managedprovisioning" />
150            </intent-filter>
151        </activity>
152        <!--
153            Trusted app entry for device owner provisioning, protected by a permission so only
154            privileged app can trigger this.
155        -->
156        <activity-alias
157            android:name=".PreProvisioningActivityViaTrustedApp"
158            android:targetActivity=".preprovisioning.PreProvisioningActivity"
159            android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE"
160            android:exported="true">
161            <intent-filter android:priority="10">
162                <action
163                    android:name="android.app.action.PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE"
164                />
165                <action
166                    android:name="android.app.action.PROVISION_FINANCED_DEVICE"
167                />
168                <category android:name="android.intent.category.DEFAULT" />
169            </intent-filter>
170        </activity-alias>
171        <!-- Entry to resume encryption after reboot. -->
172        <activity-alias
173            android:name=".PreProvisioningActivityAfterEncryption"
174            android:targetActivity=".preprovisioning.PreProvisioningActivity"
175            android:exported="false">
176            <intent-filter android:priority="10">
177                <action
178                    android:name="com.android.managedprovisioning.action.RESUME_PROVISIONING"
179                />
180                <category android:name="android.intent.category.DEFAULT" />
181            </intent-filter>
182        </activity-alias>
183        <activity
184            android:name=".preprovisioning.terms.TermsActivity"
185            android:excludeFromRecents="true"
186            android:immersive="true"
187            android:launchMode="singleTop"
188            android:theme="@style/SudThemeGlifV4.DayNight"/>
189        <activity
190            android:name=".preprovisioning.EncryptDeviceActivity"
191            android:immersive="true"
192            android:launchMode="singleTop">
193        </activity>
194        <!--
195            Entry point for silent device owner provisioning.
196        -->
197        <service
198            android:name=".provisioning.SilentDeviceOwnerProvisioningService">
199        </service>
200        <receiver android:name=".provisioning.SilentDeviceOwnerProvisioningReceiver"
201            android:exported="true"
202            android:permission="android.permission.PROVISION_MANAGED_DEVICE_SILENTLY">
203            <intent-filter android:priority="10">
204                <action android:name="android.app.action.PROVISION_MANAGED_DEVICE_SILENTLY" />
205            </intent-filter>
206        </receiver>
207
208        <activity
209            android:name=".preprovisioning.WebActivity"
210            android:immersive="true"
211            android:launchMode="singleTop"
212            android:theme="@style/SudThemeGlifV4.DayNight"
213            android:process=":webview">
214        </activity>
215
216        <activity
217            android:name=".TrampolineActivity"
218            android:theme="@android:style/Theme.NoDisplay"
219            android:excludeFromRecents="true">
220        </activity>
221
222        <!--
223            When PostEncryptionActivity is disabled, its entire task is going to get killed.
224            So, we explicitly specify a taskAffinity for this instead of a package default to make
225            sure it starts in a new task.
226        -->
227        <activity android:name=".preprovisioning.PostEncryptionActivity"
228            android:theme="@android:style/Theme.NoDisplay"
229            android:noHistory="true"
230            android:excludeFromRecents="true"
231            android:enabled="false"
232            android:exported="true"
233            android:taskAffinity=":PostEncryptionActivity">
234            <intent-filter android:priority="10">
235                <action android:name="android.intent.action.MAIN" />
236                <category android:name="android.intent.category.HOME" />
237                <category android:name="android.intent.category.DEFAULT" />
238            </intent-filter>
239        </activity>
240
241        <service android:name=".provisioning.ProvisioningService" />
242        <service android:name=".finalization.SendDpcBroadcastService" />
243        <service android:name=".ota.OtaService" />
244
245        <receiver android:name="com.android.managedprovisioning.BootReminder"
246            android:exported="true">
247            <intent-filter>
248                <action android:name="android.intent.action.BOOT_COMPLETED" />
249            </intent-filter>
250        </receiver>
251
252        <receiver android:name="com.android.managedprovisioning.ota.PreBootListener"
253            android:exported="true">
254            <intent-filter>
255                <action android:name="android.intent.action.PRE_BOOT_COMPLETED" />
256            </intent-filter>
257        </receiver>
258
259        <receiver android:name="com.android.managedprovisioning.provisioninglisteners.ProvisioningCompletedListener"
260            android:exported="true">
261            <intent-filter>
262                <action android:name="android.app.action.PROVISIONING_COMPLETED" />
263            </intent-filter>
264        </receiver>
265
266        <receiver
267            android:name="com.android.managedprovisioning.provisioninglisteners.ManagedUserRemovalListener"
268            android:exported="true">
269            <intent-filter>
270                <action android:name="android.intent.action.USER_REMOVED" />
271            </intent-filter>
272        </receiver>
273
274        <!-- TODO (b/146135268): Add permission for setup-wizard to guard access? -->
275        <activity android:name=".finalization.FinalizationForwarderActivity"
276                  android:excludeFromRecents="true"
277                  android:exported="true"
278                  android:immersive="true"
279                  android:launchMode="singleTop"
280                  android:theme="@android:style/Theme.Translucent.NoTitleBar">
281            <intent-filter>
282                <!-- TODO (b/177666246): Remove PROVISION_FINALIZATION_INSIDE_SUW
283                after the setup wizard change which calls PROVISION_FINALIZATION is in prebuilt -->
284                <action android:name="android.app.action.PROVISION_FINALIZATION_INSIDE_SUW" />
285                <action android:name="android.app.action.PROVISION_FINALIZATION" />
286                <category android:name="android.intent.category.DEFAULT" />
287            </intent-filter>
288        </activity>
289
290        <activity android:name=".finalization.FinalizationInsideSuwActivity"
291                  android:excludeFromRecents="true"
292                  android:immersive="true"
293                  android:launchMode="singleTop"
294                  android:theme="@style/SudThemeGlifV4.DayNight" />
295
296        <activity
297            android:name=".provisioning.LandingActivity"
298            android:theme="@style/SudThemeGlifV4.DayNight"
299            android:immersive="true" />
300
301        <activity
302            android:name=".provisioning.FinancedDeviceLandingActivity"
303            android:theme="@style/SudThemeGlifV4.DayNight"
304            android:immersive="true" />
305
306        <activity
307            android:name=".preprovisioning.DownloadRoleHolderActivity"
308            android:theme="@style/SudThemeGlifV4.DayNight"
309            android:immersive="true" />
310
311        <activity
312            android:name=".common.RetryLaunchActivity"
313            android:theme="@style/SudThemeGlifV4.DayNight"
314            android:immersive="true" />
315
316        <activity
317            android:name=".networkconnection.EstablishNetworkConnectionActivity"
318            android:excludeFromRecents="true"
319            android:immersive="true"
320            android:launchMode="singleTop"
321            android:theme="@style/SudThemeGlifV3.DayNight"
322            android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE"
323            android:exported="true">
324            <intent-filter>
325                <action android:name="android.app.action.ESTABLISH_NETWORK_CONNECTION" />
326                <category android:name="android.intent.category.DEFAULT" />
327            </intent-filter>
328        </activity>
329
330        <service
331            android:name=".analytics.ProcessMetricsJobService"
332            android:permission="android.permission.BIND_JOB_SERVICE"/>
333
334        <!-- (b/197919878) Disable startup provider due to resource loading issue. -->
335        <provider
336            android:name="androidx.startup.InitializationProvider"
337            android:authorities="${applicationId}.androidx-startup"
338            tools:node="remove" />
339    </application>
340</manifest>
341