summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;
}