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>