summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Achim Thesmann <achim@google.com> 2024-01-18 20:45:47 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-01-18 20:45:47 +0000
commit0132c9a159c075a43141d350087402b5c5ceb199 (patch)
tree352477c5fe47563b1ecc02d868c1aebedfecc875
parent2aafdfb55b7cacd4aa066bb0075970c31f1f8bf4 (diff)
parent5de953a91afa44c89907827825d3f0e0d5242d86 (diff)
Merge "Feature Flag for restricting PendingIntents by same UID" into main
-rw-r--r--core/java/android/window/flags/responsible_apis.aconfig7
-rw-r--r--services/core/java/com/android/server/wm/BackgroundActivityStartController.java3
2 files changed, 10 insertions, 0 deletions
diff --git a/core/java/android/window/flags/responsible_apis.aconfig b/core/java/android/window/flags/responsible_apis.aconfig
index ad0e9a487c53..f67eefa2281f 100644
--- a/core/java/android/window/flags/responsible_apis.aconfig
+++ b/core/java/android/window/flags/responsible_apis.aconfig
@@ -8,6 +8,13 @@ flag {
}
flag {
+ name: "bal_require_opt_in_same_uid"
+ namespace: "responsible_apis"
+ description: "Require the PendingIntent creator/sender to opt in if it is the same UID"
+ bug: "296478951"
+}
+
+flag {
name: "bal_dont_bring_existing_background_task_stack_to_fg"
namespace: "responsible_apis"
description: "When starting a PendingIntent with ONLY creator privileges, don't bring the existing task stack to foreground"
diff --git a/services/core/java/com/android/server/wm/BackgroundActivityStartController.java b/services/core/java/com/android/server/wm/BackgroundActivityStartController.java
index 05241d1ad0b7..0f36d8eafbe4 100644
--- a/services/core/java/com/android/server/wm/BackgroundActivityStartController.java
+++ b/services/core/java/com/android/server/wm/BackgroundActivityStartController.java
@@ -35,6 +35,7 @@ import static com.android.server.wm.ActivityTaskManagerService.APP_SWITCH_ALLOW;
import static com.android.server.wm.ActivityTaskManagerService.APP_SWITCH_FG_ONLY;
import static com.android.server.wm.ActivityTaskSupervisor.getApplicationLabel;
import static com.android.window.flags.Flags.balRequireOptInByPendingIntentCreator;
+import static com.android.window.flags.Flags.balRequireOptInSameUid;
import static com.android.window.flags.Flags.balShowToasts;
import static com.android.window.flags.Flags.balShowToastsBlocked;
import static com.android.server.wm.PendingRemoteAnimationRegistry.TIMEOUT_MS;
@@ -277,6 +278,8 @@ public class BackgroundActivityStartController {
mAutoOptInReason = "notPendingIntent";
} else if (balRequireOptInByPendingIntentCreator() && mIsCallForResult) {
mAutoOptInReason = "callForResult";
+ } else if (callingUid == realCallingUid && !balRequireOptInSameUid()) {
+ mAutoOptInReason = "sameUid";
} else {
mAutoOptInReason = null;
}