blob: cf485a2076c4c64abf41d7471956d723c798be12 [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!--
~ Copyright (C) 2022 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"
xmlns:androidprv="http://schemas.android.com/apk/prv/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.android.devicelockcontroller">
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>
<uses-permission android:name="android.permission.INSTALL_PACKAGES"/>
<uses-permission android:name="android.permission.MASTER_CLEAR"/>
<uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_APPS_CONTROL"/>
<uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_CALLS"/>
<uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_DEBUGGING_FEATURES"/>
<uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_INSTALL_UNKNOWN_SOURCES"/>
<uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_LOCK_TASK"/>
<uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_SAFE_BOOT"/>
<uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_TIME"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<application
android:name=".DeviceLockControllerApplication"
android:allowBackup="false"
android:label="@string/app_name"
android:supportsRtl="true">
<activity
android:name="com.android.devicelockcontroller.activities.HelpActivity"
android:theme="@style/Theme.Materialu"
android:exported="false"/>
<activity
android:name="com.android.devicelockcontroller.activities.LandingActivity"
android:theme="@style/Theme.Materialu"
android:exported="true">
<intent-filter>
<action android:name="com.android.devicelockcontroller.action.START_DEVICE_LOCK_PROVISIONING"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<activity-alias
android:name="com.android.devicelockcontroller.activities.DeviceFinancingDeferredProvisioningLandingActivity"
android:targetActivity=".activities.LandingActivity"
android:exported="false">
<intent-filter>
<action android:name="com.android.devicelockcontroller.action.START_DEVICE_FINANCING_DEFERRED_PROVISIONING"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity-alias>
<activity-alias
android:name="com.android.devicelockcontroller.activities.DeviceSubsidyProvisioningLandingActivity"
android:targetActivity=".activities.LandingActivity"
android:exported="false">
<intent-filter>
<action android:name="com.android.devicelockcontroller.action.START_DEVICE_SUBSIDY_PROVISIONING"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity-alias>
<service android:name="com.android.devicelockcontroller.DeviceLockControllerService"
android:directBootAware="true"
android:exported="false"
androidprv:systemUserOnly="true">
<intent-filter>
<action android:name="android.app.action.DEVICE_LOCK_CONTROLLER_SERVICE"/>
</intent-filter>
</service>
<service android:name="com.android.devicelockcontroller.setup.SetupParametersService"
android:directBootAware="true"
android:exported="false"
android:singleUser="true">
</service>
<service android:name="com.android.devicelockcontroller.setup.UserPreferencesService"
android:directBootAware="true"
android:exported="false"
android:singleUser="true">
</service>
<!-- The following component is needed because many Device Policy Manager APIs require
this receiver component name as first argument. -->
<receiver android:name="com.android.devicelockcontroller.receivers.DlcDeviceAdminReceiver"
android:permission="android.permission.BIND_DEVICE_ADMIN"
android:exported="false"
androidprv:systemUserOnly="true">
<meta-data
android:name="android.app.device_admin"
android:resource="@xml/device_admin"/>
<intent-filter>
<action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
</intent-filter>
</receiver>
<!-- Single user boot completed broadcast receiver -->
<receiver
android:name="com.android.devicelockcontroller.receivers.CheckInBootCompletedReceiver"
android:exported="false"
androidprv:systemUserOnly="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<!-- Multi users boot completed broadcast receiver -->
<receiver
android:name="com.android.devicelockcontroller.receivers.LockTaskBootCompletedReceiver"
android:exported="false"
android:singleUser="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<!-- Multi users locked boot completed broadcast receiver -->
<receiver
android:name="com.android.devicelockcontroller.receivers.DlcLockedBootCompletedReceiver"
android:directBootAware="true"
android:exported="false"
android:singleUser="false">
<intent-filter>
<action android:name="android.intent.action.LOCKED_BOOT_COMPLETED"/>
</intent-filter>
</receiver>
<!-- b/267355744: Disable the default initializer used by WorkManager, so that we can ensure
WorkManager is initialized when needed. -->
<provider
android:name="androidx.startup.InitializationProvider"
android:authorities="${applicationId}.androidx-startup"
tools:node="remove">
</provider>
</application>
</manifest>