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

Commit 02b1a056 authored by JW Wang's avatar JW Wang Committed by Android (Google) Code Review
Browse files

Merge "Add logs to profile the performance of staged-install on boot (1/n)" into sc-dev

parents 37357d4f 531daf7b
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -49,12 +49,14 @@ import android.os.Message;
import android.os.PowerManager;
import android.os.RemoteException;
import android.os.SystemProperties;
import android.os.Trace;
import android.os.UserHandle;
import android.text.TextUtils;
import android.util.ArraySet;
import android.util.IntArray;
import android.util.Slog;
import android.util.SparseArray;
import android.util.TimingsTraceLog;
import android.util.apk.ApkSignatureVerifier;

import com.android.internal.annotations.GuardedBy;
@@ -551,7 +553,11 @@ public class StagingManager {
        }
        // The APEX part of the session is activated, proceed with the installation of APKs.
        Slog.d(TAG, "Installing APK packages in session " + session.sessionId());
        TimingsTraceLog t = new TimingsTraceLog(
                "StagingManagerTiming", Trace.TRACE_TAG_PACKAGE_MANAGER);
        t.traceBegin("installApksInSession");
        installApksInSession(session);
        t.traceEnd();

        Slog.d(TAG, "Marking session " + session.sessionId() + " as applied");
        session.setSessionApplied();
@@ -876,6 +882,10 @@ public class StagingManager {
    }

    void restoreSessions(@NonNull List<StagedSession> sessions, boolean isDeviceUpgrading) {
        TimingsTraceLog t = new TimingsTraceLog(
                "StagingManagerTiming", Trace.TRACE_TAG_PACKAGE_MANAGER);
        t.traceBegin("restoreSessions");

        // Do not resume sessions if boot completed already
        if (SystemProperties.getBoolean("sys.boot_completed", false)) {
            return;
@@ -1008,6 +1018,7 @@ public class StagingManager {
                        supportsCheckpoint, needsCheckpoint);
            }
        }
        t.traceEnd();
    }

    private void logFailedApexSessionsIfNecessary() {