<!--
**
** 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.GET_ACCOUNTS" />
<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.MANAGE_CA_CERTIFICATES" />
<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: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="DeviceOwnerPreProvisioningActivity"
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_DEVICE" />
<action android:name="com.android.managedprovisioning.ACTION_PROVISION_MANAGED_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="DeviceOwnerPreProvisioningActivityViaNfc"
android:targetActivity="DeviceOwnerPreProvisioningActivity"
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" />
<data android:mimeType="application/com.android.managedprovisioning.v2"/>
</intent-filter>
</activity-alias>
<activity
android:name="DeviceOwnerProvisioningActivity"
android:excludeFromRecents="true"
android:immersive="true"
android:launchMode="singleTop"
android:theme="@style/SetupWorkSpaceTheme">
</activity>
<activity
android:name="ProfileOwnerPreProvisioningActivity"
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" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="ProfileOwnerProvisioningActivity"
android:excludeFromRecents="true"
android:immersive="true"
android:launchMode="singleTop"
android:theme="@style/SetupWorkSpaceTheme">
</activity>
<activity-alias
android:name="ProfileOwnerProvisioningActivityNoCallerCheck"
android:targetActivity="ProfileOwnerPreProvisioningActivity"
android:permission="android.permission.MANAGE_USERS"
android:exported="true">
</activity-alias>
<activity
android:name="EncryptDeviceActivity"
android:immersive="true"
android:launchMode="singleTop"
android:theme="@style/SetupWorkSpaceTheme">
</activity>
<activity
android:name="WebActivity"
android:immersive="true"
android:launchMode="singleTop"
android:theme="@style/SetupWorkSpaceTheme">
</activity>
<activity
android:name=".TrampolineActivity"
android:theme="@android:style/Theme.NoDisplay"
android:excludeFromRecents="true">
</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>
<activity android:name="com.android.managedprovisioning.HomeReceiverActivity"
android:theme="@android:style/Theme.NoDisplay"
android:noHistory="true"
android:excludeFromRecents="true"
android:enabled="false">
<intent-filter android:priority="2">
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<receiver android:name=".UserInitializedReceiver" >
<intent-filter>
<action android:name="android.intent.action.USER_INITIALIZE" />
</intent-filter>
</receiver>
<!-- These 2 receivers, along with the CertService, handle installing CA certs for
secondary users. On initialization of secondary users, a broadcast
(InstallCertRequestReceiver) is sent to the primary user to request the CA certs. The
primary user responds, via CertService, with a broadcast (InstallCertReceiver)
containing the CA certs, which are then installed for the secondary user. -->
<receiver android:name=".InstallCertRequestReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.android.managedprovisioning.REQUEST_CERT_ACTION" />
</intent-filter>
</receiver>
<receiver android:name=".InstallCertReceiver"
android:exported="false">
<intent-filter>
<action android:name="com.android.managedprovisioning.INSTALL_CERT_ACTION" />
</intent-filter>
</receiver>
<service android:name=".CertService"
android:exported = "false"/>
</application>
</manifest>