• 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
38    <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
39    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
40    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
41
42    <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
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.GRANT_PROFILE_OWNER_DEVICE_IDS_ACCESS" />
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    <application
74        android:label="@string/app_label"
75        android:allowClearUserData="false"
76        android:hardwareAccelerated="true"
77        android:usesCleartextTraffic="true"
78        android:supportsRtl="true">
79
80        <!--
81             Note: Setup activities are android:immersive to prevent full-screen notifications (USB
82            mass storage; incoming calls) from taking over. Note that high-priority notifications
83            (phone calls) will still pop up a small window that can be activated.
84        -->
85        <activity
86             android:name=".provisioning.ProvisioningActivity"
87             android:excludeFromRecents="true"
88             android:immersive="true"
89             android:launchMode="singleTop"
90             android:theme="@style/SudThemeGlifV3.Light">
91        </activity>
92
93        <activity
94            android:name=".provisioning.AdminIntegratedFlowPrepareActivity"
95            android:excludeFromRecents="true"
96            android:immersive="true"
97            android:launchMode="singleTop"
98            android:theme="@style/SudThemeGlifV3.Light">
99        </activity>
100
101        <activity
102            android:name=".preprovisioning.PreProvisioningActivity"
103            android:excludeFromRecents="true"
104            android:immersive="true"
105            android:launchMode="singleTop"
106            android:theme="@style/SudThemeGlifV3.Light">
107            <intent-filter android:priority="10">
108                <action android:name="android.app.action.PROVISION_MANAGED_PROFILE" />
109                <action android:name="android.app.action.PROVISION_MANAGED_USER" />
110                <action android:name="android.app.action.PROVISION_MANAGED_DEVICE" />
111                <action android:name="android.app.action.PROVISION_MANAGED_SHAREABLE_DEVICE" />
112                <category android:name="android.intent.category.DEFAULT" />
113            </intent-filter>
114        </activity>
115        <!--
116            Nfc bump entry for device owner provisioning, protected by a permission so only the Nfc
117            stack can trigger this.
118        -->
119        <activity-alias
120            android:name=".PreProvisioningActivityViaNfc"
121            android:targetActivity=".preprovisioning.PreProvisioningActivity"
122            android:permission="android.permission.DISPATCH_NFC_MESSAGE"
123            android:exported="true">
124            <intent-filter android:priority="10">
125                <action android:name="android.nfc.action.NDEF_DISCOVERED" />
126                <category android:name="android.intent.category.DEFAULT" />
127                <data android:mimeType="application/com.android.managedprovisioning" />
128            </intent-filter>
129        </activity-alias>
130        <!--
131            Trusted app entry for device owner provisioning, protected by a permission so only
132            privileged app can trigger this.
133        -->
134        <activity-alias
135            android:name=".PreProvisioningActivityViaTrustedApp"
136            android:targetActivity=".preprovisioning.PreProvisioningActivity"
137            android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE"
138            android:exported="true">
139            <intent-filter android:priority="10">
140                <action
141                    android:name="android.app.action.PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE"
142                />
143                <category android:name="android.intent.category.DEFAULT" />
144            </intent-filter>
145        </activity-alias>
146        <!-- Entry to resume encryption after reboot. -->
147        <activity-alias
148            android:name=".PreProvisioningActivityAfterEncryption"
149            android:targetActivity=".preprovisioning.PreProvisioningActivity"
150            android:exported="false">
151            <intent-filter android:priority="10">
152                <action
153                    android:name="com.android.managedprovisioning.action.RESUME_PROVISIONING"
154                />
155                <category android:name="android.intent.category.DEFAULT" />
156            </intent-filter>
157        </activity-alias>
158        <activity
159            android:name=".preprovisioning.terms.TermsActivity"
160            android:excludeFromRecents="true"
161            android:immersive="true"
162            android:launchMode="singleTop"
163            android:theme="@style/NonGlifTheme"/>
164        <activity
165            android:name=".preprovisioning.EncryptDeviceActivity"
166            android:immersive="true"
167            android:launchMode="singleTop">
168        </activity>
169        <!--
170            Entry point for silent device owner provisioning.
171        -->
172        <service
173            android:name=".provisioning.SilentDeviceOwnerProvisioningService">
174        </service>
175        <receiver android:name=".provisioning.SilentDeviceOwnerProvisioningReceiver"
176            android:permission="android.permission.PROVISION_MANAGED_DEVICE_SILENTLY">
177            <intent-filter android:priority="10">
178                <action android:name="android.app.action.PROVISION_MANAGED_DEVICE_SILENTLY" />
179            </intent-filter>
180        </receiver>
181
182        <activity
183            android:name=".preprovisioning.WebActivity"
184            android:immersive="true"
185            android:launchMode="singleTop"
186            android:theme="@style/NonGlifTheme"
187            android:process=":webview">
188        </activity>
189
190        <activity
191            android:name=".TrampolineActivity"
192            android:theme="@android:style/Theme.NoDisplay"
193            android:excludeFromRecents="true">
194        </activity>
195
196        <!--
197            When PostEncryptionActivity is disabled, its entire task is going to get killed.
198            So, we explicitly specify a taskAffinity for this instead of a package default to make
199            sure it starts in a new task.
200        -->
201        <activity android:name=".preprovisioning.PostEncryptionActivity"
202            android:theme="@android:style/Theme.NoDisplay"
203            android:noHistory="true"
204            android:excludeFromRecents="true"
205            android:enabled="false"
206            android:taskAffinity=":PostEncryptionActivity">
207            <intent-filter android:priority="10">
208                <action android:name="android.intent.action.MAIN" />
209                <category android:name="android.intent.category.HOME" />
210                <category android:name="android.intent.category.DEFAULT" />
211            </intent-filter>
212        </activity>
213
214        <activity
215            android:name=".transition.TransitionActivity"
216            android:theme="@style/SudThemeGlifV3.Light"
217            android:immersive="true"/>
218
219        <service android:name=".provisioning.ProvisioningService" />
220        <service android:name=".finalization.SendDpcBroadcastService" />
221        <service android:name=".ota.OtaService" />
222
223        <receiver android:name="com.android.managedprovisioning.preprovisioning.BootReminder">
224            <intent-filter>
225                <action android:name="android.intent.action.BOOT_COMPLETED" />
226            </intent-filter>
227        </receiver>
228
229        <receiver android:name="com.android.managedprovisioning.ota.PreBootListener">
230            <intent-filter>
231                <action android:name="android.intent.action.PRE_BOOT_COMPLETED" />
232            </intent-filter>
233        </receiver>
234
235        <receiver android:name="com.android.managedprovisioning.manageduser.ManagedUserCreationListener">
236            <intent-filter>
237                <action android:name="android.app.action.MANAGED_USER_CREATED" />
238            </intent-filter>
239        </receiver>
240
241        <receiver android:name="com.android.managedprovisioning.task.CrossProfileIntentFiltersSetter$RestrictionChangedReceiver">
242            <intent-filter>
243                <action android:name="android.app.action.DATA_SHARING_RESTRICTION_CHANGED" />
244            </intent-filter>
245        </receiver>
246
247        <!-- TODO: Add permission for setup-wizard to guard access? -->
248        <activity android:name=".finalization.FinalizationActivity"
249                android:theme="@android:style/Theme.NoDisplay"
250                android:noHistory="true"
251                android:excludeFromRecents="true"
252                android:exported="true"
253                android:immersive="true">
254            <intent-filter>
255                <action android:name="android.app.action.PROVISION_FINALIZATION" />
256                <category android:name="android.intent.category.DEFAULT" />
257            </intent-filter>
258        </activity>
259
260        <activity
261            android:name=".provisioning.LandingActivity"
262            android:theme="@style/SudThemeGlifV3.Light"
263            android:immersive="true" />
264
265        <activity
266            android:name=".finalization.FinalScreenActivity"
267            android:theme="@style/SudThemeGlifV3.Light"
268            android:immersive="true" />
269
270        <service
271            android:name=".analytics.ProcessMetricsJobService"
272            android:permission="android.permission.BIND_JOB_SERVICE"/>
273    </application>
274</manifest>
275