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:label="@string/app_label" 90 android:allowClearUserData="false" 91 android:hardwareAccelerated="true" 92 android:usesCleartextTraffic="true" 93 android:supportsRtl="true" 94 android:name=".ManagedProvisioningApplication"> 95 96 <!-- 97 Note: Setup activities are android:immersive to prevent full-screen notifications (USB 98 mass storage; incoming calls) from taking over. Note that high-priority notifications 99 (phone calls) will still pop up a small window that can be activated. 100 --> 101 <activity 102 android:name=".provisioning.ProvisioningActivity" 103 android:excludeFromRecents="true" 104 android:immersive="true" 105 android:launchMode="singleTop" 106 android:theme="@style/SudThemeGlifV4.DayNight"> 107 </activity> 108 109 <activity 110 android:name=".provisioning.AdminIntegratedFlowPrepareActivity" 111 android:excludeFromRecents="true" 112 android:immersive="true" 113 android:launchMode="singleTop" 114 android:theme="@style/SudThemeGlifV4.DayNight"> 115 </activity> 116 117 <activity 118 android:name=".preprovisioning.PreProvisioningActivity" 119 android:excludeFromRecents="true" 120 android:immersive="true" 121 android:launchMode="singleTop" 122 android:exported="true" 123 android:theme="@style/SudThemeGlifV4.DayNight"> 124 <intent-filter android:priority="10"> 125 <action android:name="android.app.action.PROVISION_MANAGED_PROFILE" /> 126 <action android:name="android.app.action.PROVISION_MANAGED_DEVICE" /> 127 <category android:name="android.intent.category.DEFAULT" /> 128 </intent-filter> 129 </activity> 130 131 <activity 132 android:name=".provisioning.ResetAndReturnDeviceActivity" 133 android:excludeFromRecents="true" 134 android:immersive="true" 135 android:theme="@style/SudThemeGlifV4.Light"/> 136 137 <!-- 138 Nfc bump entry for device owner provisioning, protected by a permission so only the Nfc 139 stack can trigger this. 140 --> 141 <activity 142 android:name=".preprovisioning.PreProvisioningActivityViaNfc" 143 android:permission="android.permission.DISPATCH_NFC_MESSAGE" 144 android:theme="@style/SudThemeGlifV4.DayNight" 145 android:exported="true"> 146 <intent-filter android:priority="10"> 147 <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 148 <category android:name="android.intent.category.DEFAULT" /> 149 <data android:mimeType="application/com.android.managedprovisioning" /> 150 </intent-filter> 151 </activity> 152 <!-- 153 Trusted app entry for device owner provisioning, protected by a permission so only 154 privileged app can trigger this. 155 --> 156 <activity-alias 157 android:name=".PreProvisioningActivityViaTrustedApp" 158 android:targetActivity=".preprovisioning.PreProvisioningActivity" 159 android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE" 160 android:exported="true"> 161 <intent-filter android:priority="10"> 162 <action 163 android:name="android.app.action.PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE" 164 /> 165 <action 166 android:name="android.app.action.PROVISION_FINANCED_DEVICE" 167 /> 168 <category android:name="android.intent.category.DEFAULT" /> 169 </intent-filter> 170 </activity-alias> 171 <!-- Entry to resume encryption after reboot. --> 172 <activity-alias 173 android:name=".PreProvisioningActivityAfterEncryption" 174 android:targetActivity=".preprovisioning.PreProvisioningActivity" 175 android:exported="false"> 176 <intent-filter android:priority="10"> 177 <action 178 android:name="com.android.managedprovisioning.action.RESUME_PROVISIONING" 179 /> 180 <category android:name="android.intent.category.DEFAULT" /> 181 </intent-filter> 182 </activity-alias> 183 <activity 184 android:name=".preprovisioning.terms.TermsActivity" 185 android:excludeFromRecents="true" 186 android:immersive="true" 187 android:launchMode="singleTop" 188 android:theme="@style/SudThemeGlifV4.DayNight"/> 189 <activity 190 android:name=".preprovisioning.EncryptDeviceActivity" 191 android:immersive="true" 192 android:launchMode="singleTop"> 193 </activity> 194 <!-- 195 Entry point for silent device owner provisioning. 196 --> 197 <service 198 android:name=".provisioning.SilentDeviceOwnerProvisioningService"> 199 </service> 200 <receiver android:name=".provisioning.SilentDeviceOwnerProvisioningReceiver" 201 android:exported="true" 202 android:permission="android.permission.PROVISION_MANAGED_DEVICE_SILENTLY"> 203 <intent-filter android:priority="10"> 204 <action android:name="android.app.action.PROVISION_MANAGED_DEVICE_SILENTLY" /> 205 </intent-filter> 206 </receiver> 207 208 <activity 209 android:name=".preprovisioning.WebActivity" 210 android:immersive="true" 211 android:launchMode="singleTop" 212 android:theme="@style/SudThemeGlifV4.DayNight" 213 android:process=":webview"> 214 </activity> 215 216 <activity 217 android:name=".TrampolineActivity" 218 android:theme="@android:style/Theme.NoDisplay" 219 android:excludeFromRecents="true"> 220 </activity> 221 222 <!-- 223 When PostEncryptionActivity is disabled, its entire task is going to get killed. 224 So, we explicitly specify a taskAffinity for this instead of a package default to make 225 sure it starts in a new task. 226 --> 227 <activity android:name=".preprovisioning.PostEncryptionActivity" 228 android:theme="@android:style/Theme.NoDisplay" 229 android:noHistory="true" 230 android:excludeFromRecents="true" 231 android:enabled="false" 232 android:exported="true" 233 android:taskAffinity=":PostEncryptionActivity"> 234 <intent-filter android:priority="10"> 235 <action android:name="android.intent.action.MAIN" /> 236 <category android:name="android.intent.category.HOME" /> 237 <category android:name="android.intent.category.DEFAULT" /> 238 </intent-filter> 239 </activity> 240 241 <service android:name=".provisioning.ProvisioningService" /> 242 <service android:name=".finalization.SendDpcBroadcastService" /> 243 <service android:name=".ota.OtaService" /> 244 245 <receiver android:name="com.android.managedprovisioning.BootReminder" 246 android:exported="true"> 247 <intent-filter> 248 <action android:name="android.intent.action.BOOT_COMPLETED" /> 249 </intent-filter> 250 </receiver> 251 252 <receiver android:name="com.android.managedprovisioning.ota.PreBootListener" 253 android:exported="true"> 254 <intent-filter> 255 <action android:name="android.intent.action.PRE_BOOT_COMPLETED" /> 256 </intent-filter> 257 </receiver> 258 259 <receiver android:name="com.android.managedprovisioning.provisioninglisteners.ProvisioningCompletedListener" 260 android:exported="true"> 261 <intent-filter> 262 <action android:name="android.app.action.PROVISIONING_COMPLETED" /> 263 </intent-filter> 264 </receiver> 265 266 <receiver 267 android:name="com.android.managedprovisioning.provisioninglisteners.ManagedUserRemovalListener" 268 android:exported="true"> 269 <intent-filter> 270 <action android:name="android.intent.action.USER_REMOVED" /> 271 </intent-filter> 272 </receiver> 273 274 <!-- TODO (b/146135268): Add permission for setup-wizard to guard access? --> 275 <activity android:name=".finalization.FinalizationForwarderActivity" 276 android:excludeFromRecents="true" 277 android:exported="true" 278 android:immersive="true" 279 android:launchMode="singleTop" 280 android:theme="@android:style/Theme.Translucent.NoTitleBar"> 281 <intent-filter> 282 <!-- TODO (b/177666246): Remove PROVISION_FINALIZATION_INSIDE_SUW 283 after the setup wizard change which calls PROVISION_FINALIZATION is in prebuilt --> 284 <action android:name="android.app.action.PROVISION_FINALIZATION_INSIDE_SUW" /> 285 <action android:name="android.app.action.PROVISION_FINALIZATION" /> 286 <category android:name="android.intent.category.DEFAULT" /> 287 </intent-filter> 288 </activity> 289 290 <activity android:name=".finalization.FinalizationInsideSuwActivity" 291 android:excludeFromRecents="true" 292 android:immersive="true" 293 android:launchMode="singleTop" 294 android:theme="@style/SudThemeGlifV4.DayNight" /> 295 296 <activity 297 android:name=".provisioning.LandingActivity" 298 android:theme="@style/SudThemeGlifV4.DayNight" 299 android:immersive="true" /> 300 301 <activity 302 android:name=".provisioning.FinancedDeviceLandingActivity" 303 android:theme="@style/SudThemeGlifV4.DayNight" 304 android:immersive="true" /> 305 306 <activity 307 android:name=".preprovisioning.DownloadRoleHolderActivity" 308 android:theme="@style/SudThemeGlifV4.DayNight" 309 android:immersive="true" /> 310 311 <activity 312 android:name=".common.RetryLaunchActivity" 313 android:theme="@style/SudThemeGlifV4.DayNight" 314 android:immersive="true" /> 315 316 <activity 317 android:name=".networkconnection.EstablishNetworkConnectionActivity" 318 android:excludeFromRecents="true" 319 android:immersive="true" 320 android:launchMode="singleTop" 321 android:theme="@style/SudThemeGlifV3.DayNight" 322 android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE" 323 android:exported="true"> 324 <intent-filter> 325 <action android:name="android.app.action.ESTABLISH_NETWORK_CONNECTION" /> 326 <category android:name="android.intent.category.DEFAULT" /> 327 </intent-filter> 328 </activity> 329 330 <service 331 android:name=".analytics.ProcessMetricsJobService" 332 android:permission="android.permission.BIND_JOB_SERVICE"/> 333 334 <!-- (b/197919878) Disable startup provider due to resource loading issue. --> 335 <provider 336 android:name="androidx.startup.InitializationProvider" 337 android:authorities="${applicationId}.androidx-startup" 338 tools:node="remove" /> 339 </application> 340</manifest> 341