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 xmlns:tools="http://schemas.android.com/tools" 20 package="com.android.managedprovisioning"> 21 22 <permission 23 android:name="android.permission.PROVISION_MANAGED_DEVICE_SILENTLY" 24 android:protectionLevel="signature|preinstalled" /> 25 26 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 27 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 28 <uses-permission android:name="android.permission.MANAGE_USERS" /> 29 <uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" /> 30 <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> 31 <uses-permission android:name="android.permission.INSTALL_PACKAGES" /> 32 <uses-permission android:name="android.permission.DELETE_PACKAGES" /> 33 <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> 34 <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" /> 35 <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" /> 36 <uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" /> 37 <uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> 38 <uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES" /> 39 <uses-permission android:name="android.permission.HIDE_OVERLAY_WINDOWS" /> 40 41 <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" /> 42 <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" /> 43 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 44 45 <uses-permission android:name="android.permission.INTERNET" /> 46 <uses-permission android:name="android.permission.MASTER_CLEAR" /> 47 <uses-permission android:name="android.permission.NFC" /> 48 <uses-permission android:name="android.permission.SET_TIME" /> 49 <uses-permission android:name="android.permission.SET_TIME_ZONE" /> 50 51 <uses-permission android:name="android.permission.CRYPT_KEEPER" /> 52 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 53 <uses-permission android:name="android.permission.SHUTDOWN" /> 54 55 <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 56 <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 57 58 <uses-permission android:name="android.permission.PERFORM_CDMA_PROVISIONING" /> 59 <uses-permission android:name="android.permission.ACCESS_PDB_STATE" /> 60 <uses-permission android:name="android.permission.PEERS_MAC_ADDRESS" /> 61 62 <uses-permission android:name="android.permission.NETWORK_MANAGED_PROVISIONING" /> 63 64 <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" /> 65 <uses-permission android:name="android.permission.MARK_DEVICE_ORGANIZATION_OWNED" /> 66 67 <!-- To set the bg color of the deferred setup notification (without a foreground service) --> 68 <uses-permission android:name="android.permission.USE_COLORIZED_NOTIFICATIONS" /> 69 70 <uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" /> 71 72 <!-- Required by setup design library --> 73 <uses-permission android:name="com.google.android.setupwizard.SETUP_COMPAT_SERVICE" /> 74 75 <uses-permission android:name="android.permission.CONFIGURE_INTERACT_ACROSS_PROFILES" /> 76 77 <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" /> 78 79 <uses-permission android:name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" /> 80 81 <uses-permission android:name="android.permission.POST_NOTIFICATIONS" /> 82 83 <uses-permission android:name="android.permission.LAUNCH_DEVICE_MANAGER_SETUP" /> 84 85 <!-- Used to read the device management role holder package name --> 86 <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" /> 87 88 <application 89 android:name=".ManagedProvisioningApplication" 90 android:allowClearUserData="false" 91 android:hardwareAccelerated="true" 92 android:label="@string/app_label" 93 android:supportsRtl="true" 94 android:usesCleartextTraffic="true" 95 android:enableOnBackInvokedCallback="false"> 96 97 <meta-data 98 android:name="com.android.managedprovisioning.patch.24760218" 99 android:value="true" /> 100 101 <!-- 102 Note: Setup activities are android:immersive to prevent full-screen notifications (USB 103 mass storage; incoming calls) from taking over. Note that high-priority notifications 104 (phone calls) will still pop up a small window that can be activated. 105 --> 106 <activity 107 android:name=".provisioning.ProvisioningActivity" 108 android:excludeFromRecents="true" 109 android:immersive="true" 110 android:launchMode="singleTop" 111 android:theme="@style/SudThemeGlifV4.DayNight"></activity> 112 113 <activity 114 android:name=".provisioning.AdminIntegratedFlowPrepareActivity" 115 android:excludeFromRecents="true" 116 android:immersive="true" 117 android:launchMode="singleTop" 118 android:theme="@style/SudThemeGlifV4.DayNight"></activity> 119 120 <activity 121 android:name=".preprovisioning.PreProvisioningActivity" 122 android:excludeFromRecents="true" 123 android:exported="true" 124 android:immersive="true" 125 android:launchMode="singleTop" 126 android:theme="@style/SudThemeGlifV4.DayNight"> 127 <intent-filter android:priority="10"> 128 <action android:name="android.app.action.PROVISION_MANAGED_PROFILE" /> 129 <action android:name="android.app.action.PROVISION_MANAGED_DEVICE" /> 130 131 <category android:name="android.intent.category.DEFAULT" /> 132 </intent-filter> 133 </activity> 134 135 <activity 136 android:name=".provisioning.ResetAndReturnDeviceActivity" 137 android:excludeFromRecents="true" 138 android:immersive="true" 139 android:theme="@style/SudThemeGlifV4.Light" /> 140 141 <activity 142 android:name=".provisioning.ResetDeviceActivity" 143 android:excludeFromRecents="true" 144 android:immersive="true" 145 android:theme="@style/SudThemeGlifV4.Light" /> 146 147 <!-- 148 Nfc bump entry for device owner provisioning, protected by a permission so only the Nfc 149 stack can trigger this. 150 --> 151 <activity 152 android:name=".preprovisioning.PreProvisioningActivityViaNfc" 153 android:exported="true" 154 android:permission="android.permission.DISPATCH_NFC_MESSAGE" 155 android:theme="@style/SudThemeGlifV4.DayNight"> 156 <intent-filter android:priority="10"> 157 <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 158 <category android:name="android.intent.category.DEFAULT" /> 159 <data android:mimeType="application/com.android.managedprovisioning" /> 160 </intent-filter> 161 </activity> 162 <!-- 163 Trusted app entry for device owner provisioning, protected by a permission so only 164 privileged app can trigger this. 165 --> 166 <activity-alias 167 android:name=".PreProvisioningActivityViaTrustedApp" 168 android:exported="true" 169 android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE" 170 android:targetActivity=".preprovisioning.PreProvisioningActivity"> 171 <intent-filter android:priority="10"> 172 <action android:name="android.app.action.PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE" /> 173 <action android:name="android.app.action.PROVISION_FINANCED_DEVICE" /> 174 175 <category android:name="android.intent.category.DEFAULT" /> 176 </intent-filter> 177 </activity-alias> 178 <!-- Entry to resume encryption after reboot. --> 179 <activity-alias 180 android:name=".PreProvisioningActivityAfterEncryption" 181 android:exported="false" 182 android:targetActivity=".preprovisioning.PreProvisioningActivity"> 183 <intent-filter android:priority="10"> 184 <action android:name="com.android.managedprovisioning.action.RESUME_PROVISIONING" /> 185 <category android:name="android.intent.category.DEFAULT" /> 186 </intent-filter> 187 </activity-alias> 188 189 <activity 190 android:name=".preprovisioning.terms.TermsActivity" 191 android:excludeFromRecents="true" 192 android:immersive="true" 193 android:launchMode="singleTop" 194 android:theme="@style/SudThemeGlifV4.DayNight" /> 195 <activity 196 android:name=".preprovisioning.EncryptDeviceActivity" 197 android:immersive="true" 198 android:launchMode="singleTop"></activity> 199 <!-- 200 Entry point for silent device owner provisioning. 201 --> 202 <service android:name=".provisioning.SilentDeviceOwnerProvisioningService"></service> 203 <receiver 204 android:name=".provisioning.SilentDeviceOwnerProvisioningReceiver" 205 android:exported="true" 206 android:permission="android.permission.PROVISION_MANAGED_DEVICE_SILENTLY"> 207 <intent-filter android:priority="10"> 208 <action android:name="android.app.action.PROVISION_MANAGED_DEVICE_SILENTLY" /> 209 </intent-filter> 210 </receiver> 211 212 <activity 213 android:name=".preprovisioning.WebActivity" 214 android:immersive="true" 215 android:launchMode="singleTop" 216 android:process=":webview" 217 android:theme="@style/SudThemeGlifV4.DayNight"></activity> 218 219 <activity 220 android:name=".TrampolineActivity" 221 android:excludeFromRecents="true" 222 android:theme="@android:style/Theme.NoDisplay"></activity> 223 224 <!-- 225 When PostEncryptionActivity is disabled, its entire task is going to get killed. 226 So, we explicitly specify a taskAffinity for this instead of a package default to make 227 sure it starts in a new task. 228 --> 229 <activity 230 android:name=".preprovisioning.PostEncryptionActivity" 231 android:enabled="false" 232 android:excludeFromRecents="true" 233 android:exported="true" 234 android:noHistory="true" 235 android:taskAffinity=":PostEncryptionActivity" 236 android:theme="@android:style/Theme.NoDisplay"> 237 <intent-filter android:priority="10"> 238 <action android:name="android.intent.action.MAIN" /> 239 240 <category android:name="android.intent.category.HOME" /> 241 <category android:name="android.intent.category.DEFAULT" /> 242 </intent-filter> 243 </activity> 244 245 <service android:name=".provisioning.ProvisioningService" /> 246 <service android:name=".finalization.SendDpcBroadcastService" /> 247 <service android:name=".ota.OtaService" /> 248 249 <receiver 250 android:name="com.android.managedprovisioning.BootReminder" 251 android:exported="true"> 252 <intent-filter> 253 <action android:name="android.intent.action.BOOT_COMPLETED" /> 254 </intent-filter> 255 </receiver> 256 257 <receiver 258 android:name="com.android.managedprovisioning.ota.PreBootListener" 259 android:exported="true"> 260 <intent-filter> 261 <action android:name="android.intent.action.PRE_BOOT_COMPLETED" /> 262 </intent-filter> 263 </receiver> 264 265 <receiver 266 android:name="com.android.managedprovisioning.provisioninglisteners.ProvisioningCompletedListener" 267 android:exported="true"> 268 <intent-filter> 269 <action android:name="android.app.action.PROVISIONING_COMPLETED" /> 270 </intent-filter> 271 </receiver> 272 273 <receiver 274 android:name="com.android.managedprovisioning.provisioninglisteners.ManagedUserRemovalListener" 275 android:exported="true"> 276 <intent-filter> 277 <action android:name="android.intent.action.USER_REMOVED" /> 278 </intent-filter> 279 </receiver> 280 281 <!-- TODO (b/146135268): Add permission for setup-wizard to guard access? --> 282 <activity 283 android:name=".finalization.FinalizationForwarderActivity" 284 android:excludeFromRecents="true" 285 android:exported="true" 286 android:immersive="true" 287 android:launchMode="singleTop" 288 android:theme="@android:style/Theme.Translucent.NoTitleBar"> 289 <intent-filter> 290 <!-- TODO (b/177666246): Remove PROVISION_FINALIZATION_INSIDE_SUW 291 after the setup wizard change which calls PROVISION_FINALIZATION is in prebuilt --> 292 <action android:name="android.app.action.PROVISION_FINALIZATION_INSIDE_SUW" /> 293 <action android:name="android.app.action.PROVISION_FINALIZATION" /> 294 295 <category android:name="android.intent.category.DEFAULT" /> 296 </intent-filter> 297 </activity> 298 299 <activity 300 android:name=".finalization.FinalizationInsideSuwActivity" 301 android:excludeFromRecents="true" 302 android:immersive="true" 303 android:launchMode="singleTop" 304 android:theme="@style/SudThemeGlifV4.DayNight" /> 305 306 <activity 307 android:name=".provisioning.LandingActivity" 308 android:immersive="true" 309 android:theme="@style/SudThemeGlifV4.DayNight" /> 310 311 <activity 312 android:name=".provisioning.FinancedDeviceLandingActivity" 313 android:immersive="true" 314 android:theme="@style/SudThemeGlifV4.DayNight" /> 315 316 <activity 317 android:name=".preprovisioning.DownloadRoleHolderActivity" 318 android:immersive="true" 319 android:theme="@style/SudThemeGlifV4.DayNight" /> 320 321 <activity 322 android:name=".common.RetryLaunchActivity" 323 android:immersive="true" 324 android:theme="@style/SudThemeGlifV4.DayNight" /> 325 326 <activity 327 android:name=".networkconnection.EstablishNetworkConnectionActivity" 328 android:excludeFromRecents="true" 329 android:exported="true" 330 android:immersive="true" 331 android:launchMode="singleTop" 332 android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE" 333 android:theme="@style/SudThemeGlifV3.DayNight"> 334 <intent-filter> 335 <action android:name="android.app.action.ESTABLISH_NETWORK_CONNECTION" /> 336 <category android:name="android.intent.category.DEFAULT" /> 337 </intent-filter> 338 </activity> 339 340 <service 341 android:name=".analytics.ProcessMetricsJobService" 342 android:permission="android.permission.BIND_JOB_SERVICE" /> 343 344 <!-- (b/197919878) Disable startup provider due to resource loading issue. --> 345 <provider 346 android:name="androidx.startup.InitializationProvider" 347 android:authorities="${applicationId}.androidx-startup" 348 tools:node="remove" /> 349 </application> 350</manifest> 351