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="DeviceOwnerProvisioningActivity" 68 android:excludeFromRecents="true" 69 android:immersive="true" 70 android:launchMode="singleTop" 71 android:theme="@style/SetupWorkSpaceTheme"> 72 </activity> 73 <activity 74 android:name="ProfileOwnerProvisioningActivity" 75 android:excludeFromRecents="true" 76 android:immersive="true" 77 android:launchMode="singleTop" 78 android:theme="@style/SetupWorkSpaceTheme"> 79 </activity> 80 <activity 81 android:name=".uiflows.PreProvisioningActivity" 82 android:excludeFromRecents="true" 83 android:immersive="true" 84 android:launchMode="singleTop" 85 android:theme="@style/SetupWorkSpaceTheme"> 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=".uiflows.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=".uiflows.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=".uiflows.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=".uiflows.EncryptDeviceActivity" 139 android:immersive="true" 140 android:launchMode="singleTop" 141 android:theme="@style/SetupWorkSpaceTheme"> 142 </activity> 143 144 <activity 145 android:name=".uiflows.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=".uiflows.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 177 android:name="ProfileOwnerProvisioningService" > 178 </service> 179 <service 180 android:name="DeviceOwnerProvisioningService" > 181 </service> 182 183 <receiver android:name="com.android.managedprovisioning.BootReminder"> 184 <intent-filter> 185 <action android:name="android.intent.action.BOOT_COMPLETED" /> 186 </intent-filter> 187 </receiver> 188 189 <receiver android:name="com.android.managedprovisioning.PreBootListener"> 190 <intent-filter> 191 <action android:name="android.intent.action.PRE_BOOT_COMPLETED" /> 192 </intent-filter> 193 </receiver> 194 195 <!-- TODO: Add permission for setup-wizard to guard access? --> 196 <activity android:name=".FinalizationActivity" 197 android:theme="@android:style/Theme.NoDisplay" 198 android:noHistory="true" 199 android:excludeFromRecents="true" 200 android:exported="true"> 201 <intent-filter> 202 <action android:name="android.app.action.PROVISION_FINALIZATION" /> 203 <category android:name="android.intent.category.DEFAULT" /> 204 </intent-filter> 205 </activity> 206 </application> 207</manifest> 208