diff options
| author | 2024-09-27 03:00:32 +0000 | |
|---|---|---|
| committer | 2024-09-27 03:00:32 +0000 | |
| commit | 35b84b238b33e37a4a0edd68512ce35e9fd1abf1 (patch) | |
| tree | 9a40fcc3cdb0fba64f24c4415951a9eb612aa559 | |
| parent | fbc5cab4380a1c3156ee6a6b956119cf51eeacfa (diff) | |
| parent | e925023873ce9d723484263ed51f019f22daceca (diff) | |
Merge "Reintroduce grace period for ASM" into main
| -rw-r--r-- | core/java/android/security/responsible_apis_flags.aconfig | 11 | ||||
| -rw-r--r-- | services/core/java/com/android/server/wm/BackgroundActivityStartController.java | 15 |
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); + } } } } |