Skip to content

Commit 8015f03

Browse files
Amith YamasaniAndroid (Google) Code Review
authored andcommitted
Merge "Enforce a user limit" into jb-mr1-dev
2 parents 6fc7275 + faea76f commit 8015f03

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

core/res/res/values/config.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -923,5 +923,5 @@
923923
<bool name="config_syncstorageengine_masterSyncAutomatically">true</bool>
924924

925925
<!-- Maximum number of supported users -->
926-
<integer name="config_multiuserMaximumUsers">10</integer>
926+
<integer name="config_multiuserMaximumUsers">1</integer>
927927
</resources>

services/java/com/android/server/pm/UserManagerService.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,18 @@ public void wipeUser(int userHandle) {
237237
// TODO:
238238
}
239239

240+
/**
241+
* Check if we've hit the limit of how many users can be created.
242+
*/
243+
private boolean isUserLimitReached() {
244+
synchronized (mInstallLock) {
245+
int nUsers = mUsers.size();
246+
int userLimit = mContext.getResources().getInteger(
247+
com.android.internal.R.integer.config_multiuserMaximumUsers);
248+
return nUsers >= userLimit;
249+
}
250+
}
251+
240252
/**
241253
* Enforces that only the system UID or root's UID or apps that have the
242254
* {@link android.Manifest.permission.MANAGE_USERS MANAGE_USERS}
@@ -522,6 +534,9 @@ private UserInfo readUser(int id) {
522534
@Override
523535
public UserInfo createUser(String name, int flags) {
524536
checkManageUsersPermission("Only the system can create users");
537+
538+
if (isUserLimitReached()) return null;
539+
525540
int userId = getNextAvailableId();
526541
UserInfo userInfo = new UserInfo(userId, name, null, flags);
527542
File userPath = new File(mBaseUserPath, Integer.toString(userId));

0 commit comments

Comments
 (0)