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

Commit 29c0a2c9 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Do not report uptime to tron after runtime restart"

parents d5db4a22 6733e6c6
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -657,8 +657,11 @@ public class ZygoteInit {
        }

        try {
            // Report Zygote start time to tron
            MetricsLogger.histogram(null, "boot_zygote_init", (int) SystemClock.uptimeMillis());
            // Report Zygote start time to tron unless it is a runtime restart
            if (!"1".equals(SystemProperties.get("sys.boot_completed"))) {
                MetricsLogger.histogram(null, "boot_zygote_init",
                        (int) SystemClock.elapsedRealtime());
            }

            String bootTimeTag = Process.is64Bit() ? "Zygote64Timing" : "Zygote32Timing";
            BootTimingsTraceLog bootTimingsTraceLog = new BootTimingsTraceLog(bootTimeTag,
+24 −11
Original line number Diff line number Diff line
@@ -221,6 +221,7 @@ public final class SystemServer {

    private boolean mOnlyCore;
    private boolean mFirstBoot;
    private final boolean mRuntimeRestart;

    /**
     * Start the sensor service.
@@ -237,6 +238,8 @@ public final class SystemServer {
    public SystemServer() {
        // Check for factory test mode.
        mFactoryTestMode = FactoryTest.getMode();
        // Remember if it's runtime restart(when sys.boot_completed is already set) or reboot
        mRuntimeRestart = "1".equals(SystemProperties.get("sys.boot_completed"));
    }

    private void run() {
@@ -273,13 +276,16 @@ public final class SystemServer {

            // Here we go!
            Slog.i(TAG, "Entered the Android system server!");
            int uptimeMillis = (int) SystemClock.uptimeMillis();
            int uptimeMillis = (int) SystemClock.elapsedRealtime();
            EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_SYSTEM_RUN, uptimeMillis);
            if (!mRuntimeRestart) {
                MetricsLogger.histogram(null, "boot_system_server_init", uptimeMillis);
                // Also report when first stage of init has started
                long initStartNs = SystemProperties.getLong("ro.boottime.init", -1);
                if (initStartNs >= 0) {
                MetricsLogger.histogram(null, "boot_android_init", (int)(initStartNs / 1000000));
                    MetricsLogger.histogram(null, "boot_android_init",
                            (int)(initStartNs / 1000000));
                }
            }

            // In case the runtime switched since last boot (such as when
@@ -372,7 +378,10 @@ public final class SystemServer {
        if (StrictMode.conditionallyEnableDebugLogging()) {
            Slog.i(TAG, "Enabled StrictMode for system server main thread.");
        }
        MetricsLogger.histogram(null, "boot_system_server_ready", (int) SystemClock.uptimeMillis());
        if (!mRuntimeRestart) {
            MetricsLogger.histogram(null, "boot_system_server_ready",
                    (int) SystemClock.elapsedRealtime());
        }

        // Loop forever.
        Looper.loop();
@@ -501,16 +510,20 @@ public final class SystemServer {
        }

        // Start the package manager.
        if (!mRuntimeRestart) {
            MetricsLogger.histogram(null, "boot_package_manager_init_start",
                (int) SystemClock.uptimeMillis());
                    (int) SystemClock.elapsedRealtime());
        }
        traceBeginAndSlog("StartPackageManagerService");
        mPackageManagerService = PackageManagerService.main(mSystemContext, installer,
                mFactoryTestMode != FactoryTest.FACTORY_TEST_OFF, mOnlyCore);
        mFirstBoot = mPackageManagerService.isFirstBoot();
        mPackageManager = mSystemContext.getPackageManager();
        traceEnd();
        if (!mRuntimeRestart) {
            MetricsLogger.histogram(null, "boot_package_manager_init_ready",
                (int) SystemClock.uptimeMillis());
                    (int) SystemClock.elapsedRealtime());
        }
        // Manages A/B OTA dexopting. This is a bootstrap service as we need it to rename
        // A/B artifacts after boot, before anything else might touch/need them.
        // Note: this isn't needed during decryption (we don't have /data anyways).