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 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 22 <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> 23 <uses-permission android:name="android.permission.MANAGE_USERS" /> 24 <uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" /> 25 <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> 26 <uses-permission android:name="android.permission.INSTALL_PACKAGES"/> 27 <uses-permission android:name="android.permission.DELETE_PACKAGES"/> 28 <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> 29 <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" /> 30 <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" /> 31 <uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" /> 32 33 <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" /> 34 <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" /> 35 <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> 36 37 <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" /> 38 <uses-permission android:name="android.permission.INTERNET" /> 39 <uses-permission android:name="android.permission.MASTER_CLEAR" /> 40 <uses-permission android:name="android.permission.NFC" /> 41 <uses-permission android:name="android.permission.SET_TIME" /> 42 <uses-permission android:name="android.permission.SET_TIME_ZONE" /> 43 44 <uses-permission android:name="android.permission.CRYPT_KEEPER" /> 45 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 46 <uses-permission android:name="android.permission.SHUTDOWN" /> 47 48 <uses-permission android:name="android.permission.WRITE_SETTINGS" /> 49 <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> 50 51 <uses-permission android:name="android.permission.PERFORM_CDMA_PROVISIONING" /> 52 <uses-permission android:name="android.permission.ACCESS_PDB_STATE" /> 53 <uses-permission android:name="android.permission.PEERS_MAC_ADDRESS" /> 54 55 <application 56 android:label="@string/app_label" 57 android:allowClearUserData="false" 58 android:hardwareAccelerated="true" 59 android:usesCleartextTraffic="true" 60 android:supportsRtl="true"> 61 62 <!-- 63 Note: Setup activities are android:immersive to prevent full-screen notifications (USB 64 mass storage; incoming calls) from taking over. Note that high-priority notifications 65 (phone calls) will still pop up a small window that can be activated. 66 --> 67 <activity 68 android:name=".provisioning.ProvisioningActivity" 69 android:excludeFromRecents="true" 70 android:immersive="true" 71 android:launchMode="singleTop" 72 android:theme="@style/SuwThemeGlif.Light"> 73 </activity> 74 75 <activity 76 android:name=".preprovisioning.PreProvisioningActivity" 77 android:excludeFromRecents="true" 78 android:immersive="true" 79 android:launchMode="singleTop" 80 android:theme="@style/SuwThemeGlif.Light"> 81 <intent-filter android:priority="10"> 82 <action android:name="android.app.action.PROVISION_MANAGED_PROFILE" /> 83 <action android:name="android.app.action.PROVISION_MANAGED_USER" /> 84 <action android:name="android.app.action.PROVISION_MANAGED_DEVICE" /> 85 <action android:name="android.app.action.PROVISION_MANAGED_SHAREABLE_DEVICE" /> 86 <category android:name="android.intent.category.DEFAULT" /> 87 </intent-filter> 88 </activity> 89 <!-- 90 Nfc bump entry for device owner provisioning, protected by a permission so only the Nfc 91 stack can trigger this. 92 --> 93 <activity-alias 94 android:name=".PreProvisioningActivityViaNfc" 95 android:targetActivity=".preprovisioning.PreProvisioningActivity" 96 android:permission="android.permission.DISPATCH_NFC_MESSAGE" 97 android:exported="true"> 98 <intent-filter android:priority="10"> 99 <action android:name="android.nfc.action.NDEF_DISCOVERED" /> 100 <category android:name="android.intent.category.DEFAULT" /> 101 <data android:mimeType="application/com.android.managedprovisioning" /> 102 </intent-filter> 103 </activity-alias> 104 <!-- 105 Trusted app entry for device owner provisioning, protected by a permission so only 106 privileged app can trigger this. 107 --> 108 <activity-alias 109 android:name=".PreProvisioningActivityViaTrustedApp" 110 android:targetActivity=".preprovisioning.PreProvisioningActivity" 111 android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE" 112 android:exported="true"> 113 <intent-filter android:priority="10"> 114 <action 115 android:name="android.app.action.PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE" 116 /> 117 <category android:name="android.intent.category.DEFAULT" /> 118 </intent-filter> 119 </activity-alias> 120 <!-- Entry to resume encryption after reboot. --> 121 <activity-alias 122 android:name=".PreProvisioningActivityAfterEncryption" 123 android:targetActivity=".preprovisioning.PreProvisioningActivity" 124 android:exported="false"> 125 <intent-filter android:priority="10"> 126 <action 127 android:name="com.android.managedprovisioning.action.RESUME_PROVISIONING" 128 /> 129 <category android:name="android.intent.category.DEFAULT" /> 130 </intent-filter> 131 </activity-alias> 132 <activity 133 android:name=".preprovisioning.terms.TermsActivity" 134 android:excludeFromRecents="true" 135 android:immersive="true" 136 android:launchMode="singleTop" 137 android:theme="@style/Provisioning2Theme"> 138 </activity> 139 <activity 140 android:name=".preprovisioning.EncryptDeviceActivity" 141 android:immersive="true" 142 android:launchMode="singleTop"> 143 </activity> 144 145 <activity 146 android:name=".preprovisioning.WebActivity" 147 android:immersive="true" 148 android:launchMode="singleTop" 149 android:process=":webview"> 150 </activity> 151 152 <activity 153 android:name=".TrampolineActivity" 154 android:theme="@android:style/Theme.NoDisplay" 155 android:excludeFromRecents="true"> 156 </activity> 157 158 <!-- 159 When PostEncryptionActivity is disabled, its entire task is going to get killed. 160 So, we explicitly specify a taskAffinity for this instead of a package default to make 161 sure it starts in a new task. 162 --> 163 <activity android:name=".preprovisioning.PostEncryptionActivity" 164 android:theme="@android:style/Theme.NoDisplay" 165 android:noHistory="true" 166 android:excludeFromRecents="true" 167 android:enabled="false" 168 android:taskAffinity=":PostEncryptionActivity"> 169 <intent-filter android:priority="10"> 170 <action android:name="android.intent.action.MAIN" /> 171 <category android:name="android.intent.category.HOME" /> 172 <category android:name="android.intent.category.DEFAULT" /> 173 </intent-filter> 174 </activity> 175 176 <service android:name=".provisioning.ProvisioningService" /> 177 <service android:name=".ota.OtaService" /> 178 179 <receiver android:name="com.android.managedprovisioning.preprovisioning.BootReminder"> 180 <intent-filter> 181 <action android:name="android.intent.action.BOOT_COMPLETED" /> 182 </intent-filter> 183 </receiver> 184 185 <receiver android:name="com.android.managedprovisioning.ota.PreBootListener"> 186 <intent-filter> 187 <action android:name="android.intent.action.PRE_BOOT_COMPLETED" /> 188 </intent-filter> 189 </receiver> 190 191 <!-- TODO: Add permission for setup-wizard to guard access? --> 192 <activity android:name=".finalization.FinalizationActivity" 193 android:theme="@android:style/Theme.NoDisplay" 194 android:noHistory="true" 195 android:excludeFromRecents="true" 196 android:exported="true"> 197 <intent-filter> 198 <action android:name="android.app.action.PROVISION_FINALIZATION" /> 199 <category android:name="android.intent.category.DEFAULT" /> 200 </intent-filter> 201 </activity> 202 </application> 203 </manifest>