commit | a6e310a0a7b33cd1c088617eda8a020be9874d32 | [log] [tgz] |
---|---|---|
author | Mohammed Rashidy <[email protected]> | Fri May 19 10:22:33 2023 +0000 |
committer | Automerger Merge Worker <[email protected]> | Fri May 19 10:22:33 2023 +0000 |
tree | d4bbd4691fb5e344816b0cc18c118d84df9d791a | |
parent | 47d966e4ea4453d5099c35a33ba81b1253a38cd9 [diff] | |
parent | 0291036472fce5216c45b93c78687c66fbd07e4d [diff] |
Merge "Starting sandbox activity should not start a new sandbox process" into udc-dev am: 94a4ffa380 am: 0291036472 Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23262457 Change-Id: I892792ee6c41b39837b7792804ea4b0016b3da8b Signed-off-by: Automerger Merge Worker <[email protected]>
diff --git a/services/core/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java index fbe7e70..4342cb9 100644 --- a/services/core/java/com/android/server/am/ProcessList.java +++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -3182,6 +3182,10 @@ if (isSdkSandbox) { uid = sdkSandboxUid; } + if (Process.isSdkSandboxUid(uid) && (!isSdkSandbox || sdkSandboxClientAppPackage == null)) { + Slog.e(TAG, "Abort creating new sandbox process as required parameters are missing."); + return null; + } if (isolated) { if (isolatedUid == 0) { IsolatedUidRange uidRange = getOrCreateIsolatedUidRangeLocked(info, hostingRecord);
diff --git a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java index 0121513..0171c20 100644 --- a/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java +++ b/services/core/java/com/android/server/wm/ActivityTaskSupervisor.java
@@ -1074,6 +1074,12 @@ // Remove the process record so it won't be considered as alive. mService.mProcessNames.remove(wpc.mName, wpc.mUid); mService.mProcessMap.remove(wpc.getPid()); + } else if (r.intent.isSandboxActivity(mService.mContext)) { + Slog.e(TAG, "Abort sandbox activity launching as no sandbox process to host it."); + r.finishIfPossible("No sandbox process for the activity", false /* oomAdj */); + r.launchFailed = true; + r.detachFromProcess(); + return; } r.notifyUnknownVisibilityLaunchedForKeyguardTransition();