• 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    package="com.android.managedprovisioning" >
20
21    <permission
22        android:name="android.permission.PROVISION_MANAGED_DEVICE_SILENTLY"
23        android:protectionLevel="signature|preinstalled" />
24
25    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
26    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
27    <uses-permission android:name="android.permission.MANAGE_USERS" />
28    <uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" />
29    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
30    <uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
31    <uses-permission android:name="android.permission.DELETE_PACKAGES"/>
32    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
33    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
34    <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
35    <uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" />
36    <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
37    <uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES"/>
38
39    <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
40    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
41    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
42
43    <uses-permission android:name="android.permission.INTERNET" />
44    <uses-permission android:name="android.permission.MASTER_CLEAR" />
45    <uses-permission android:name="android.permission.NFC" />
46    <uses-permission android:name="android.permission.SET_TIME" />
47    <uses-permission android:name="android.permission.SET_TIME_ZONE" />
48
49    <uses-permission android:name="android.permission.CRYPT_KEEPER" />
50    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
51    <uses-permission android:name="android.permission.SHUTDOWN" />
52
53    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
54    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
55
56    <uses-permission android:name="android.permission.PERFORM_CDMA_PROVISIONING" />
57    <uses-permission android:name="android.permission.ACCESS_PDB_STATE" />
58    <uses-permission android:name="android.permission.PEERS_MAC_ADDRESS" />
59
60    <uses-permission android:name="android.permission.NETWORK_MANAGED_PROVISIONING" />
61
62    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
63    <uses-permission android:name="android.permission.MARK_DEVICE_ORGANIZATION_OWNED" />
64
65    <!-- To set the bg color of the deferred setup notification (without a foreground service) -->
66    <uses-permission android:name="android.permission.USE_COLORIZED_NOTIFICATIONS" />
67
68    <uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
69
70    <!-- Required by setup design library -->
71    <uses-permission android:name="com.google.android.setupwizard.SETUP_COMPAT_SERVICE" />
72
73    <uses-permission android:name="android.permission.CONFIGURE_INTERACT_ACROSS_PROFILES" />
74
75    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
76
77    <uses-permission android:name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"/>
78
79    <application
80        android:label="@string/app_label"
81        android:allowClearUserData="false"
82        android:hardwareAccelerated="true"
83        android:usesCleartextTraffic="true"
84        android:supportsRtl="true"
85        android:name=".ManagedProvisioningApplication">
86
87        <!--
88             Note: Setup activities are android:immersive to prevent full-screen notifications (USB
89            mass storage; incoming calls) from taking over. Note that high-priority notifications
90            (phone calls) will still pop up a small window that can be activated.
91        -->
92        <activity
93             android:name=".provisioning.ProvisioningActivity"
94             android:excludeFromRecents="true"
95             android:immersive="true"
96             android:launchMode="singleTop"
97             android:theme="@style/SudThemeGlifV3.DayNight">
98        </activity>
99
100        <activity
101            android:name=".provisioning.AdminIntegratedFlowPrepareActivity"
102            android:excludeFromRecents="true"
103            android:immersive="true"
104            android:launchMode="singleTop"
105            android:theme="@style/SudThemeGlifV3.DayNight">
106        </activity>
107
108        <activity
109            android:name=".preprovisioning.PreProvisioningActivity"
110            android:excludeFromRecents="true"
111            android:immersive="true"
112            android:launchMode="singleTop"
113            android:exported="true"
114            android:theme="@style/SudThemeGlifV3.DayNight">
115            <intent-filter android:priority="10">
116                <action android:name="android.app.action.PROVISION_MANAGED_PROFILE" />
117                <action android:name="android.app.action.PROVISION_MANAGED_DEVICE" />
118                <category android:name="android.intent.category.DEFAULT" />
119            </intent-filter>
120        </activity>
121
122        <activity
123            android:name=".provisioning.ResetAndReturnDeviceActivity"
124            android:excludeFromRecents="true"
125            android:immersive="true"
126            android:theme="@style/SudThemeGlifV3.Light"/>
127
128        <!--
129            Nfc bump entry for device owner provisioning, protected by a permission so only the Nfc
130            stack can trigger this.
131        -->
132        <activity-alias
133            android:name=".PreProvisioningActivityViaNfc"
134            android:targetActivity=".preprovisioning.PreProvisioningActivity"
135            android:permission="android.permission.DISPATCH_NFC_MESSAGE"
136            android:exported="true">
137            <intent-filter android:priority="10">
138                <action android:name="android.nfc.action.NDEF_DISCOVERED" />
139                <category android:name="android.intent.category.DEFAULT" />
140                <data android:mimeType="application/com.android.managedprovisioning" />
141            </intent-filter>
142        </activity-alias>
143        <!--
144            Trusted app entry for device owner provisioning, protected by a permission so only
145            privileged app can trigger this.
146        -->
147        <activity-alias
148            android:name=".PreProvisioningActivityViaTrustedApp"
149            android:targetActivity=".preprovisioning.PreProvisioningActivity"
150            android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE"
151            android:exported="true">
152            <intent-filter android:priority="10">
153                <action
154                    android:name="android.app.action.PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE"
155                />
156                <action
157                    android:name="android.app.action.PROVISION_FINANCED_DEVICE"
158                />
159                <category android:name="android.intent.category.DEFAULT" />
160            </intent-filter>
161        </activity-alias>
162        <!-- Entry to resume encryption after reboot. -->
163        <activity-alias
164            android:name=".PreProvisioningActivityAfterEncryption"
165            android:targetActivity=".preprovisioning.PreProvisioningActivity"
166            android:exported="false">
167            <intent-filter android:priority="10">
168                <action
169                    android:name="com.android.managedprovisioning.action.RESUME_PROVISIONING"
170                />
171                <category android:name="android.intent.category.DEFAULT" />
172            </intent-filter>
173        </activity-alias>
174        <activity
175            android:name=".preprovisioning.terms.TermsActivity"
176            android:excludeFromRecents="true"
177            android:immersive="true"
178            android:launchMode="singleTop"
179            android:theme="@style/SudThemeGlifV3.DayNight"/>
180        <activity
181            android:name=".preprovisioning.EncryptDeviceActivity"
182            android:immersive="true"
183            android:launchMode="singleTop">
184        </activity>
185        <!--
186            Entry point for silent device owner provisioning.
187        -->
188        <service
189            android:name=".provisioning.SilentDeviceOwnerProvisioningService">
190        </service>
191        <receiver android:name=".provisioning.SilentDeviceOwnerProvisioningReceiver"
192            android:exported="true"
193            android:permission="android.permission.PROVISION_MANAGED_DEVICE_SILENTLY">
194            <intent-filter android:priority="10">
195                <action android:name="android.app.action.PROVISION_MANAGED_DEVICE_SILENTLY" />
196            </intent-filter>
197        </receiver>
198
199        <activity
200            android:name=".preprovisioning.WebActivity"
201            android:immersive="true"
202            android:launchMode="singleTop"
203            android:theme="@style/SudThemeGlifV3.DayNight"
204            android:process=":webview">
205        </activity>
206
207        <activity
208            android:name=".TrampolineActivity"
209            android:theme="@android:style/Theme.NoDisplay"
210            android:excludeFromRecents="true">
211        </activity>
212
213        <!--
214            When PostEncryptionActivity is disabled, its entire task is going to get killed.
215            So, we explicitly specify a taskAffinity for this instead of a package default to make
216            sure it starts in a new task.
217        -->
218        <activity android:name=".preprovisioning.PostEncryptionActivity"
219            android:theme="@android:style/Theme.NoDisplay"
220            android:noHistory="true"
221            android:excludeFromRecents="true"
222            android:enabled="false"
223            android:exported="true"
224            android:taskAffinity=":PostEncryptionActivity">
225            <intent-filter android:priority="10">
226                <action android:name="android.intent.action.MAIN" />
227                <category android:name="android.intent.category.HOME" />
228                <category android:name="android.intent.category.DEFAULT" />
229            </intent-filter>
230        </activity>
231
232        <service android:name=".provisioning.ProvisioningService" />
233        <service android:name=".finalization.SendDpcBroadcastService" />
234        <service android:name=".ota.OtaService" />
235
236        <receiver android:name="com.android.managedprovisioning.BootReminder"
237            android:exported="true">
238            <intent-filter>
239                <action android:name="android.intent.action.BOOT_COMPLETED" />
240            </intent-filter>
241        </receiver>
242
243        <receiver android:name="com.android.managedprovisioning.ota.PreBootListener"
244            android:exported="true">
245            <intent-filter>
246                <action android:name="android.intent.action.PRE_BOOT_COMPLETED" />
247            </intent-filter>
248        </receiver>
249
250        <receiver android:name="com.android.managedprovisioning.manageduser.ManagedUserCreationListener"
251            android:exported="true">
252            <intent-filter>
253                <action android:name="android.app.action.MANAGED_USER_CREATED" />
254            </intent-filter>
255        </receiver>
256
257        <receiver
258            android:name="com.android.managedprovisioning.manageduser.ManagedUserRemovalListener"
259            android:exported="true">
260            <intent-filter>
261                <action android:name="android.intent.action.USER_REMOVED" />
262            </intent-filter>
263        </receiver>
264
265        <!-- TODO (b/146135268): Add permission for setup-wizard to guard access? -->
266        <activity android:name=".finalization.FinalizationInsideSuwActivity"
267                  android:excludeFromRecents="true"
268                  android:exported="true"
269                  android:immersive="true"
270                  android:launchMode="singleTop"
271                  android:theme="@style/SudThemeGlifV3.DayNight">
272            <intent-filter>
273                <!-- TODO (b/177666246): Remove PROVISION_FINALIZATION_INSIDE_SUW
274                after the setup wizard change which calls PROVISION_FINALIZATION is in prebuilt -->
275                <action android:name="android.app.action.PROVISION_FINALIZATION_INSIDE_SUW" />
276                <action android:name="android.app.action.PROVISION_FINALIZATION" />
277                <category android:name="android.intent.category.DEFAULT" />
278            </intent-filter>
279        </activity>
280
281        <activity
282            android:name=".provisioning.LandingActivity"
283            android:theme="@style/SudThemeGlifV3.DayNight"
284            android:immersive="true" />
285
286        <activity
287            android:name=".provisioning.FinancedDeviceLandingActivity"
288            android:theme="@style/SudThemeGlifV3.DayNight"
289            android:immersive="true" />
290
291        <service
292            android:name=".analytics.ProcessMetricsJobService"
293            android:permission="android.permission.BIND_JOB_SERVICE"/>
294    </application>
295</manifest>
296