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