Loading services/core/java/com/android/server/SystemServiceManager.java +0 −11 Original line number Diff line number Diff line Loading @@ -36,7 +36,6 @@ public class SystemServiceManager { private final Context mContext; private boolean mSafeMode; private boolean mRuntimeRestarted; private boolean mFirstBoot; // Services that should receive lifecycle events. private final ArrayList<SystemService> mServices = new ArrayList<SystemService>(); Loading Loading @@ -260,16 +259,6 @@ public class SystemServiceManager { mRuntimeRestarted = runtimeRestarted; } /** * @return true if it's first boot after OTA */ public boolean isFirstBoot() { return mFirstBoot; } void setFirstBoot(boolean firstBoot) { mFirstBoot = firstBoot; } /** * Outputs the state of this manager to the System log. Loading services/core/java/com/android/server/am/UserController.java +15 −4 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import static com.android.server.am.UserState.STATE_RUNNING_UNLOCKING; import android.annotation.NonNull; import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.AppGlobals; import android.app.AppOpsManager; import android.app.Dialog; import android.app.IStopUserCallback; Loading @@ -55,6 +56,7 @@ import android.app.KeyguardManager; import android.content.Context; import android.content.IIntentReceiver; import android.content.Intent; import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.os.BatteryStats; Loading Loading @@ -255,7 +257,9 @@ final class UserController { // storage is already unlocked. if (uss.setState(STATE_BOOTING, STATE_RUNNING_LOCKED)) { mInjector.getUserManagerInternal().setUserState(userId, uss.state); if (!mInjector.isRuntimeRestarted() && !mInjector.isFirstBoot()) { // Do not report secondary users, runtime restarts or first boot/upgrade if (userId == UserHandle.USER_SYSTEM && !mInjector.isRuntimeRestarted() && !mInjector.isFirstBootOrUpgrade()) { int uptimeSeconds = (int)(SystemClock.elapsedRealtime() / 1000); MetricsLogger.histogram(mInjector.getContext(), "framework_locked_boot_completed", uptimeSeconds); Loading Loading @@ -436,7 +440,9 @@ final class UserController { } Slog.d(TAG, "Sending BOOT_COMPLETE user #" + userId); if (!mInjector.isRuntimeRestarted() && !mInjector.isFirstBoot()) { // Do not report secondary users, runtime restarts or first boot/upgrade if (userId == UserHandle.USER_SYSTEM && !mInjector.isRuntimeRestarted() && !mInjector.isFirstBootOrUpgrade()) { int uptimeSeconds = (int) (SystemClock.elapsedRealtime() / 1000); MetricsLogger.histogram(mInjector.getContext(), "framework_boot_completed", uptimeSeconds); Loading Loading @@ -1709,8 +1715,13 @@ final class UserController { return mService.mSystemServiceManager.isRuntimeRestarted(); } boolean isFirstBoot() { return mService.mSystemServiceManager.isFirstBoot(); boolean isFirstBootOrUpgrade() { IPackageManager pm = AppGlobals.getPackageManager(); try { return pm.isFirstBoot() || pm.isUpgrade(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } void sendPreBootBroadcast(int userId, boolean quiet, final Runnable onFinish) { Loading services/java/com/android/server/SystemServer.java +7 −4 Original line number Diff line number Diff line Loading @@ -280,7 +280,7 @@ public final class SystemServer { Slog.i(TAG, "Entered the Android system server!"); int uptimeMillis = (int) SystemClock.elapsedRealtime(); EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_SYSTEM_RUN, uptimeMillis); if (!mRuntimeRestart && !mFirstBoot) { if (!mRuntimeRestart) { MetricsLogger.histogram(null, "boot_system_server_init", uptimeMillis); } Loading Loading @@ -349,7 +349,6 @@ public final class SystemServer { // Create the system service manager. mSystemServiceManager = new SystemServiceManager(mSystemContext); mSystemServiceManager.setRuntimeRestarted(mRuntimeRestart); mSystemServiceManager.setFirstBoot(mFirstBoot); LocalServices.addService(SystemServiceManager.class, mSystemServiceManager); // Prepare the thread pool for init tasks that can be parallelized SystemServerInitThreadPool.get(); Loading @@ -376,7 +375,7 @@ public final class SystemServer { if (StrictMode.conditionallyEnableDebugLogging()) { Slog.i(TAG, "Enabled StrictMode for system server main thread."); } if (!mRuntimeRestart && !mFirstBoot) { if (!mRuntimeRestart && !isFirstBootOrUpgrade()) { int uptimeMillis = (int) SystemClock.elapsedRealtime(); MetricsLogger.histogram(null, "boot_system_server_ready", uptimeMillis); final int MAX_UPTIME_MILLIS = 60 * 1000; Loading @@ -391,6 +390,10 @@ public final class SystemServer { throw new RuntimeException("Main thread loop unexpectedly exited"); } private boolean isFirstBootOrUpgrade() { return mPackageManagerService.isFirstBoot() || mPackageManagerService.isUpgrade(); } private void reportWtf(String msg, Throwable e) { Slog.w(TAG, "***********************************************"); Slog.wtf(TAG, "BOOT FAILURE " + msg, e); Loading Loading @@ -535,7 +538,7 @@ public final class SystemServer { mFirstBoot = mPackageManagerService.isFirstBoot(); mPackageManager = mSystemContext.getPackageManager(); traceEnd(); if (!mRuntimeRestart && !mFirstBoot) { if (!mRuntimeRestart && !isFirstBootOrUpgrade()) { MetricsLogger.histogram(null, "boot_package_manager_init_ready", (int) SystemClock.elapsedRealtime()); } Loading Loading
services/core/java/com/android/server/SystemServiceManager.java +0 −11 Original line number Diff line number Diff line Loading @@ -36,7 +36,6 @@ public class SystemServiceManager { private final Context mContext; private boolean mSafeMode; private boolean mRuntimeRestarted; private boolean mFirstBoot; // Services that should receive lifecycle events. private final ArrayList<SystemService> mServices = new ArrayList<SystemService>(); Loading Loading @@ -260,16 +259,6 @@ public class SystemServiceManager { mRuntimeRestarted = runtimeRestarted; } /** * @return true if it's first boot after OTA */ public boolean isFirstBoot() { return mFirstBoot; } void setFirstBoot(boolean firstBoot) { mFirstBoot = firstBoot; } /** * Outputs the state of this manager to the System log. Loading
services/core/java/com/android/server/am/UserController.java +15 −4 Original line number Diff line number Diff line Loading @@ -47,6 +47,7 @@ import static com.android.server.am.UserState.STATE_RUNNING_UNLOCKING; import android.annotation.NonNull; import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.AppGlobals; import android.app.AppOpsManager; import android.app.Dialog; import android.app.IStopUserCallback; Loading @@ -55,6 +56,7 @@ import android.app.KeyguardManager; import android.content.Context; import android.content.IIntentReceiver; import android.content.Intent; import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.UserInfo; import android.os.BatteryStats; Loading Loading @@ -255,7 +257,9 @@ final class UserController { // storage is already unlocked. if (uss.setState(STATE_BOOTING, STATE_RUNNING_LOCKED)) { mInjector.getUserManagerInternal().setUserState(userId, uss.state); if (!mInjector.isRuntimeRestarted() && !mInjector.isFirstBoot()) { // Do not report secondary users, runtime restarts or first boot/upgrade if (userId == UserHandle.USER_SYSTEM && !mInjector.isRuntimeRestarted() && !mInjector.isFirstBootOrUpgrade()) { int uptimeSeconds = (int)(SystemClock.elapsedRealtime() / 1000); MetricsLogger.histogram(mInjector.getContext(), "framework_locked_boot_completed", uptimeSeconds); Loading Loading @@ -436,7 +440,9 @@ final class UserController { } Slog.d(TAG, "Sending BOOT_COMPLETE user #" + userId); if (!mInjector.isRuntimeRestarted() && !mInjector.isFirstBoot()) { // Do not report secondary users, runtime restarts or first boot/upgrade if (userId == UserHandle.USER_SYSTEM && !mInjector.isRuntimeRestarted() && !mInjector.isFirstBootOrUpgrade()) { int uptimeSeconds = (int) (SystemClock.elapsedRealtime() / 1000); MetricsLogger.histogram(mInjector.getContext(), "framework_boot_completed", uptimeSeconds); Loading Loading @@ -1709,8 +1715,13 @@ final class UserController { return mService.mSystemServiceManager.isRuntimeRestarted(); } boolean isFirstBoot() { return mService.mSystemServiceManager.isFirstBoot(); boolean isFirstBootOrUpgrade() { IPackageManager pm = AppGlobals.getPackageManager(); try { return pm.isFirstBoot() || pm.isUpgrade(); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } void sendPreBootBroadcast(int userId, boolean quiet, final Runnable onFinish) { Loading
services/java/com/android/server/SystemServer.java +7 −4 Original line number Diff line number Diff line Loading @@ -280,7 +280,7 @@ public final class SystemServer { Slog.i(TAG, "Entered the Android system server!"); int uptimeMillis = (int) SystemClock.elapsedRealtime(); EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_SYSTEM_RUN, uptimeMillis); if (!mRuntimeRestart && !mFirstBoot) { if (!mRuntimeRestart) { MetricsLogger.histogram(null, "boot_system_server_init", uptimeMillis); } Loading Loading @@ -349,7 +349,6 @@ public final class SystemServer { // Create the system service manager. mSystemServiceManager = new SystemServiceManager(mSystemContext); mSystemServiceManager.setRuntimeRestarted(mRuntimeRestart); mSystemServiceManager.setFirstBoot(mFirstBoot); LocalServices.addService(SystemServiceManager.class, mSystemServiceManager); // Prepare the thread pool for init tasks that can be parallelized SystemServerInitThreadPool.get(); Loading @@ -376,7 +375,7 @@ public final class SystemServer { if (StrictMode.conditionallyEnableDebugLogging()) { Slog.i(TAG, "Enabled StrictMode for system server main thread."); } if (!mRuntimeRestart && !mFirstBoot) { if (!mRuntimeRestart && !isFirstBootOrUpgrade()) { int uptimeMillis = (int) SystemClock.elapsedRealtime(); MetricsLogger.histogram(null, "boot_system_server_ready", uptimeMillis); final int MAX_UPTIME_MILLIS = 60 * 1000; Loading @@ -391,6 +390,10 @@ public final class SystemServer { throw new RuntimeException("Main thread loop unexpectedly exited"); } private boolean isFirstBootOrUpgrade() { return mPackageManagerService.isFirstBoot() || mPackageManagerService.isUpgrade(); } private void reportWtf(String msg, Throwable e) { Slog.w(TAG, "***********************************************"); Slog.wtf(TAG, "BOOT FAILURE " + msg, e); Loading Loading @@ -535,7 +538,7 @@ public final class SystemServer { mFirstBoot = mPackageManagerService.isFirstBoot(); mPackageManager = mSystemContext.getPackageManager(); traceEnd(); if (!mRuntimeRestart && !mFirstBoot) { if (!mRuntimeRestart && !isFirstBootOrUpgrade()) { MetricsLogger.histogram(null, "boot_package_manager_init_ready", (int) SystemClock.elapsedRealtime()); } Loading