<!-- ** ** Copyright 2014, The Android Open Source Project ** ** Licensed under the Apache License, Version 2.0 (the "License"); ** you may not use this file except in compliance with the License. ** You may obtain a copy of the License at ** ** http://www.apache.org/licenses/LICENSE-2.0 ** ** Unless required by applicable law or agreed to in writing, software ** distributed under the License is distributed on an "AS IS" BASIS, ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. ** See the License for the specific language governing permissions and ** limitations under the License. */ --> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.managedprovisioning" > <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.MANAGE_USERS" /> <uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" /> <uses-permission android:name="android.permission.MANAGE_ACCOUNTS" /> <uses-permission android:name="android.permission.INSTALL_PACKAGES"/> <uses-permission android:name="android.permission.DELETE_PACKAGES"/> <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" /> <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" /> <uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" /> <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" /> <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" /> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" /> <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.MASTER_CLEAR" /> <uses-permission android:name="android.permission.NFC" /> <uses-permission android:name="android.permission.SET_TIME" /> <uses-permission android:name="android.permission.SET_TIME_ZONE" /> <uses-permission android:name="android.permission.CRYPT_KEEPER" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.SHUTDOWN" /> <uses-permission android:name="android.permission.WRITE_SETTINGS" /> <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" /> <uses-permission android:name="android.permission.PERFORM_CDMA_PROVISIONING" /> <uses-permission android:name="android.permission.ACCESS_PDB_STATE" /> <application android:label="@string/app_label" android:allowClearUserData="false" android:hardwareAccelerated="true" android:usesCleartextTraffic="true" android:supportsRtl="true"> <!-- Note: Setup activities are android:immersive to prevent full-screen notifications (USB mass storage; incoming calls) from taking over. Note that high-priority notifications (phone calls) will still pop up a small window that can be activated. --> <activity android:name="DeviceOwnerProvisioningActivity" android:excludeFromRecents="true" android:immersive="true" android:launchMode="singleTop" android:theme="@style/SetupWorkSpaceTheme"> </activity> <activity android:name="ProfileOwnerProvisioningActivity" android:excludeFromRecents="true" android:immersive="true" android:launchMode="singleTop" android:theme="@style/SetupWorkSpaceTheme"> </activity> <activity android:name=".uiflows.PreProvisioningActivity" android:excludeFromRecents="true" android:immersive="true" android:launchMode="singleTop" android:theme="@style/SetupWorkSpaceTheme"> <intent-filter android:priority="10"> <action android:name="android.app.action.PROVISION_MANAGED_PROFILE" /> <action android:name="android.app.action.PROVISION_MANAGED_USER" /> <action android:name="android.app.action.PROVISION_MANAGED_DEVICE" /> <action android:name="android.app.action.PROVISION_MANAGED_SHAREABLE_DEVICE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <!-- Nfc bump entry for device owner provisioning, protected by a permission so only the Nfc stack can trigger this. --> <activity-alias android:name="PreProvisioningActivityViaNfc" android:targetActivity=".uiflows.PreProvisioningActivity" android:permission="android.permission.DISPATCH_NFC_MESSAGE" android:exported="true"> <intent-filter android:priority="10"> <action android:name="android.nfc.action.NDEF_DISCOVERED" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="application/com.android.managedprovisioning" /> </intent-filter> </activity-alias> <!-- Trusted app entry for device owner provisioning, protected by a permission so only privileged app can trigger this. --> <activity-alias android:name="PreProvisioningActivityViaTrustedApp" android:targetActivity=".uiflows.PreProvisioningActivity" android:permission="android.permission.DISPATCH_PROVISIONING_MESSAGE" android:exported="true"> <intent-filter android:priority="10"> <action android:name="android.app.action.PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity-alias> <!-- Entry to resume encryption after reboot. --> <activity-alias android:name="PreProvisioningActivityAfterEncryption" android:targetActivity=".uiflows.PreProvisioningActivity" android:exported="false"> <intent-filter android:priority="10"> <action android:name="com.android.managedprovisioning.action.RESUME_PROVISIONING" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity-alias> <activity android:name=".uiflows.EncryptDeviceActivity" android:immersive="true" android:launchMode="singleTop" android:theme="@style/SetupWorkSpaceTheme"> </activity> <activity android:name=".uiflows.WebActivity" android:immersive="true" android:launchMode="singleTop" android:process=":webview" android:theme="@style/SetupWorkSpaceTheme"> </activity> <activity android:name=".TrampolineActivity" android:theme="@android:style/Theme.NoDisplay" android:excludeFromRecents="true"> </activity> <!-- When PostEncryptionActivity is disabled, its entire task is going to get killed. So, we explicitly specify a taskAffinity for this instead of a package default to make sure it starts in a new task. --> <activity android:name=".uiflows.PostEncryptionActivity" android:theme="@android:style/Theme.NoDisplay" android:noHistory="true" android:excludeFromRecents="true" android:enabled="false" android:taskAffinity=":PostEncryptionActivity"> <intent-filter android:priority="10"> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.HOME" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> <service android:name="ProfileOwnerProvisioningService" > </service> <service android:name="DeviceOwnerProvisioningService" > </service> <receiver android:name="com.android.managedprovisioning.BootReminder"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> <receiver android:name="com.android.managedprovisioning.PreBootListener"> <intent-filter> <action android:name="android.intent.action.PRE_BOOT_COMPLETED" /> </intent-filter> </receiver> <!-- TODO: Add permission for setup-wizard to guard access? --> <activity android:name=".FinalizationActivity" android:theme="@android:style/Theme.NoDisplay" android:noHistory="true" android:excludeFromRecents="true" android:exported="true"> <intent-filter> <action android:name="android.app.action.PROVISION_FINALIZATION" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity> </application> </manifest>