• 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    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
22    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
23    <uses-permission android:name="android.permission.MANAGE_USERS" />
24    <uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" />
25    <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" />
26    <uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
27    <uses-permission android:name="android.permission.DELETE_PACKAGES"/>
28    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
29    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
30    <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
31    <uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" />
32
33    <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
34    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
35    <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
36
37    <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
38    <uses-permission android:name="android.permission.INTERNET" />
39    <uses-permission android:name="android.permission.MASTER_CLEAR" />
40    <uses-permission android:name="android.permission.NFC" />
41    <uses-permission android:name="android.permission.SET_TIME" />
42    <uses-permission android:name="android.permission.SET_TIME_ZONE" />
43
44    <uses-permission android:name="android.permission.CRYPT_KEEPER" />
45    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
46    <uses-permission android:name="android.permission.SHUTDOWN" />
47
48    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
49    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
50
51    <uses-permission android:name="android.permission.PERFORM_CDMA_PROVISIONING" />
52    <uses-permission android:name="android.permission.ACCESS_PDB_STATE" />
53
54    <application
55        android:label="@string/app_label"
56        android:allowClearUserData="false"
57        android:hardwareAccelerated="true"
58        android:usesCleartextTraffic="true"
59        android:supportsRtl="true">
60
61        <!--
62             Note: Setup activities are android:immersive to prevent full-screen notifications (USB
63            mass storage; incoming calls) from taking over. Note that high-priority notifications
64            (phone calls) will still pop up a small window that can be activated.
65        -->
66        <activity
67             android:name=".provisioning.ProvisioningActivity"
68             android:excludeFromRecents="true"
69             android:immersive="true"
70             android:launchMode="singleTop"
71             android:theme="@style/SetupWorkSpaceTheme">
72        </activity>
73        <activity
74            android:name=".preprovisioning.PreProvisioningActivity"
75            android:excludeFromRecents="true"
76            android:immersive="true"
77            android:launchMode="singleTop"
78            android:theme="@style/Provisioning2Theme">
79            <intent-filter android:priority="10">
80                <action android:name="android.app.action.PROVISION_MANAGED_PROFILE" />
81                <action android:name="android.app.action.PROVISION_MANAGED_USER" />
82                <action android:name="android.app.action.PROVISION_MANAGED_DEVICE" />
83                <action android:name="android.app.action.PROVISION_MANAGED_SHAREABLE_DEVICE" />
84                <category android:name="android.intent.category.DEFAULT" />
85            </intent-filter>
86        </activity>
87        <!--
88            Nfc bump entry for device owner provisioning, protected by a permission so only the Nfc
89            stack can trigger this.
90        -->
91        <activity-alias
92            android:name=".PreProvisioningActivityViaNfc"
93            android:targetActivity=".preprovisioning.PreProvisioningActivity"
94            android:permission="android.permission.DISPATCH_NFC_MESSAGE"
95            android:exported="true">
96            <intent-filter android:priority="10">
97                <action android:name="android.nfc.action.NDEF_DISCOVERED" />
98                <category android:name="android.intent.category.DEFAULT" />
99                <data android:mimeType="application/com.android.managedprovisioning" />
100            </intent-filter>
101        </activity-alias>
102        <!--
103            Trusted app entry for device owner provisioning, protected by a permission so only
104            privileged app can trigger this.
105        -->
106        <activity-alias
107            android:name=".PreProvisioningActivityViaTrustedApp"
108            android:targetActivity=".preprovisioning.PreProvisioningActivity"
109            android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE"
110            android:exported="true">
111            <intent-filter android:priority="10">
112                <action
113                    android:name="android.app.action.PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE"
114                />
115                <category android:name="android.intent.category.DEFAULT" />
116            </intent-filter>
117        </activity-alias>
118        <!-- Entry to resume encryption after reboot. -->
119        <activity-alias
120            android:name=".PreProvisioningActivityAfterEncryption"
121            android:targetActivity=".preprovisioning.PreProvisioningActivity"
122            android:exported="false">
123            <intent-filter android:priority="10">
124                <action
125                    android:name="com.android.managedprovisioning.action.RESUME_PROVISIONING"
126                />
127                <category android:name="android.intent.category.DEFAULT" />
128            </intent-filter>
129        </activity-alias>
130        <activity
131            android:name=".preprovisioning.terms.TermsActivity"
132            android:excludeFromRecents="true"
133            android:immersive="true"
134            android:launchMode="singleTop"
135            android:theme="@style/Provisioning2Theme">
136        </activity>
137        <activity
138            android:name=".preprovisioning.EncryptDeviceActivity"
139            android:immersive="true"
140            android:launchMode="singleTop"
141            android:theme="@style/SetupWorkSpaceTheme">
142        </activity>
143
144        <activity
145            android:name=".preprovisioning.WebActivity"
146            android:immersive="true"
147            android:launchMode="singleTop"
148            android:process=":webview"
149            android:theme="@style/SetupWorkSpaceTheme">
150        </activity>
151
152        <activity
153            android:name=".TrampolineActivity"
154            android:theme="@android:style/Theme.NoDisplay"
155            android:excludeFromRecents="true">
156        </activity>
157
158        <!--
159            When PostEncryptionActivity is disabled, its entire task is going to get killed.
160            So, we explicitly specify a taskAffinity for this instead of a package default to make
161            sure it starts in a new task.
162        -->
163        <activity android:name=".preprovisioning.PostEncryptionActivity"
164            android:theme="@android:style/Theme.NoDisplay"
165            android:noHistory="true"
166            android:excludeFromRecents="true"
167            android:enabled="false"
168            android:taskAffinity=":PostEncryptionActivity">
169            <intent-filter android:priority="10">
170                <action android:name="android.intent.action.MAIN" />
171                <category android:name="android.intent.category.HOME" />
172                <category android:name="android.intent.category.DEFAULT" />
173            </intent-filter>
174        </activity>
175
176        <service android:name=".provisioning.ProvisioningService" />
177        <service android:name=".ota.OtaService" />
178
179        <receiver android:name="com.android.managedprovisioning.preprovisioning.BootReminder">
180            <intent-filter>
181                <action android:name="android.intent.action.BOOT_COMPLETED" />
182            </intent-filter>
183        </receiver>
184
185        <receiver android:name="com.android.managedprovisioning.ota.PreBootListener">
186            <intent-filter>
187                <action android:name="android.intent.action.PRE_BOOT_COMPLETED" />
188            </intent-filter>
189        </receiver>
190
191        <!-- TODO: Add permission for setup-wizard to guard access? -->
192        <activity android:name=".finalization.FinalizationActivity"
193                android:theme="@android:style/Theme.NoDisplay"
194                android:noHistory="true"
195                android:excludeFromRecents="true"
196                android:exported="true">
197            <intent-filter>
198                <action android:name="android.app.action.PROVISION_FINALIZATION" />
199                <category android:name="android.intent.category.DEFAULT" />
200            </intent-filter>
201        </activity>
202    </application>
203</manifest>