Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 61b8f80e authored by Sandro Montanari's avatar Sandro Montanari
Browse files

Flag getSdkSandboxApplicationInfoForInstrumentation

The API is not present in the mainline prebuilts on U.
Because of the missing API, we are getting runtime failures on next
targets.

Bug: 315018061
Test: m & flashall
Change-Id: I3cbfb164ab88ba0285434e9b82d7994a91d3d019
parent 8bbff97a
Loading
Loading
Loading
Loading
+18 −5
Original line number Diff line number Diff line
@@ -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;
@@ -16141,10 +16142,22 @@ public class ActivityManagerService extends IActivityManager.Stub
        }
        final ApplicationInfo sdkSandboxInfo;
        final String processName;
        try {
            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");
@@ -16153,7 +16166,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;
@@ -16196,7 +16209,7 @@ public class ActivityManagerService extends IActivityManager.Stub
                ProcessRecord app = addAppLocked(
                        sdkSandboxInfo,
                        sdkSandboxInfo.processName,
                        processName,
                        /* isolated= */ false,
                        /* isSdkSandbox= */ true,
                        sdkSandboxInfo.uid,