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 <uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES"/> 38 <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS"/> 39 40 <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" /> 41 <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" /> 42 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 43 44 <uses-permission android:name="android.permission.INTERNET" /> 45 <uses-permission android:name="android.permission.MASTER_CLEAR" /> 46 <uses-permission android:name="android.permission.NFC" /> 47 <uses-permission android:name="android.permission.SET_TIME" /> 48 <uses-permission android:name="android.permission.SET_TIME_ZONE" /> 49 50 <uses-permission android:name="android.permission.CRYPT_KEEPER" /> 51 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 52 <uses-permission android:name="android.permission.SHUTDOWN" /> 53 54 <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 55 <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 56 57 <uses-permission android:name="android.permission.PERFORM_CDMA_PROVISIONING" /> 58 <uses-permission android:name="android.permission.ACCESS_PDB_STATE" /> 59 <uses-permission android:name="android.permission.PEERS_MAC_ADDRESS" /> 60 61 <uses-permission android:name="android.permission.NETWORK_MANAGED_PROVISIONING" /> 62 63 <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" /> 64 <uses-permission android:name="android.permission.MARK_DEVICE_ORGANIZATION_OWNED" /> 65 66 <!-- To set the bg color of the deferred setup notification (without a foreground service) --> 67 <uses-permission android:name="android.permission.USE_COLORIZED_NOTIFICATIONS" /> 68 69 <uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" /> 70 71 <!-- Required by setup design library --> 72 <uses-permission android:name="com.google.android.setupwizard.SETUP_COMPAT_SERVICE" /> 73 74 <uses-permission android:name="android.permission.CONFIGURE_INTERACT_ACROSS_PROFILES" /> 75 76 <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" /> 77 78 <uses-permission android:name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"/> 79 80 <application 81 android:label="@string/app_label" 82 android:allowClearUserData="false" 83 android:hardwareAccelerated="true" 84 android:usesCleartextTraffic="true" 85 android:supportsRtl="true" 86 android:name=".ManagedProvisioningApplication"> 87 88 <!-- 89 Note: Setup activities are android:immersive to prevent full-screen notifications (USB 90 mass storage; incoming calls) from taking over. Note that high-priority notifications 91 (phone calls) will still pop up a small window that can be activated. 92 --> 93 <activity 94 android:name=".provisioning.ProvisioningActivity" 95 android:excludeFromRecents="true" 96 android:immersive="true" 97 android:launchMode="singleTop" 98 android:theme="@style/SudThemeGlifV3.DayNight"> 99 </activity> 100 101 <activity 102 android:name=".provisioning.AdminIntegratedFlowPrepareActivity" 103 android:excludeFromRecents="true" 104 android:immersive="true" 105 android:launchMode="singleTop" 106 android:theme="@style/SudThemeGlifV3.DayNight"> 107 </activity> 108 109 <activity 110 android:name=".preprovisioning.PreProvisioningActivity" 111 android:excludeFromRecents="true" 112 android:immersive="true" 113 android:launchMode="singleTop" 114 android:exported="true" 115 android:theme="@style/SudThemeGlifV3.DayNight"> 116 <intent-filter android:priority="10"> 117 <action android:name="android.app.action.PROVISION_MANAGED_PROFILE" /> 118 <action android:name="android.app.action.PROVISION_MANAGED_DEVICE" /> 119 <category android:name="android.intent.category.DEFAULT" /> 120 </intent-filter> 121 </activity> 122 123 <activity 124 android:name=".provisioning.ResetAndReturnDeviceActivity" 125 android:excludeFromRecents="true" 126 android:immersive="true" 127 android:theme="@style/SudThemeGlifV3.Light"/> 128 129 <!-- 130 Nfc bump entry for device owner provisioning, protected by a permission so only the Nfc 131 stack can trigger this. 132 --> 133 <activity-alias 134 android:name=".PreProvisioningActivityViaNfc" 135 android:targetActivity=".preprovisioning.PreProvisioningActivity" 136 android:permission="android.permission.DISPATCH_NFC_MESSAGE" 137 android:exported="true"> 138 <intent-filter android:priority="10"> 139 <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 140 <category android:name="android.intent.category.DEFAULT" /> 141 <data android:mimeType="application/com.android.managedprovisioning" /> 142 </intent-filter> 143 </activity-alias> 144 <!-- 145 Trusted app entry for device owner provisioning, protected by a permission so only 146 privileged app can trigger this. 147 --> 148 <activity-alias 149 android:name=".PreProvisioningActivityViaTrustedApp" 150 android:targetActivity=".preprovisioning.PreProvisioningActivity" 151 android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE" 152 android:exported="true"> 153 <intent-filter android:priority="10"> 154 <action 155 android:name="android.app.action.PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE" 156 /> 157 <action 158 android:name="android.app.action.PROVISION_FINANCED_DEVICE" 159 /> 160 <category android:name="android.intent.category.DEFAULT" /> 161 </intent-filter> 162 </activity-alias> 163 <!-- Entry to resume encryption after reboot. --> 164 <activity-alias 165 android:name=".PreProvisioningActivityAfterEncryption" 166 android:targetActivity=".preprovisioning.PreProvisioningActivity" 167 android:exported="false"> 168 <intent-filter android:priority="10"> 169 <action 170 android:name="com.android.managedprovisioning.action.RESUME_PROVISIONING" 171 /> 172 <category android:name="android.intent.category.DEFAULT" /> 173 </intent-filter> 174 </activity-alias> 175 <activity 176 android:name=".preprovisioning.terms.TermsActivity" 177 android:excludeFromRecents="true" 178 android:immersive="true" 179 android:launchMode="singleTop" 180 android:theme="@style/SudThemeGlifV3.DayNight"/> 181 <activity 182 android:name=".preprovisioning.EncryptDeviceActivity" 183 android:immersive="true" 184 android:launchMode="singleTop"> 185 </activity> 186 <!-- 187 Entry point for silent device owner provisioning. 188 --> 189 <service 190 android:name=".provisioning.SilentDeviceOwnerProvisioningService"> 191 </service> 192 <receiver android:name=".provisioning.SilentDeviceOwnerProvisioningReceiver" 193 android:exported="true" 194 android:permission="android.permission.PROVISION_MANAGED_DEVICE_SILENTLY"> 195 <intent-filter android:priority="10"> 196 <action android:name="android.app.action.PROVISION_MANAGED_DEVICE_SILENTLY" /> 197 </intent-filter> 198 </receiver> 199 200 <activity 201 android:name=".preprovisioning.WebActivity" 202 android:immersive="true" 203 android:launchMode="singleTop" 204 android:theme="@style/SudThemeGlifV3.DayNight" 205 android:process=":webview"> 206 </activity> 207 208 <activity 209 android:name=".TrampolineActivity" 210 android:theme="@android:style/Theme.NoDisplay" 211 android:excludeFromRecents="true"> 212 </activity> 213 214 <!-- 215 When PostEncryptionActivity is disabled, its entire task is going to get killed. 216 So, we explicitly specify a taskAffinity for this instead of a package default to make 217 sure it starts in a new task. 218 --> 219 <activity android:name=".preprovisioning.PostEncryptionActivity" 220 android:theme="@android:style/Theme.NoDisplay" 221 android:noHistory="true" 222 android:excludeFromRecents="true" 223 android:enabled="false" 224 android:exported="true" 225 android:taskAffinity=":PostEncryptionActivity"> 226 <intent-filter android:priority="10"> 227 <action android:name="android.intent.action.MAIN" /> 228 <category android:name="android.intent.category.HOME" /> 229 <category android:name="android.intent.category.DEFAULT" /> 230 </intent-filter> 231 </activity> 232 233 <service android:name=".provisioning.ProvisioningService" /> 234 <service android:name=".finalization.SendDpcBroadcastService" /> 235 <service android:name=".ota.OtaService" /> 236 237 <receiver android:name="com.android.managedprovisioning.BootReminder" 238 android:exported="true"> 239 <intent-filter> 240 <action android:name="android.intent.action.BOOT_COMPLETED" /> 241 </intent-filter> 242 </receiver> 243 244 <receiver android:name="com.android.managedprovisioning.ota.PreBootListener" 245 android:exported="true"> 246 <intent-filter> 247 <action android:name="android.intent.action.PRE_BOOT_COMPLETED" /> 248 </intent-filter> 249 </receiver> 250 251 <receiver android:name="com.android.managedprovisioning.manageduser.ManagedUserCreationListener" 252 android:exported="true"> 253 <intent-filter> 254 <action android:name="android.app.action.MANAGED_USER_CREATED" /> 255 </intent-filter> 256 </receiver> 257 258 <receiver 259 android:name="com.android.managedprovisioning.manageduser.ManagedUserRemovalListener" 260 android:exported="true"> 261 <intent-filter> 262 <action android:name="android.intent.action.USER_REMOVED" /> 263 </intent-filter> 264 </receiver> 265 266 <!-- TODO (b/146135268): Add permission for setup-wizard to guard access? --> 267 <activity android:name=".finalization.FinalizationInsideSuwActivity" 268 android:excludeFromRecents="true" 269 android:exported="true" 270 android:immersive="true" 271 android:launchMode="singleTop" 272 android:theme="@style/SudThemeGlifV3.DayNight"> 273 <intent-filter> 274 <!-- TODO (b/177666246): Remove PROVISION_FINALIZATION_INSIDE_SUW 275 after the setup wizard change which calls PROVISION_FINALIZATION is in prebuilt --> 276 <action android:name="android.app.action.PROVISION_FINALIZATION_INSIDE_SUW" /> 277 <action android:name="android.app.action.PROVISION_FINALIZATION" /> 278 <category android:name="android.intent.category.DEFAULT" /> 279 </intent-filter> 280 </activity> 281 282 <activity 283 android:name=".provisioning.LandingActivity" 284 android:theme="@style/SudThemeGlifV3.DayNight" 285 android:immersive="true" /> 286 287 <activity 288 android:name=".provisioning.FinancedDeviceLandingActivity" 289 android:theme="@style/SudThemeGlifV3.DayNight" 290 android:immersive="true" /> 291 292 <service 293 android:name=".analytics.ProcessMetricsJobService" 294 android:permission="android.permission.BIND_JOB_SERVICE"/> 295 </application> 296</manifest> 297