diff options
| author | 2012-09-11 11:08:37 -0700 | |
|---|---|---|
| committer | 2012-09-11 11:08:38 -0700 | |
| commit | 8015f039c744fb59c14920550705af958fc3c86d (patch) | |
| tree | 739bff16fdf793c26a7262850ee14c37a659ddd3 | |
| parent | 6fc7275d0ede6d352854db8fff95ec611bd07416 (diff) | |
| parent | faea76ff8bc9a350765873af81334afe4d14afbd (diff) | |
Merge "Enforce a user limit" into jb-mr1-dev
| -rwxr-xr-x | core/res/res/values/config.xml | 2 | ||||
| -rw-r--r-- | services/java/com/android/server/pm/UserManagerService.java | 15 |
2 files changed, 16 insertions, 1 deletions
diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index bba22527e803..f0e55102a0be 100755 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -923,5 +923,5 @@ <bool name="config_syncstorageengine_masterSyncAutomatically">true</bool> <!-- Maximum number of supported users --> - <integer name="config_multiuserMaximumUsers">10</integer> + <integer name="config_multiuserMaximumUsers">1</integer> </resources> diff --git a/services/java/com/android/server/pm/UserManagerService.java b/services/java/com/android/server/pm/UserManagerService.java index 3391668acc26..fc01f60d45bd 100644 --- a/services/java/com/android/server/pm/UserManagerService.java +++ b/services/java/com/android/server/pm/UserManagerService.java @@ -238,6 +238,18 @@ public class UserManagerService extends IUserManager.Stub { } /** + * Check if we've hit the limit of how many users can be created. + */ + private boolean isUserLimitReached() { + synchronized (mInstallLock) { + int nUsers = mUsers.size(); + int userLimit = mContext.getResources().getInteger( + com.android.internal.R.integer.config_multiuserMaximumUsers); + return nUsers >= userLimit; + } + } + + /** * Enforces that only the system UID or root's UID or apps that have the * {@link android.Manifest.permission.MANAGE_USERS MANAGE_USERS} * permission can make certain calls to the UserManager. @@ -522,6 +534,9 @@ public class UserManagerService extends IUserManager.Stub { @Override public UserInfo createUser(String name, int flags) { checkManageUsersPermission("Only the system can create users"); + + if (isUserLimitReached()) return null; + int userId = getNextAvailableId(); UserInfo userInfo = new UserInfo(userId, name, null, flags); File userPath = new File(mBaseUserPath, Integer.toString(userId)); |