summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Hao Ke <haok@google.com> 2024-09-27 03:00:32 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2024-09-27 03:00:32 +0000
commit35b84b238b33e37a4a0edd68512ce35e9fd1abf1 (patch)
tree9a40fcc3cdb0fba64f24c4415951a9eb612aa559
parentfbc5cab4380a1c3156ee6a6b956119cf51eeacfa (diff)
parente925023873ce9d723484263ed51f019f22daceca (diff)
Merge "Reintroduce grace period for ASM" into main
-rw-r--r--core/java/android/security/responsible_apis_flags.aconfig11
-rw-r--r--services/core/java/com/android/server/wm/BackgroundActivityStartController.java15
2 files changed, 22 insertions, 4 deletions
diff --git a/core/java/android/security/responsible_apis_flags.aconfig b/core/java/android/security/responsible_apis_flags.aconfig
index 45e9def2c15f..5457bbee8ad3 100644
--- a/core/java/android/security/responsible_apis_flags.aconfig
+++ b/core/java/android/security/responsible_apis_flags.aconfig
@@ -24,6 +24,17 @@ flag {
}
flag {
+ name: "asm_reintroduce_grace_period"
+ namespace: "responsible_apis"
+ description: "Allow launches within the grace period for ASM apps"
+ bug: "367702727"
+ metadata {
+ purpose: PURPOSE_BUGFIX
+ }
+}
+
+
+flag {
name: "content_uri_permission_apis"
is_exported: true
namespace: "responsible_apis"
diff --git a/services/core/java/com/android/server/wm/BackgroundActivityStartController.java b/services/core/java/com/android/server/wm/BackgroundActivityStartController.java
index 2259b5a5b08c..515f148ac2ff 100644
--- a/services/core/java/com/android/server/wm/BackgroundActivityStartController.java
+++ b/services/core/java/com/android/server/wm/BackgroundActivityStartController.java
@@ -1120,7 +1120,9 @@ public class BackgroundActivityStartController {
@Nullable Task targetTask, int launchFlags, int balCode, int callingUid,
int realCallingUid, TaskDisplayArea preferredTaskDisplayArea) {
// BAL Exception allowed in all cases
- if (balCode == BAL_ALLOW_ALLOWLISTED_UID) {
+ if (balCode == BAL_ALLOW_ALLOWLISTED_UID
+ || (android.security.Flags.asmReintroduceGracePeriod()
+ && balCode == BAL_ALLOW_GRACE_PERIOD)) {
return true;
}
@@ -1173,10 +1175,15 @@ public class BackgroundActivityStartController {
ArrayList<Task> visibleTasks = displayArea.getVisibleTasks();
for (int i = 0; i < visibleTasks.size(); i++) {
Task task = visibleTasks.get(i);
- if (visibleTasks.size() == 1 && task.isActivityTypeHomeOrRecents()) {
- bas.optedIn(task.getTopMostActivity());
- } else {
+ if (android.security.Flags.asmReintroduceGracePeriod()) {
bas = checkTopActivityForAsm(task, callingUid, /*sourceRecord*/null, bas);
+ } else {
+ if (visibleTasks.size() == 1 && task.isActivityTypeHomeOrRecents()) {
+ bas.optedIn(task.getTopMostActivity());
+ } else {
+ bas = checkTopActivityForAsm(
+ task, callingUid, /*sourceRecord*/null, bas);
+ }
}
}
}