diff --git a/core/res/res/values/config.xml b/core/res/res/values/config.xml index 53a733d260f8a..9cc2a2fad93ac 100644 --- a/core/res/res/values/config.xml +++ b/core/res/res/values/config.xml @@ -2442,4 +2442,7 @@ 4260000 300000 + + + false diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index f3bc0d84e32ff..8a0ab80c6f690 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -305,6 +305,7 @@ + diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java index 13d7c35df5d4c..3248fe6178b04 100644 --- a/services/core/java/com/android/server/pm/UserManagerService.java +++ b/services/core/java/com/android/server/pm/UserManagerService.java @@ -32,6 +32,7 @@ import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.UserInfo; +import android.content.res.Resources; import android.graphics.Bitmap; import android.os.Binder; import android.os.Bundle; @@ -1841,7 +1842,11 @@ public class UserManagerService extends IUserManager.Stub { } } - if (parent != null && parent.info.isEphemeral()) { + // Add ephemeral flag to guests if required. Also inherit it from parent. + boolean ephemeralGuests = Resources.getSystem() + .getBoolean(com.android.internal.R.bool.config_guestUserEphemeral); + if ((isGuest && ephemeralGuests) + || (parent != null && parent.info.isEphemeral())) { flags |= UserInfo.FLAG_EPHEMERAL; } userId = getNextAvailableId(); @@ -2800,6 +2805,8 @@ public class UserManagerService extends IUserManager.Stub { pw.println(); pw.println(" Max users: " + UserManager.getMaxSupportedUsers()); pw.println(" Supports switchable users: " + UserManager.supportsMultipleUsers()); + pw.println(" All guests ephemeral: " + Resources.getSystem().getBoolean( + com.android.internal.R.bool.config_guestUserEphemeral)); } }