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

Commit 1eda0fb8 authored by Ying Zheng's avatar Ying Zheng
Browse files

Grant FLAG_PRIMARY to the first human user in headless system user mode.

Bug: 1328790300
Test: build
Change-Id: I336391f5ba0a36d6f4d0b202d32d79865e40f8ca
parent 0819921f
Loading
Loading
Loading
Loading
+7 −7
Original line number Diff line number Diff line
@@ -90,6 +90,7 @@ import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.app.IAppOpsService;
import com.android.internal.logging.MetricsLogger;
import com.android.internal.os.BackgroundThread;
import com.android.internal.os.RoSystemProperties;
import com.android.internal.util.DumpUtils;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.Preconditions;
@@ -2215,11 +2216,10 @@ public class UserManagerService extends IUserManager.Stub {

    @GuardedBy({"mPackagesLock", "mRestrictionsLock"})
    private void fallbackToSingleUserLP() {
        int flags = UserInfo.FLAG_INITIALIZED;
        // In split system user mode, the admin and primary flags are assigned to the first human
        // user.
        if (!UserManager.isSplitSystemUser()) {
            flags |= UserInfo.FLAG_ADMIN | UserInfo.FLAG_PRIMARY;
        int flags = UserInfo.FLAG_INITIALIZED | UserInfo.FLAG_ADMIN;
        // In headless system user mode, the primary flag is assigned to the first human user.
        if (!RoSystemProperties.MULTIUSER_HEADLESS_SYSTEM_USER) {
            flags |= UserInfo.FLAG_PRIMARY;
        }
        // Create the system user
        UserInfo system = new UserInfo(UserHandle.USER_SYSTEM, null, null, flags);
@@ -2733,9 +2733,9 @@ public class UserManagerService extends IUserManager.Stub {
                        return null;
                    }
                }
                // In split system user mode, we assign the first human user the primary flag.
                // In headless system user mode, we assign the first human user the primary flag.
                // And if there is no device owner, we also assign the admin flag to primary user.
                if (UserManager.isSplitSystemUser()
                if (RoSystemProperties.MULTIUSER_HEADLESS_SYSTEM_USER
                        && !isGuest && !isManagedProfile && getPrimaryUser() == null) {
                    flags |= UserInfo.FLAG_PRIMARY;
                    synchronized (mUsersLock) {