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