Revert "Revert "Target system_current for PermissionController."" am: 606100b784 am: 81e325fce2
Original change: https://android-review.googlesource.com/c/platform/packages/modules/Permission/+/1931244
Change-Id: Ic501961ef3c348d1034a397f4f369f864562c524
diff --git a/PermissionController/Android.bp b/PermissionController/Android.bp
index 9d5cbec..266e58c 100644
--- a/PermissionController/Android.bp
+++ b/PermissionController/Android.bp
@@ -71,6 +71,7 @@
android_app {
name: "PermissionController",
sdk_version: "system_current",
+ target_sdk_version: "system_current",
min_sdk_version: "30",
updatable: true,
privileged: true,
diff --git a/PermissionController/AndroidManifest.xml b/PermissionController/AndroidManifest.xml
index f0d4ebb..0b3a78a 100644
--- a/PermissionController/AndroidManifest.xml
+++ b/PermissionController/AndroidManifest.xml
@@ -51,8 +51,6 @@
<uses-permission android:name="android.permission.START_VIEW_PERMISSION_USAGE" />
<uses-permission android:name="android.permission.MANAGE_APP_HIBERNATION" />
- <uses-sdk android:minSdkVersion="29" android:targetSdkVersion="29" />
-
<application android:name="com.android.permissioncontroller.PermissionControllerApplication"
android:label="@string/app_name"
android:icon="@drawable/ic_permission_controller_app_icon"
@@ -64,13 +62,15 @@
android:directBootAware="true"
android:theme="@style/FilterTouches">
- <receiver android:name="com.android.permissioncontroller.permission.service.LocationAccessCheck$SetupPeriodicBackgroundLocationAccessCheck">
+ <receiver android:name="com.android.permissioncontroller.permission.service.LocationAccessCheck$SetupPeriodicBackgroundLocationAccessCheck"
+ android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
- <receiver android:name="com.android.permissioncontroller.hibernation.HibernationOnBootReceiver">
+ <receiver android:name="com.android.permissioncontroller.hibernation.HibernationOnBootReceiver"
+ android:exported="true">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
@@ -80,7 +80,8 @@
<receiver android:name="com.android.permissioncontroller.permission.service.LocationAccessCheck$NotificationClickHandler" />
- <receiver android:name="com.android.permissioncontroller.permission.service.LocationAccessCheck$PackageResetHandler">
+ <receiver android:name="com.android.permissioncontroller.permission.service.LocationAccessCheck$PackageResetHandler"
+ android:exported="true">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_FULLY_REMOVED"/>
<action android:name="android.intent.action.PACKAGE_DATA_CLEARED" />
@@ -101,6 +102,7 @@
<activity android:name="com.android.permissioncontroller.permission.ui.GrantPermissionsActivity"
android:configChanges="keyboardHidden|screenSize"
android:excludeFromRecents="true"
+ android:exported="true"
android:theme="@style/GrantPermissions.FilterTouches"
android:visibleToInstantApps="true"
android:inheritShowWhenLocked="true"
@@ -114,6 +116,7 @@
<activity android:name="com.android.permissioncontroller.permission.ui.ManagePermissionsActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_permissions"
+ android:exported="true"
android:theme="@style/Theme.PermissionController.Settings.FilterTouches"
android:permission="android.permission.GRANT_RUNTIME_PERMISSIONS">
<intent-filter android:priority="1">
@@ -130,6 +133,7 @@
<activity android:name="com.android.permissioncontroller.permission.ui.ManagePermissionsActivityTrampoline"
android:excludeFromRecents="true"
+ android:exported="true"
android:noHistory="true"
android:theme="@android:style/Theme.NoDisplay">
<intent-filter android:priority="1">
@@ -147,6 +151,7 @@
<activity android:name="com.android.permissioncontroller.permission.ui.ReviewPermissionsActivity"
android:excludeFromRecents="true"
+ android:exported="true"
android:theme="@style/ReviewPermissions.FilterTouches"
android:permission="android.permission.GRANT_RUNTIME_PERMISSIONS">
<intent-filter android:priority="1">
@@ -165,6 +170,7 @@
<activity android:name="com.android.permissioncontroller.permission.ui.ReviewOngoingUsageActivity"
android:excludeFromRecents="true"
+ android:exported="true"
android:theme="@style/PermissionDialog"
android:launchMode="singleInstance"
android:permission="android.permission.GRANT_RUNTIME_PERMISSIONS" >
@@ -176,6 +182,7 @@
<activity android:name="com.android.permissioncontroller.permission.ui.ReviewAccessibilityServicesActivity"
android:excludeFromRecents="true"
+ android:exported="true"
android:theme="@style/PermissionDialog.FilterTouches"
android:permission="android.permission.REVIEW_ACCESSIBILITY_SERVICES" >
<intent-filter android:priority="1">
@@ -186,6 +193,7 @@
<activity android:name="com.android.permissioncontroller.role.ui.RequestRoleActivity"
android:excludeFromRecents="true"
+ android:exported="true"
android:theme="@style/RequestRole.FilterTouches">
<intent-filter android:priority="1">
<action android:name="android.app.role.action.REQUEST_ROLE" />
@@ -203,6 +211,7 @@
<activity android:name="com.android.permissioncontroller.role.ui.DefaultAppListActivity"
android:label="@string/default_apps"
+ android:exported="true"
android:theme="@style/Theme.PermissionController.Settings.FilterTouches">
<intent-filter android:priority="2">
<action android:name="android.settings.MANAGE_DEFAULT_APPS_SETTINGS" />
@@ -211,6 +220,7 @@
</activity>
<activity android:name="com.android.permissioncontroller.role.ui.DefaultAppActivity"
+ android:exported="true"
android:permission="android.permission.MANAGE_ROLE_HOLDERS"
android:theme="@style/Theme.PermissionController.Settings.FilterTouches">
<intent-filter android:priority="1">
@@ -222,6 +232,7 @@
<activity android:name="com.android.permissioncontroller.role.ui.HomeSettingsActivity"
android:excludeFromRecents="true"
android:noHistory="true"
+ android:exported="true"
android:theme="@android:style/Theme.NoDisplay">
<intent-filter android:priority="2">
<action android:name="android.settings.HOME_SETTINGS" />
@@ -231,6 +242,7 @@
<activity android:name="com.android.permissioncontroller.role.ui.SpecialAppAccessListActivity"
android:label="@string/special_app_access"
+ android:exported="true"
android:permission="android.permission.MANAGE_ROLE_HOLDERS"
android:theme="@style/Theme.PermissionController.Settings.FilterTouches">
<intent-filter android:priority="1">
@@ -246,6 +258,7 @@
<activity android:name="com.android.permissioncontroller.role.ui.RoleSearchTrampolineActivity"
android:excludeFromRecents="true"
android:noHistory="true"
+ android:exported="true"
android:theme="@android:style/Theme.NoDisplay">
<intent-filter android:priority="1">
<action android:name="com.android.permissioncontroller.settingssearch.action.MANAGE_DEFAULT_APP" />
@@ -276,6 +289,7 @@
</provider>
<service android:name="com.android.permissioncontroller.permission.service.PermissionControllerServiceImpl"
+ android:exported="true"
android:visibleToInstantApps="true">
<intent-filter android:priority="1">
<action android:name="android.permission.PermissionControllerService"/>
@@ -283,19 +297,22 @@
</service>
<service android:name="com.android.permissioncontroller.permission.service.RuntimePermissionPresenterServiceLegacyImpl"
+ android:exported="true"
android:permission="android.permission.BIND_RUNTIME_PERMISSION_PRESENTER_SERVICE">
<intent-filter android:priority="1">
<action android:name="android.permissionpresenterservice.RuntimePermissionPresenterService"/>
</intent-filter>
</service>
- <service android:name="com.android.permissioncontroller.role.service.RoleControllerServiceImpl">
+ <service android:name="com.android.permissioncontroller.role.service.RoleControllerServiceImpl"
+ android:exported="true">
<intent-filter android:priority="1">
<action android:name="android.app.role.RoleControllerService"/>
</intent-filter>
</service>
- <receiver android:name="com.android.permissioncontroller.role.service.ClearUserDeniedReceiver">
+ <receiver android:name="com.android.permissioncontroller.role.service.ClearUserDeniedReceiver"
+ android:exported="true">
<intent-filter>
<action android:name="android.intent.action.PACKAGE_DATA_CLEARED" />
<action android:name="android.intent.action.PACKAGE_FULLY_REMOVED"/>
diff --git a/PermissionController/src/com/android/permissioncontroller/hibernation/HibernationPolicy.kt b/PermissionController/src/com/android/permissioncontroller/hibernation/HibernationPolicy.kt
index 10a58ab..6e0c12c 100644
--- a/PermissionController/src/com/android/permissioncontroller/hibernation/HibernationPolicy.kt
+++ b/PermissionController/src/com/android/permissioncontroller/hibernation/HibernationPolicy.kt
@@ -568,7 +568,8 @@
flags = Intent.FLAG_ACTIVITY_NEW_TASK
}
val pendingIntent = PendingIntent.getActivity(this, 0, clickIntent,
- PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_UPDATE_CURRENT)
+ PendingIntent.FLAG_ONE_SHOT or PendingIntent.FLAG_UPDATE_CURRENT or
+ PendingIntent.FLAG_IMMUTABLE)
var notifTitle: String
var notifContent: String
diff --git a/PermissionController/src/com/android/permissioncontroller/incident/PendingList.java b/PermissionController/src/com/android/permissioncontroller/incident/PendingList.java
index f4a7752..d732732 100644
--- a/PermissionController/src/com/android/permissioncontroller/incident/PendingList.java
+++ b/PermissionController/src/com/android/permissioncontroller/incident/PendingList.java
@@ -244,13 +244,13 @@
// Intent for the confirmation dialog.
final PendingIntent dialog = PendingIntent.getActivity(mContext, 0,
- newDialogIntent(rec), 0);
+ newDialogIntent(rec), PendingIntent.FLAG_IMMUTABLE);
// Intent for the approval and denial.
final PendingIntent deny = PendingIntent.getBroadcast(mContext, 0,
new Intent(ApprovalReceiver.ACTION_DENY, rec.report.getUri(),
mContext, ApprovalReceiver.class),
- 0);
+ PendingIntent.FLAG_IMMUTABLE);
// Construct the notification
final Notification notification = new Notification.Builder(mContext)
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/service/LocationAccessCheck.java b/PermissionController/src/com/android/permissioncontroller/permission/service/LocationAccessCheck.java
index 76e3f33..d1d6c03 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/service/LocationAccessCheck.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/service/LocationAccessCheck.java
@@ -20,6 +20,7 @@
import static android.Manifest.permission_group.LOCATION;
import static android.app.AppOpsManager.OPSTR_FINE_LOCATION;
import static android.app.NotificationManager.IMPORTANCE_LOW;
+import static android.app.PendingIntent.FLAG_IMMUTABLE;
import static android.app.PendingIntent.FLAG_ONE_SHOT;
import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
import static android.app.PendingIntent.getBroadcast;
@@ -603,9 +604,9 @@
.setColor(mContext.getColor(android.R.color.system_notification_accent_color))
.setAutoCancel(true)
.setDeleteIntent(getBroadcast(mContext, 0, deleteIntent,
- FLAG_ONE_SHOT | FLAG_UPDATE_CURRENT))
+ FLAG_ONE_SHOT | FLAG_UPDATE_CURRENT | FLAG_IMMUTABLE))
.setContentIntent(getBroadcast(mContext, 0, clickIntent,
- FLAG_ONE_SHOT | FLAG_UPDATE_CURRENT));
+ FLAG_ONE_SHOT | FLAG_UPDATE_CURRENT | FLAG_IMMUTABLE));
if (appName != null) {
Bundle extras = new Bundle();
diff --git a/PermissionController/src/com/android/permissioncontroller/permission/ui/AutoGrantPermissionsNotifier.java b/PermissionController/src/com/android/permissioncontroller/permission/ui/AutoGrantPermissionsNotifier.java
index a006e4b..8775d39 100644
--- a/PermissionController/src/com/android/permissioncontroller/permission/ui/AutoGrantPermissionsNotifier.java
+++ b/PermissionController/src/com/android/permissioncontroller/permission/ui/AutoGrantPermissionsNotifier.java
@@ -16,6 +16,7 @@
package com.android.permissioncontroller.permission.ui;
+import static android.app.PendingIntent.FLAG_IMMUTABLE;
import static android.app.PendingIntent.FLAG_UPDATE_CURRENT;
import static android.app.PendingIntent.getActivity;
import static android.content.Intent.ACTION_MANAGE_APP_PERMISSION;
@@ -166,7 +167,7 @@
.setLargeIcon(pkgIconBmp)
.setColor(mContext.getColor(android.R.color.system_notification_accent_color))
.setContentIntent(getActivity(mContext, packageBasedRequestCode,
- manageAppPermission, FLAG_UPDATE_CURRENT));
+ manageAppPermission, FLAG_UPDATE_CURRENT | FLAG_IMMUTABLE));
// Add the Settings app name since we masquerade it.
CharSequence appName = getSettingsAppName();