From 1eda0fb80827f3e327273406e1cf79461959b3a6 Mon Sep 17 00:00:00 2001 From: Ying Zheng Date: Thu, 16 May 2019 14:12:29 -0700 Subject: [PATCH] Grant FLAG_PRIMARY to the first human user in headless system user mode. Bug: 1328790300 Test: build Change-Id: I336391f5ba0a36d6f4d0b202d32d79865e40f8ca --- .../com/android/server/pm/UserManagerService.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index 204f186f9e130..e68e837e02d1b 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -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) {