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