1<?xml version="1.0" encoding="utf-8"?>
2<manifest
3  xmlns:android="http://schemas.android.com/apk/res/android"
4  xmlns:tools="http://schemas.android.com/tools"
5  package="com.android.permissioncontroller"
6  coreApp="true"
7  android:versionCode="290000000"
8  android:versionName="29 system image"
9>
10
11    <original-package android:name="com.android.permissioncontroller" />
12
13    <permission android:name="com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER"
14                android:protectionLevel="signature" />
15
16    <uses-permission android:name="android.permission.MANAGE_USERS" />
17    <uses-permission android:name="android.permission.GRANT_RUNTIME_PERMISSIONS" />
18    <uses-permission android:name="android.permission.REVOKE_RUNTIME_PERMISSIONS" />
19    <uses-permission android:name="android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY" />
20    <uses-permission android:name="android.permission.WHITELIST_RESTRICTED_PERMISSIONS" />
21    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
22    <uses-permission android:name="android.permission.OBSERVE_GRANT_REVOKE_PERMISSIONS" />
23    <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
24    <uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES" />
25    <uses-permission android:name="android.permission.GET_APP_OPS_STATS" />
26    <uses-permission android:name="android.permission.KILL_UID" />
27    <uses-permission android:name="android.permission.MANAGE_APP_OPS_RESTRICTIONS" />
28    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
29    <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS" />
30    <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" />
31    <uses-permission android:name="android.permission.OBSERVE_ROLE_HOLDERS" />
32    <uses-permission android:name="android.permission.SET_PREFERRED_APPLICATIONS" />
33    <uses-permission android:name="android.permission.ACCESS_SHARED_LIBRARIES" />
34    <uses-permission android:name="com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER" />
35    <uses-permission android:name="android.permission.ACCESS_INSTANT_APPS" />
36    <uses-permission android:name="android.permission.REQUEST_INCIDENT_REPORT_APPROVAL" />
37    <uses-permission android:name="android.permission.APPROVE_INCIDENT_REPORTS" />
38    <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
39    <uses-permission android:name="android.permission.OPEN_ACCESSIBILITY_DETAILS_SETTINGS" />
40    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
41    <uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" />
42
43    <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29" />
44
45    <application android:name="com.android.packageinstaller.PackageInstallerApplication"
46            android:label="@string/app_name"
47            android:icon="@drawable/ic_permission_controller_app_icon"
48            android:allowBackup="false"
49            android:allowClearUserData="false"
50            android:supportsRtl="true"
51            android:defaultToDeviceProtectedStorage="true"
52            android:directBootAware="true">
53
54        <provider
55            android:name="androidx.lifecycle.ProcessLifecycleOwnerInitializer"
56            tools:replace="android:authorities"
57            android:authorities="${applicationId}.lifecycle-process"
58            android:exported="false"
59            android:multiprocess="true" />
60
61        <receiver android:name="com.android.packageinstaller.permission.service.LocationAccessCheck$SetupPeriodicBackgroundLocationAccessCheck">
62            <intent-filter>
63                <action android:name="android.intent.action.BOOT_COMPLETED" />
64            </intent-filter>
65        </receiver>
66
67        <receiver android:name="com.android.packageinstaller.permission.service.LocationAccessCheck$NotificationDeleteHandler" />
68
69        <receiver android:name="com.android.packageinstaller.permission.service.LocationAccessCheck$NotificationClickHandler" />
70
71        <receiver android:name="com.android.packageinstaller.permission.service.LocationAccessCheck$PackageResetHandler">
72            <intent-filter>
73                <action android:name="android.intent.action.PACKAGE_FULLY_REMOVED"/>
74                <action android:name="android.intent.action.PACKAGE_DATA_CLEARED" />
75                <data android:scheme="package" />
76            </intent-filter>
77        </receiver>
78
79        <service android:name="com.android.packageinstaller.permission.service.LocationAccessCheck$LocationAccessCheckJobService"
80                 android:permission="android.permission.BIND_JOB_SERVICE" />
81
82        <activity android:name="com.android.packageinstaller.permission.ui.GrantPermissionsActivity"
83                android:configChanges="keyboardHidden|screenSize"
84                android:excludeFromRecents="true"
85                android:theme="@style/GrantPermissions"
86                android:visibleToInstantApps="true"
87                android:inheritShowWhenLocked="true">
88            <intent-filter android:priority="1">
89                <action android:name="android.content.pm.action.REQUEST_PERMISSIONS" />
90                <category android:name="android.intent.category.DEFAULT" />
91            </intent-filter>
92        </activity>
93
94        <activity android:name="com.android.packageinstaller.permission.ui.ManagePermissionsActivity"
95                  android:configChanges="orientation|keyboardHidden|screenSize"
96                  android:label="@string/app_permissions"
97                  android:theme="@style/Settings"
98                  android:permission="android.permission.GRANT_RUNTIME_PERMISSIONS">
99            <intent-filter android:priority="1">
100                <action android:name="android.intent.action.MANAGE_APP_PERMISSIONS" />
101                <action android:name="android.intent.action.MANAGE_PERMISSION_APPS" />
102                <action android:name="android.intent.action.MANAGE_PERMISSIONS" />
103                <action android:name="android.intent.action.REVIEW_PERMISSION_USAGE" />
104                <category android:name="android.intent.category.DEFAULT" />
105            </intent-filter>
106        </activity>
107
108        <activity android:name="com.android.packageinstaller.permission.ui.AdjustUserSensitiveActivity"
109                  android:configChanges="orientation|keyboardHidden|screenSize"
110                  android:label="@string/adjust_user_sensitive_title"
111                  android:theme="@style/Settings"
112                  android:exported="false"
113                  android:permission="android.permission.GRANT_RUNTIME_PERMISSIONS" />
114
115        <activity android:name="com.android.packageinstaller.permission.ui.ManagePermissionsActivityTrampoline"
116                  android:excludeFromRecents="true"
117                  android:noHistory="true"
118                  android:theme="@android:style/Theme.NoDisplay">
119            <intent-filter android:priority="1">
120                <action android:name="com.android.permissioncontroller.settingssearch.action.MANAGE_PERMISSION_APPS" />
121                <action android:name="com.android.permissioncontroller.settingssearch.action.REVIEW_PERMISSION_USAGE" />
122                <category android:name="android.intent.category.DEFAULT" />
123            </intent-filter>
124        </activity>
125
126        <activity android:name="com.android.packageinstaller.permission.ui.AppPermissionActivity"
127                  android:configChanges="orientation|keyboardHidden|screenSize"
128                  android:theme="@style/Settings"
129                  android:permission="android.permission.GRANT_RUNTIME_PERMISSIONS">
130            <intent-filter android:priority="1">
131                <action android:name="android.intent.action.MANAGE_APP_PERMISSION" />
132                <category android:name="android.intent.category.DEFAULT" />
133            </intent-filter>
134        </activity>
135
136        <activity android:name="com.android.packageinstaller.permission.ui.ReviewPermissionsActivity"
137                  android:excludeFromRecents="true"
138                  android:theme="@style/ReviewPermissions"
139                  android:permission="android.permission.GRANT_RUNTIME_PERMISSIONS">
140            <intent-filter android:priority="1">
141                <action android:name="android.intent.action.REVIEW_PERMISSIONS" />
142                <category android:name="android.intent.category.DEFAULT" />
143            </intent-filter>
144        </activity>
145
146        <activity android:name="com.android.packageinstaller.permission.ui.OverlayWarningDialog"
147                android:excludeFromRecents="true"
148                android:theme="@android:style/Theme.DeviceDefault.Light.Dialog.NoActionBar" />
149
150        <activity android:name="com.android.packageinstaller.permission.ui.LocationProviderInterceptDialog"
151                  android:excludeFromRecents="true"
152                  android:theme="@style/PermissionDialog" />
153
154        <activity android:name="com.android.packageinstaller.permission.ui.ReviewOngoingUsageActivity"
155                  android:excludeFromRecents="true"
156                  android:theme="@style/PermissionDialog"
157                  android:launchMode="singleInstance"
158                  android:permission="android.permission.GRANT_RUNTIME_PERMISSIONS" >
159            <intent-filter android:priority="1">
160                <action android:name="android.intent.action.REVIEW_ONGOING_PERMISSION_USAGE" />
161                <category android:name="android.intent.category.DEFAULT" />
162            </intent-filter>
163        </activity>
164
165        <activity android:name="com.android.packageinstaller.permission.ui.ReviewAccessibilityServicesActivity"
166                  android:excludeFromRecents="true"
167                  android:theme="@style/PermissionDialog"
168                  android:permission="android.permission.REVIEW_ACCESSIBILITY_SERVICES" >
169            <intent-filter android:priority="1">
170                <action android:name="android.intent.action.REVIEW_ACCESSIBILITY_SERVICES" />
171                <category android:name="android.intent.category.DEFAULT" />
172            </intent-filter>
173        </activity>
174
175        <activity android:name="com.android.packageinstaller.role.ui.RequestRoleActivity"
176                  android:excludeFromRecents="true"
177                  android:theme="@style/RequestRole">
178            <intent-filter android:priority="1">
179                <action android:name="android.app.role.action.REQUEST_ROLE" />
180                <category android:name="android.intent.category.DEFAULT" />
181            </intent-filter>
182            <intent-filter android:priority="2">
183                <action android:name="android.provider.Telephony.ACTION_CHANGE_DEFAULT" />
184                <category android:name="android.intent.category.DEFAULT" />
185            </intent-filter>
186            <intent-filter android:priority="1001">
187                <action android:name="android.telecom.action.CHANGE_DEFAULT_DIALER" />
188                <category android:name="android.intent.category.DEFAULT" />
189            </intent-filter>
190        </activity>
191
192        <activity android:name="com.android.packageinstaller.role.ui.DefaultAppListActivity"
193                  android:label="@string/default_apps"
194                  android:theme="@style/Settings">
195            <intent-filter android:priority="2">
196                <action android:name="android.settings.MANAGE_DEFAULT_APPS_SETTINGS" />
197                <category android:name="android.intent.category.DEFAULT" />
198            </intent-filter>
199        </activity>
200
201        <activity android:name="com.android.packageinstaller.role.ui.DefaultAppActivity"
202                  android:permission="android.permission.MANAGE_ROLE_HOLDERS"
203                  android:theme="@style/Settings">
204            <intent-filter android:priority="1">
205                <action android:name="android.intent.action.MANAGE_DEFAULT_APP" />
206                <category android:name="android.intent.category.DEFAULT" />
207            </intent-filter>
208        </activity>
209
210        <activity android:name="com.android.packageinstaller.role.ui.HomeSettingsActivity"
211                  android:excludeFromRecents="true"
212                  android:noHistory="true"
213                  android:theme="@android:style/Theme.NoDisplay">
214            <intent-filter android:priority="2">
215                <action android:name="android.settings.HOME_SETTINGS" />
216                <category android:name="android.intent.category.DEFAULT" />
217            </intent-filter>
218        </activity>
219
220        <activity android:name="com.android.packageinstaller.role.ui.SpecialAppAccessListActivity"
221                  android:label="@string/special_app_access"
222                  android:permission="android.permission.MANAGE_ROLE_HOLDERS"
223                  android:theme="@style/Settings">
224            <intent-filter android:priority="1">
225                <action android:name="android.intent.action.MANAGE_SPECIAL_APP_ACCESSES" />
226                <category android:name="android.intent.category.DEFAULT" />
227            </intent-filter>
228        </activity>
229
230        <!-- TODO: Override other Settings intents when we've done migrating them. -->
231        <activity android:name="com.android.packageinstaller.role.ui.SpecialAppAccessActivity"
232                  android:theme="@style/Settings" />
233
234        <activity android:name="com.android.packageinstaller.role.ui.RoleSearchTrampolineActivity"
235                  android:excludeFromRecents="true"
236                  android:noHistory="true"
237                  android:theme="@android:style/Theme.NoDisplay">
238            <intent-filter android:priority="1">
239                <action android:name="com.android.permissioncontroller.settingssearch.action.MANAGE_DEFAULT_APP" />
240                <action android:name="com.android.permissioncontroller.settingssearch.action.MANAGE_SPECIAL_APP_ACCESS" />
241                <category android:name="android.intent.category.DEFAULT" />
242            </intent-filter>
243        </activity>
244
245        <provider android:name="com.android.packageinstaller.permission.service.PermissionSearchIndexablesProvider"
246            android:authorities="com.android.permissioncontroller"
247            android:multiprocess="false"
248            android:grantUriPermissions="true"
249            android:permission="android.permission.READ_SEARCH_INDEXABLES"
250            android:exported="true">
251            <intent-filter>
252                <action android:name="android.content.action.SEARCH_INDEXABLES_PROVIDER" />
253            </intent-filter>
254        </provider>
255
256        <provider android:name="com.android.packageinstaller.role.service.RoleSearchIndexablesProvider"
257                  android:authorities="com.android.permissioncontroller.role"
258                  android:exported="true"
259                  android:grantUriPermissions="true"
260                  android:permission="android.permission.READ_SEARCH_INDEXABLES">
261            <intent-filter>
262                <action android:name="android.content.action.SEARCH_INDEXABLES_PROVIDER" />
263            </intent-filter>
264        </provider>
265
266        <service android:name="com.android.packageinstaller.permission.service.PermissionControllerServiceImpl">
267            <intent-filter android:priority="1">
268                <action android:name="android.permission.PermissionControllerService"/>
269            </intent-filter>
270        </service>
271
272        <service android:name="com.android.packageinstaller.permission.service.RuntimePermissionPresenterServiceLegacyImpl"
273                 android:permission="android.permission.BIND_RUNTIME_PERMISSION_PRESENTER_SERVICE">
274            <intent-filter android:priority="1">
275                <action android:name="android.permissionpresenterservice.RuntimePermissionPresenterService"/>
276            </intent-filter>
277        </service>
278
279        <service android:name="com.android.packageinstaller.role.service.RoleControllerServiceImpl">
280            <intent-filter android:priority="1">
281                <action android:name="android.app.role.RoleControllerService"/>
282            </intent-filter>
283        </service>
284
285        <receiver android:name="com.android.packageinstaller.role.service.ClearUserDeniedReceiver">
286            <intent-filter>
287                <action android:name="android.intent.action.PACKAGE_DATA_CLEARED" />
288                <action android:name="android.intent.action.PACKAGE_FULLY_REMOVED"/>
289                <data android:scheme="package" />
290            </intent-filter>
291        </receiver>
292
293        <!-- Debug report authorization (bugreport and incident report) -->
294        <receiver android:name="com.android.packageinstaller.incident.ConfirmationReceiver"
295            android:exported="true">
296            <intent-filter>
297                <action android:name="android.intent.action.PENDING_INCIDENT_REPORTS_CHANGED" />
298            </intent-filter>
299        </receiver>
300
301        <activity android:name="com.android.packageinstaller.incident.ConfirmationActivity"
302                android:theme="@android:style/Theme.DeviceDefault.Light.Dialog.NoActionBar"
303                android:exported="false"
304                android:excludeFromRecents="true"
305                android:noHistory="true" />
306
307        <receiver android:name="com.android.packageinstaller.incident.ApprovalReceiver"
308            android:exported="false" />
309
310    </application>
311
312</manifest>
313