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

Commit 081c6821 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Improved logging on HsumBootUserInitializer." into main

parents b405bdfa 44423c57
Loading
Loading
Loading
Loading
+29 −14
Original line number Diff line number Diff line
@@ -21,11 +21,13 @@ import android.content.ContentResolver;
import android.content.pm.PackageManager;
import android.content.pm.UserInfo;
import android.database.ContentObserver;
import android.multiuser.Flags;
import android.os.Handler;
import android.os.Looper;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.Settings;
import android.util.Log;

import com.android.internal.annotations.VisibleForTesting;
import com.android.server.am.ActivityManagerService;
@@ -42,7 +44,10 @@ public final class HsumBootUserInitializer {

    private static final String TAG = HsumBootUserInitializer.class.getSimpleName();

    private static final boolean DEBUG = false;
    // NOTE: this class is small enough that it's ok to set DEBUG dynamically (it doesn't increase
    // the binary too much and they're only called during boot). But if the number of Slogf.d()
    // calls grows too much, we should change it to false.
    private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);

    private final UserManagerService mUms;
    private final ActivityManagerService mAms;
@@ -92,16 +97,13 @@ public final class HsumBootUserInitializer {
        mContentResolver = contentResolver;
        mShouldAlwaysHaveMainUser = shouldAlwaysHaveMainUser;
        mShouldCreateInitialUser = shouldCreateInitialUser;
        if (DEBUG) {
            Slogf.d(TAG, "HsumBootUserInitializer(): shouldAlwaysHaveMainUser=%b, "
                    + "shouldCreateInitialUser=%b",
                    shouldAlwaysHaveMainUser, shouldCreateInitialUser);
        }
    }

    // TODO(b/409650316): remove after flag's completely pushed
    private void preCreateInitialUserFlagInit(TimingsTraceAndSlog t) {
        if (DEBUG) {
            Slogf.d(TAG, "preCreateInitialUserFlagInit())");
        }

        if (mShouldAlwaysHaveMainUser) {
            t.traceBegin("createMainUserIfNeeded");
@@ -114,11 +116,13 @@ public final class HsumBootUserInitializer {
    private void preCreateInitialUserCreateMainUserIfNeeded() {
        final int mainUser = mUms.getMainUserId();
        if (mainUser != UserHandle.USER_NULL) {
            if (DEBUG) {
                Slogf.d(TAG, "Found existing MainUser, userId=%d", mainUser);
            }
            return;
        }

        Slogf.d(TAG, "Creating a new MainUser");
        Slogf.i(TAG, "Creating a new MainUser");
        try {
            final UserInfo newInitialUser = mUms.createUserInternalUnchecked(
                    /* name= */ null, // null will appear as "Owner" in on-demand localisation
@@ -148,9 +152,15 @@ public final class HsumBootUserInitializer {
     * creation.
     */
    public void init(TimingsTraceAndSlog t) {
        Slogf.i(TAG, "init())");
        if (DEBUG) {
            Slogf.d(TAG, "init(): shouldAlwaysHaveMainUser=%b, "
                    + "shouldCreateInitialUser=%b, Flags.createInitialUser=%b",
                    mShouldAlwaysHaveMainUser, mShouldCreateInitialUser, Flags.createInitialUser());
        } else {
            Slogf.i(TAG, "Initializing");
        }

        if (!android.multiuser.Flags.createInitialUser()) {
        if (!Flags.createInitialUser()) {
            preCreateInitialUserFlagInit(t);
            return;
        }
@@ -164,8 +174,10 @@ public final class HsumBootUserInitializer {
            createAdminUserIfNeeded(t);
            return;
        }
        if (DEBUG) {
            Slogf.d(TAG, "Not checking if initial user exists (should be handled externally)");
        }
    }

    private void createMainUserIfNeeded(TimingsTraceAndSlog t) {
        // Always tracing as it used to be done by the caller
@@ -173,7 +185,10 @@ public final class HsumBootUserInitializer {
        try {
            int mainUserId = mUms.getMainUserId();
            if (mainUserId != UserHandle.USER_NULL) {
                Slogf.d(TAG, "createMainUserIfNeeded(): found MainUser (userId=%d)", mainUserId);
                if (DEBUG) {
                    Slogf.d(TAG, "createMainUserIfNeeded(): found MainUser (userId=%d)",
                            mainUserId);
                }
                return;
            }
            createInitialUser(/* isMainUser= */ true);
@@ -208,7 +223,7 @@ public final class HsumBootUserInitializer {
        } else {
            logName = "admin user";
        }
        Slogf.d(TAG, "Creating %s", logName);
        Slogf.i(TAG, "Creating %s", logName);
        try {
            final UserInfo newInitialUser = mUms.createUserInternalUnchecked(
                    /* name= */ null, // null will appear as "Owner" in on-demand localisation