diff options
author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-01-29 23:51:37 +0000 |
---|---|---|
committer | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2024-01-29 23:51:37 +0000 |
commit | 5f41dff0eb36ddf6e0c0a7e05b50ca261f11a542 (patch) | |
tree | 274ca19b5ce35fd6245880f2a1d4c97fa24e24df | |
parent | 3ac75b08b95a29881b234cb9fa1b1e5fdbf8da99 (diff) | |
parent | 36e325522dc0524cf7ad9079d50fc2732abb75bb (diff) | |
download | base-5f41dff0eb36ddf6e0c0a7e05b50ca261f11a542.tar.gz |
Merge cherrypicks of ['googleplex-android-review.googlesource.com/26012856'] into 24Q1-release.
Change-Id: Ieda3ad565d97dfbd2da0438907b280e60cc48162
-rw-r--r-- | services/core/java/com/android/server/am/ActivityManagerService.java | 23 |
1 files changed, 18 insertions, 5 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 2ee39c577977..89b53aab1539 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -135,6 +135,7 @@ import static android.view.Display.INVALID_DISPLAY; import static com.android.internal.protolog.ProtoLogGroup.WM_DEBUG_CONFIGURATION; import static com.android.internal.util.FrameworkStatsLog.UNSAFE_INTENT_EVENT_REPORTED__EVENT_TYPE__INTERNAL_NON_EXPORTED_COMPONENT_MATCH; import static com.android.internal.util.FrameworkStatsLog.UNSAFE_INTENT_EVENT_REPORTED__EVENT_TYPE__NEW_MUTABLE_IMPLICIT_PENDING_INTENT_RETRIEVED; +import static com.android.sdksandbox.flags.Flags.sdkSandboxInstrumentationInfo; import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_ALL; import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_ALLOWLISTS; import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_BACKGROUND_CHECK; @@ -16099,10 +16100,22 @@ public class ActivityManagerService extends IActivityManager.Stub } final ApplicationInfo sdkSandboxInfo; + final String processName; try { - sdkSandboxInfo = - sandboxManagerLocal.getSdkSandboxApplicationInfoForInstrumentation( - sdkSandboxClientAppInfo, isSdkInSandbox); + if (sdkSandboxInstrumentationInfo()) { + sdkSandboxInfo = + sandboxManagerLocal.getSdkSandboxApplicationInfoForInstrumentation( + sdkSandboxClientAppInfo, isSdkInSandbox); + processName = sdkSandboxInfo.processName; + } else { + final PackageManager pm = mContext.getPackageManager(); + sdkSandboxInfo = + pm.getApplicationInfoAsUser(pm.getSdkSandboxPackageName(), 0, userId); + processName = + sandboxManagerLocal.getSdkSandboxProcessNameForInstrumentation( + sdkSandboxClientAppInfo); + sdkSandboxInfo.uid = Process.toSdkSandboxUid(sdkSandboxClientAppInfo.uid); + } } catch (NameNotFoundException e) { reportStartInstrumentationFailureLocked( watcher, className, "Can't find SdkSandbox package"); @@ -16111,7 +16124,7 @@ public class ActivityManagerService extends IActivityManager.Stub ActiveInstrumentation activeInstr = new ActiveInstrumentation(this); activeInstr.mClass = className; - activeInstr.mTargetProcesses = new String[]{sdkSandboxInfo.processName}; + activeInstr.mTargetProcesses = new String[]{processName}; activeInstr.mTargetInfo = sdkSandboxInfo; activeInstr.mIsSdkInSandbox = isSdkInSandbox; activeInstr.mProfileFile = profileFile; @@ -16154,7 +16167,7 @@ public class ActivityManagerService extends IActivityManager.Stub ProcessRecord app = addAppLocked( sdkSandboxInfo, - sdkSandboxInfo.processName, + processName, /* isolated= */ false, /* isSdkSandbox= */ true, sdkSandboxInfo.uid, |