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="319999900" 8 android:versionName="31 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.REQUEST_DELETE_PACKAGES" /> 28 <uses-permission android:name="android.permission.CHANGE_COMPONENT_ENABLED_STATE" /> 29 <uses-permission android:name="android.permission.MANAGE_APP_OPS_RESTRICTIONS" /> 30 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 31 <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS" /> 32 <uses-permission android:name="android.permission.MANAGE_ROLE_HOLDERS" /> 33 <uses-permission android:name="android.permission.OBSERVE_ROLE_HOLDERS" /> 34 <uses-permission android:name="android.permission.SET_PREFERRED_APPLICATIONS" /> 35 <uses-permission android:name="android.permission.ACCESS_SHARED_LIBRARIES" /> 36 <uses-permission android:name="com.android.permissioncontroller.permission.MANAGE_ROLES_FROM_CONTROLLER" /> 37 <uses-permission android:name="android.permission.ACCESS_INSTANT_APPS" /> 38 <uses-permission android:name="android.permission.REQUEST_INCIDENT_REPORT_APPROVAL" /> 39 <uses-permission android:name="android.permission.APPROVE_INCIDENT_REPORTS" /> 40 <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" /> 41 <uses-permission android:name="android.permission.OPEN_ACCESSIBILITY_DETAILS_SETTINGS" /> 42 <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" /> 43 <uses-permission android:name="android.permission.SUBSTITUTE_NOTIFICATION_APP_NAME" /> 44 <uses-permission android:name="android.permission.MANAGE_ONE_TIME_PERMISSION_SESSIONS" /> 45 <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" /> 46 <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" /> 47 <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 48 <uses-permission android:name="android.permission.MODIFY_AUDIO_ROUTING" /> 49 <!-- TODO(b/170896938): make this privileged(signature may only work on pixel) --> 50 <uses-permission android:name="android.permission.MANAGE_NOTIFICATION_LISTENERS" /> 51 <uses-permission android:name="android.permission.START_VIEW_PERMISSION_USAGE" /> 52 <uses-permission android:name="android.permission.MANAGE_APP_HIBERNATION" /> 53 54 <application android:name="com.android.permissioncontroller.PermissionControllerApplication" 55 android:label="@string/app_name" 56 android:icon="@drawable/ic_permission_controller_app_icon" 57 android:allowBackup="false" 58 android:allowClearUserData="false" 59 android:supportsRtl="true" 60 android:defaultToDeviceProtectedStorage="true" 61 android:forceQueryable="true" 62 android:directBootAware="true" 63 android:theme="@style/FilterTouches"> 64 65 <provider 66 android:name="androidx.lifecycle.ProcessLifecycleOwnerInitializer" 67 tools:replace="android:authorities" 68 android:authorities="${applicationId}.lifecycle-process" 69 android:exported="false" 70 android:multiprocess="true" /> 71 72 <receiver android:name="com.android.permissioncontroller.permission.service.LocationAccessCheck$SetupPeriodicBackgroundLocationAccessCheck" 73 android:exported="true"> 74 <intent-filter> 75 <action android:name="android.intent.action.BOOT_COMPLETED" /> 76 </intent-filter> 77 </receiver> 78 79 <receiver android:name="com.android.permissioncontroller.hibernation.HibernationOnBootReceiver" 80 android:exported="true"> 81 <intent-filter> 82 <action android:name="android.intent.action.BOOT_COMPLETED" /> 83 </intent-filter> 84 </receiver> 85 86 <receiver android:name="com.android.permissioncontroller.permission.service.LocationAccessCheck$NotificationDeleteHandler" /> 87 88 <receiver android:name="com.android.permissioncontroller.permission.service.LocationAccessCheck$NotificationClickHandler" /> 89 90 <receiver android:name="com.android.permissioncontroller.permission.service.LocationAccessCheck$PackageResetHandler" 91 android:exported="true"> 92 <intent-filter> 93 <action android:name="android.intent.action.PACKAGE_FULLY_REMOVED"/> 94 <action android:name="android.intent.action.PACKAGE_DATA_CLEARED" /> 95 <data android:scheme="package" /> 96 </intent-filter> 97 </receiver> 98 99 <service android:name="com.android.permissioncontroller.permission.service.LocationAccessCheck$LocationAccessCheckJobService" 100 android:permission="android.permission.BIND_JOB_SERVICE" /> 101 102 <service android:name="com.android.permissioncontroller.hibernation.HibernationJobService" 103 android:permission="android.permission.BIND_JOB_SERVICE" /> 104 105 <service android:name="com.android.permissioncontroller.permission.service.AutoRevokeReGrantService" 106 android:permission="android.permission.BIND_JOB_SERVICE" /> 107 108 109 <activity android:name="com.android.permissioncontroller.permission.ui.GrantPermissionsActivity" 110 android:configChanges="keyboardHidden|screenSize" 111 android:excludeFromRecents="true" 112 android:exported="true" 113 android:theme="@style/GrantPermissions.FilterTouches" 114 android:visibleToInstantApps="true" 115 android:inheritShowWhenLocked="true" 116 android:hardwareAccelerated="false"> 117 <intent-filter android:priority="1"> 118 <action android:name="android.content.pm.action.REQUEST_PERMISSIONS" /> 119 <category android:name="android.intent.category.DEFAULT" /> 120 </intent-filter> 121 </activity> 122 123 <activity android:name="com.android.permissioncontroller.permission.ui.ManagePermissionsActivity" 124 android:configChanges="orientation|keyboardHidden|screenSize" 125 android:label="@string/app_permissions" 126 android:exported="true" 127 android:theme="@style/Theme.PermissionController.Settings.FilterTouches" 128 android:permission="android.permission.GRANT_RUNTIME_PERMISSIONS"> 129 <intent-filter android:priority="1"> 130 <action android:name="android.intent.action.MANAGE_APP_PERMISSIONS" /> 131 <action android:name="android.intent.action.MANAGE_APP_PERMISSION" /> 132 <action android:name="android.intent.action.MANAGE_PERMISSION_APPS" /> 133 <action android:name="android.intent.action.MANAGE_PERMISSIONS" /> 134 <action android:name="android.intent.action.REVIEW_PERMISSION_USAGE" /> 135 <action android:name="android.intent.action.REVIEW_PERMISSION_HISTORY" /> 136 <action android:name="android.intent.action.MANAGE_UNUSED_APPS" /> 137 <category android:name="android.intent.category.DEFAULT" /> 138 </intent-filter> 139 </activity> 140 141 <activity android:name="com.android.permissioncontroller.permission.ui.ManagePermissionsActivityTrampoline" 142 android:excludeFromRecents="true" 143 android:exported="true" 144 android:noHistory="true" 145 android:theme="@android:style/Theme.NoDisplay"> 146 <intent-filter android:priority="1"> 147 <action android:name="com.android.permissioncontroller.settingssearch.action.MANAGE_PERMISSION_APPS" /> 148 <action android:name="com.android.permissioncontroller.settingssearch.action.REVIEW_PERMISSION_USAGE" /> 149 <category android:name="android.intent.category.DEFAULT" /> 150 </intent-filter> 151 </activity> 152 153 <activity android:name="com.android.permissioncontroller.permission.ui.legacy.AppPermissionActivity" 154 android:configChanges="orientation|keyboardHidden|screenSize" 155 android:theme="@style/Theme.PermissionController.Settings.FilterTouches" 156 android:permission="android.permission.GRANT_RUNTIME_PERMISSIONS"> 157 </activity> 158 159 <activity android:name="com.android.permissioncontroller.permission.ui.ReviewPermissionsActivity" 160 android:excludeFromRecents="true" 161 android:exported="true" 162 android:theme="@style/ReviewPermissions.FilterTouches" 163 android:permission="android.permission.GRANT_RUNTIME_PERMISSIONS"> 164 <intent-filter android:priority="1"> 165 <action android:name="android.intent.action.REVIEW_PERMISSIONS" /> 166 <category android:name="android.intent.category.DEFAULT" /> 167 </intent-filter> 168 </activity> 169 170 <activity android:name="com.android.permissioncontroller.permission.ui.OverlayWarningDialog" 171 android:excludeFromRecents="true" 172 android:theme="@style/Theme.AppCompat.DayNight.Dialog.Alert" /> 173 174 <activity android:name="com.android.permissioncontroller.permission.ui.LocationProviderInterceptDialog" 175 android:excludeFromRecents="true" 176 android:theme="@style/PermissionDialog.FilterTouches" /> 177 178 <activity android:name="com.android.permissioncontroller.permission.ui.ReviewOngoingUsageActivity" 179 android:excludeFromRecents="true" 180 android:exported="true" 181 android:theme="@style/PermissionDialog" 182 android:launchMode="singleInstance" 183 android:permission="android.permission.GRANT_RUNTIME_PERMISSIONS" > 184 <intent-filter android:priority="1"> 185 <action android:name="android.intent.action.REVIEW_ONGOING_PERMISSION_USAGE" /> 186 <category android:name="android.intent.category.DEFAULT" /> 187 </intent-filter> 188 </activity> 189 190 <activity android:name="com.android.permissioncontroller.permission.ui.ReviewAccessibilityServicesActivity" 191 android:excludeFromRecents="true" 192 android:exported="true" 193 android:theme="@style/PermissionDialog.FilterTouches" 194 android:permission="android.permission.REVIEW_ACCESSIBILITY_SERVICES" > 195 <intent-filter android:priority="1"> 196 <action android:name="android.intent.action.REVIEW_ACCESSIBILITY_SERVICES" /> 197 <category android:name="android.intent.category.DEFAULT" /> 198 </intent-filter> 199 </activity> 200 201 <activity android:name="com.android.permissioncontroller.role.ui.RequestRoleActivity" 202 android:excludeFromRecents="true" 203 android:exported="true" 204 android:theme="@style/RequestRole.FilterTouches"> 205 <intent-filter android:priority="1"> 206 <action android:name="android.app.role.action.REQUEST_ROLE" /> 207 <category android:name="android.intent.category.DEFAULT" /> 208 </intent-filter> 209 <intent-filter android:priority="2"> 210 <action android:name="android.provider.Telephony.ACTION_CHANGE_DEFAULT" /> 211 <category android:name="android.intent.category.DEFAULT" /> 212 </intent-filter> 213 <intent-filter android:priority="1001"> 214 <action android:name="android.telecom.action.CHANGE_DEFAULT_DIALER" /> 215 <category android:name="android.intent.category.DEFAULT" /> 216 </intent-filter> 217 </activity> 218 219 <activity android:name="com.android.permissioncontroller.role.ui.DefaultAppListActivity" 220 android:label="@string/default_apps" 221 android:exported="true" 222 android:theme="@style/Theme.PermissionController.Settings.FilterTouches"> 223 <intent-filter android:priority="2"> 224 <action android:name="android.settings.MANAGE_DEFAULT_APPS_SETTINGS" /> 225 <category android:name="android.intent.category.DEFAULT" /> 226 </intent-filter> 227 </activity> 228 229 <activity android:name="com.android.permissioncontroller.role.ui.DefaultAppActivity" 230 android:exported="true" 231 android:permission="android.permission.MANAGE_ROLE_HOLDERS" 232 android:theme="@style/Theme.PermissionController.Settings.FilterTouches"> 233 <intent-filter android:priority="1"> 234 <action android:name="android.intent.action.MANAGE_DEFAULT_APP" /> 235 <category android:name="android.intent.category.DEFAULT" /> 236 </intent-filter> 237 </activity> 238 239 <activity android:name="com.android.permissioncontroller.role.ui.HomeSettingsActivity" 240 android:excludeFromRecents="true" 241 android:noHistory="true" 242 android:exported="true" 243 android:theme="@android:style/Theme.NoDisplay"> 244 <intent-filter android:priority="2"> 245 <action android:name="android.settings.HOME_SETTINGS" /> 246 <category android:name="android.intent.category.DEFAULT" /> 247 </intent-filter> 248 </activity> 249 250 <activity android:name="com.android.permissioncontroller.role.ui.SpecialAppAccessListActivity" 251 android:label="@string/special_app_access" 252 android:exported="true" 253 android:permission="android.permission.MANAGE_ROLE_HOLDERS" 254 android:theme="@style/Theme.PermissionController.Settings.FilterTouches"> 255 <intent-filter android:priority="1"> 256 <action android:name="android.intent.action.MANAGE_SPECIAL_APP_ACCESSES" /> 257 <category android:name="android.intent.category.DEFAULT" /> 258 </intent-filter> 259 </activity> 260 261 <!-- TODO: Override other Settings intents when we've done migrating them. --> 262 <activity android:name="com.android.permissioncontroller.role.ui.SpecialAppAccessActivity" 263 android:theme="@style/Theme.PermissionController.Settings.FilterTouches" /> 264 265 <activity android:name="com.android.permissioncontroller.role.ui.RoleSearchTrampolineActivity" 266 android:excludeFromRecents="true" 267 android:noHistory="true" 268 android:exported="true" 269 android:theme="@android:style/Theme.NoDisplay"> 270 <intent-filter android:priority="1"> 271 <action android:name="com.android.permissioncontroller.settingssearch.action.MANAGE_DEFAULT_APP" /> 272 <action android:name="com.android.permissioncontroller.settingssearch.action.MANAGE_SPECIAL_APP_ACCESS" /> 273 <category android:name="android.intent.category.DEFAULT" /> 274 </intent-filter> 275 </activity> 276 277 <provider android:name="com.android.permissioncontroller.permission.service.PermissionSearchIndexablesProvider" 278 android:authorities="com.android.permissioncontroller" 279 android:multiprocess="false" 280 android:grantUriPermissions="true" 281 android:permission="android.permission.READ_SEARCH_INDEXABLES" 282 android:exported="true"> 283 <intent-filter> 284 <action android:name="android.content.action.SEARCH_INDEXABLES_PROVIDER" /> 285 </intent-filter> 286 </provider> 287 288 <provider android:name="com.android.permissioncontroller.role.service.RoleSearchIndexablesProvider" 289 android:authorities="com.android.permissioncontroller.role" 290 android:exported="true" 291 android:grantUriPermissions="true" 292 android:permission="android.permission.READ_SEARCH_INDEXABLES"> 293 <intent-filter> 294 <action android:name="android.content.action.SEARCH_INDEXABLES_PROVIDER" /> 295 </intent-filter> 296 </provider> 297 298 <service android:name="com.android.permissioncontroller.permission.service.PermissionControllerServiceImpl" 299 android:exported="true" 300 android:visibleToInstantApps="true"> 301 <intent-filter android:priority="1"> 302 <action android:name="android.permission.PermissionControllerService"/> 303 </intent-filter> 304 </service> 305 306 <service android:name="com.android.permissioncontroller.permission.service.RuntimePermissionPresenterServiceLegacyImpl" 307 android:exported="true" 308 android:permission="android.permission.BIND_RUNTIME_PERMISSION_PRESENTER_SERVICE"> 309 <intent-filter android:priority="1"> 310 <action android:name="android.permissionpresenterservice.RuntimePermissionPresenterService"/> 311 </intent-filter> 312 </service> 313 314 <service android:name="com.android.permissioncontroller.role.service.RoleControllerServiceImpl" 315 android:exported="true"> 316 <intent-filter android:priority="1"> 317 <action android:name="android.app.role.RoleControllerService"/> 318 </intent-filter> 319 </service> 320 321 <receiver android:name="com.android.permissioncontroller.role.service.ClearUserDeniedReceiver" 322 android:exported="true"> 323 <intent-filter> 324 <action android:name="android.intent.action.PACKAGE_DATA_CLEARED" /> 325 <action android:name="android.intent.action.PACKAGE_FULLY_REMOVED"/> 326 <data android:scheme="package" /> 327 </intent-filter> 328 </receiver> 329 330 <!-- Debug report authorization (bugreport and incident report) --> 331 <receiver android:name="com.android.permissioncontroller.incident.ConfirmationReceiver" 332 android:exported="true"> 333 <intent-filter> 334 <action android:name="android.intent.action.PENDING_INCIDENT_REPORTS_CHANGED" /> 335 </intent-filter> 336 </receiver> 337 338 <activity android:name="com.android.permissioncontroller.incident.ConfirmationActivity" 339 android:theme="@style/Theme.DeviceDefault.Dialog.Alert.DayNight" 340 android:exported="false" 341 android:excludeFromRecents="true" 342 android:noHistory="true" /> 343 344 <receiver android:name="com.android.permissioncontroller.incident.ApprovalReceiver" 345 android:exported="false" /> 346 347 <receiver android:name="com.android.permissioncontroller.permission.service.ExemptRestrictedPermission" 348 android:exported="false" /> 349 </application> 350 351</manifest> 352