1<?xml version="1.0" encoding="utf-8"?>
2
3<!--
4  ~ Copyright (C) 2022 The Android Open Source Project
5  ~
6  ~ Licensed under the Apache License, Version 2.0 (the "License");
7  ~ you may not use this file except in compliance with the License.
8  ~ You may obtain a copy of the License at
9  ~
10  ~      http://www.apache.org/licenses/LICENSE-2.0
11  ~
12  ~ Unless required by applicable law or agreed to in writing, software
13  ~ distributed under the License is distributed on an "AS IS" BASIS,
14  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  ~ See the License for the specific language governing permissions and
16  ~ limitations under the License.
17  -->
18
19<manifest xmlns:android="http://schemas.android.com/apk/res/android"
20          package="com.android.DevicePolicyManagerRoleHolder" android:targetSandboxVersion="2">
21    <uses-permission android:name="android.permission.BIND_DEVICE_ADMIN" />
22    <uses-permission android:name="android.permission.MANAGE_DEVICE_ADMINS" />
23    <uses-permission android:name="android.permission.NETWORK_MANAGED_PROVISIONING" />
24    <uses-permission android:name="android.permission.PEERS_MAC_ADDRESS" />
25    <uses-permission android:name="android.permission.USE_COLORIZED_NOTIFICATIONS" />
26    <uses-permission android:name="android.permission.MASTER_CLEAR" />
27    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
28    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
29    <uses-permission android:name="android.permission.START_ACTIVITIES_FROM_BACKGROUND" />
30    <uses-permission android:name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND" />
31    <uses-permission android:name="android.permission.MANAGE_PROFILE_AND_DEVICE_OWNERS" />
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="com.android.permission.INSTALL_EXISTING_PACKAGES" />
35    <uses-permission android:name="android.permission.DELETE_PACKAGES" />
36    <uses-permission android:name="android.permission.ACCESS_PDB_STATE" />
37    <uses-permission android:name="android.permission.MARK_DEVICE_ORGANIZATION_OWNED" />
38    <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" />
39    <uses-permission android:name="android.permission.SET_TIME" />
40    <uses-permission android:name="android.permission.SET_TIME_ZONE" />
41    <uses-permission android:name="android.permission.CRYPT_KEEPER" />
42    <uses-permission android:name="android.permission.SHUTDOWN" />
43    <uses-permission android:name="android.permission.PERFORM_CDMA_PROVISIONING" />
44    <uses-permission android:name="android.permission.CONFIGURE_INTERACT_ACROSS_PROFILES" />
45    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
46    <uses-permission android:name="android.permission.CHANGE_CONFIGURATION" />
47    <uses-permission android:name="android.permission.LAUNCH_DEVICE_MANAGER_SETUP" />
48    <uses-permission android:name="android.permission.INSTALL_DPC_PACKAGES" />
49    <uses-permission android:name="android.permission.QUERY_USERS" />
50    <uses-permission android:name="android.permission.UPDATE_DEVICE_MANAGEMENT_RESOURCES" />
51    <uses-permission android:name="android.permission.QUERY_ADMIN_POLICY" />
52    <uses-permission android:name="android.permission.TRIGGER_LOST_MODE" />
53    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_APP_EXEMPTIONS" />
54    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_ACCOUNT_MANAGEMENT" />
55    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_AIRPLANE_MODE" />
56    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_CAMERA" />
57    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_CERTIFICATES" />
58    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_COMMON_CRITERIA_MODE" />
59    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_DEFAULT_SMS" />
60    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_FACTORY_RESET" />
61    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_INPUT_METHODS" />
62    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_INSTALL_UNKNOWN_SOURCES" />
63    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_KEYGUARD" />
64    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_LOCK" />
65    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_LOCK_CREDENTIALS" />
66    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_MOBILE_NETWORK" />
67    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_MTE" />
68    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_PACKAGE_STATE" />
69    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_PROFILES" />
70    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_RESTRICT_PRIVATE_DNS" />
71    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_SCREEN_CAPTURE" />
72    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_SECURITY_LOGGING" />
73    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_AUDIT_LOGGING" />
74    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_SUSPEND_PERSONAL_APPS" />
75    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_SYSTEM_UPDATES" />
76    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_TIME" />
77    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_USB_DATA_SIGNALLING" />
78    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_WIFI" />
79    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_WIPE_DATA" />
80    <uses-permission android:name="android.permission.SET_TIME" />
81    <uses-permission android:name="android.permission.SET_TIME_ZONE" />
82    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_DEBUGGING_FEATURES" />
83    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_MODIFY_USERS" />
84    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_SAFE_BOOT" />
85    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_MICROPHONE" />
86    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_USB_FILE_TRANSFER" />
87    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_CONTENT_PROTECTION" />
88    <uses-permission android:name="android.permission.MANAGE_DEVICE_POLICY_QUERY_SYSTEM_UPDATES" />
89    <uses-permission android:name="android.permission.QUERY_DEVICE_STOLEN_STATE" />
90
91    <application
92        android:label="DevicePolicyManagerRoleHolder" android:testOnly="true">
93    <!-- Don't allow this test app to be returned by queries unless filtered by package name -->
94        <meta-data android:name="testapp-package-query-only" android:value="true" />
95
96        <activity android:name=".provision_managed_device_from_trusted_source" android:exported="true" android:permission="android.permission.LAUNCH_DEVICE_MANAGER_SETUP">
97            <intent-filter>
98                <action android:name="android.app.action.ROLE_HOLDER_PROVISION_MANAGED_DEVICE_FROM_TRUSTED_SOURCE" />
99                <category android:name="android.intent.category.DEFAULT" />
100            </intent-filter>
101        </activity>
102        <activity android:name=".role_holder_provision_managed_profile" android:exported="true" android:permission="android.permission.LAUNCH_DEVICE_MANAGER_SETUP">
103            <intent-filter>
104                <action android:name="android.app.action.ROLE_HOLDER_PROVISION_MANAGED_PROFILE" />
105                <category android:name="android.intent.category.DEFAULT" />
106            </intent-filter>
107        </activity>
108        <activity android:name=".role_holder_provision_finalization" android:exported="true" android:permission="android.permission.LAUNCH_DEVICE_MANAGER_SETUP">
109            <intent-filter>
110                <action android:name="android.app.action.ROLE_HOLDER_PROVISION_FINALIZATION" />
111                <category android:name="android.intent.category.DEFAULT" />
112            </intent-filter>
113        </activity>
114
115        <receiver android:name=".RoleHolderReceiver" android:exported="true">
116            <intent-filter>
117                <action android:name="android.intent.action.MANAGED_PROFILE_REMOVED" />
118                <action android:name="android.intent.action.MANAGED_PROFILE_AVAILABLE" />
119                <action android:name="android.intent.action.MANAGED_PROFILE_UNAVAILABLE" />
120            </intent-filter>
121        </receiver>
122
123        <receiver android:name=".FinancedDeviceStateReceiver" android:exported="true">
124            <intent-filter>
125                <action android:name="android.app.admin.action.DEVICE_FINANCING_STATE_CHANGED" />
126            </intent-filter>
127        </receiver>
128
129        <!-- Ideally it's not required for role holder to act as a dpc, but its required for
130        some of our ManagedSubscriptionsPolicy test, adding this receiver only for this reason.-->
131        <receiver android:name=".DeviceAdminReceiver"
132            android:permission="android.permission.BIND_DEVICE_ADMIN"
133            android:exported="true">
134            <meta-data android:name="android.app.device_admin"
135                android:resource="@xml/device_admin"/>
136            <intent-filter>
137                <action android:name="android.app.action.DEVICE_ADMIN_ENABLED"/>
138                <action android:name="android.app.action.NOTIFY_PENDING_SYSTEM_UPDATE"/>
139            </intent-filter>
140        </receiver>
141
142    </application>
143</manifest>