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

Commit 15db04ec authored by Lee Chou's avatar Lee Chou
Browse files

Revert "Revert "Remove exception from OverlayConfig zygote method""

This reverts commit 920105c3.

Reason for revert: The real reason for the robolectric freeze has been found

Bug: 150011638#comment55
Bug: 150763929
Change-Id: Ib59acf362e87fa907902e19bac6e3b16cafa77d4
parent 920105c3
Loading
Loading
Loading
Loading
+5 −18
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ import android.annotation.Nullable;
import android.content.pm.PackagePartitions;
import android.content.pm.parsing.ParsingPackageRead;
import android.os.Build;
import android.os.Process;
import android.os.Trace;
import android.util.ArrayMap;
import android.util.Log;
@@ -186,13 +185,6 @@ public class OverlayConfig {
     */
    @NonNull
    public static OverlayConfig getZygoteInstance() {
        if (Process.myUid() != Process.ROOT_UID) {
            // Scan the overlays in the zygote process to generate configuration settings for
            // overlays on the system image. Do not cache this instance so OverlayConfig will not
            // be present in applications by default.
            throw new IllegalStateException("Can only be invoked in the root process");
        }

        Trace.traceBegin(Trace.TRACE_TAG_RRO, "OverlayConfig#getZygoteInstance");
        try {
            return new OverlayConfig(null /* rootDirectory */, OverlayScanner::new,
@@ -209,13 +201,12 @@ public class OverlayConfig {
     */
    @NonNull
    public static OverlayConfig initializeSystemInstance(PackageProvider packageProvider) {
        if (Process.myUid() != Process.SYSTEM_UID) {
            throw new IllegalStateException("Can only be invoked in the system process");
        }

        Trace.traceBegin(Trace.TRACE_TAG_RRO, "OverlayConfig#initializeSystemInstance");
        try {
            sInstance = new OverlayConfig(null, null, packageProvider);
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_RRO);
        }
        return sInstance;
    }

@@ -379,10 +370,6 @@ public class OverlayConfig {
     */
    @NonNull
    public String[] createImmutableFrameworkIdmapsInZygote() {
        if (Process.myUid() != Process.ROOT_UID) {
            throw new IllegalStateException("This method can only be called from the root process");
        }

        final String targetPath = "/system/framework/framework-res.apk";
        final ArrayList<String> idmapPaths = new ArrayList<>();
        final ArrayList<IdmapInvocation> idmapInvocations =