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

Commit 6f0c1bc1 authored by Lee Chou's avatar Lee Chou Committed by Android (Google) Code Review
Browse files

Merge "Revert "Revert "Remove exception from OverlayConfig zygote method""" into rvc-dev

parents 7b35bb38 15db04ec
Loading
Loading
Loading
Loading
+5 −18
Original line number Original line Diff line number Diff line
@@ -21,7 +21,6 @@ import android.annotation.Nullable;
import android.content.pm.PackagePartitions;
import android.content.pm.PackagePartitions;
import android.content.pm.parsing.ParsingPackageRead;
import android.content.pm.parsing.ParsingPackageRead;
import android.os.Build;
import android.os.Build;
import android.os.Process;
import android.os.Trace;
import android.os.Trace;
import android.util.ArrayMap;
import android.util.ArrayMap;
import android.util.Log;
import android.util.Log;
@@ -186,13 +185,6 @@ public class OverlayConfig {
     */
     */
    @NonNull
    @NonNull
    public static OverlayConfig getZygoteInstance() {
    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");
        Trace.traceBegin(Trace.TRACE_TAG_RRO, "OverlayConfig#getZygoteInstance");
        try {
        try {
            return new OverlayConfig(null /* rootDirectory */, OverlayScanner::new,
            return new OverlayConfig(null /* rootDirectory */, OverlayScanner::new,
@@ -209,13 +201,12 @@ public class OverlayConfig {
     */
     */
    @NonNull
    @NonNull
    public static OverlayConfig initializeSystemInstance(PackageProvider packageProvider) {
    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");
        Trace.traceBegin(Trace.TRACE_TAG_RRO, "OverlayConfig#initializeSystemInstance");
        try {
            sInstance = new OverlayConfig(null, null, packageProvider);
            sInstance = new OverlayConfig(null, null, packageProvider);
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_RRO);
            Trace.traceEnd(Trace.TRACE_TAG_RRO);
        }
        return sInstance;
        return sInstance;
    }
    }


@@ -379,10 +370,6 @@ public class OverlayConfig {
     */
     */
    @NonNull
    @NonNull
    public String[] createImmutableFrameworkIdmapsInZygote() {
    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 String targetPath = "/system/framework/framework-res.apk";
        final ArrayList<String> idmapPaths = new ArrayList<>();
        final ArrayList<String> idmapPaths = new ArrayList<>();
        final ArrayList<IdmapInvocation> idmapInvocations =
        final ArrayList<IdmapInvocation> idmapInvocations =