From c8202c8d1d7c9bc2ee44cec538dc7fa4f95f960f Mon Sep 17 00:00:00 2001 From: Lenka Trochtova Date: Tue, 26 Jan 2016 15:11:09 +0100 Subject: [PATCH] Add a flag for creating an ephemeral user with DevicePolicyManager#createAndManageUser. BUG: 24883058 Change-Id: I225ee6f1f6692663349040676e7a6c742b3ede79 --- core/java/android/app/admin/DevicePolicyManager.java | 7 +++++++ .../android/server/devicepolicy/DevicePolicyManagerService.java | 6 +++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/core/java/android/app/admin/DevicePolicyManager.java b/core/java/android/app/admin/DevicePolicyManager.java index 879d6636bb7b..2ea215e7272a 100644 --- a/core/java/android/app/admin/DevicePolicyManager.java +++ b/core/java/android/app/admin/DevicePolicyManager.java @@ -4187,6 +4187,13 @@ public class DevicePolicyManager { public static final int SKIP_SETUP_WIZARD = 0x0001; /** + * Flag used by {@link #createAndManageUser} to specify that the user should be created + * ephemeral. + * @hide + */ + public static final int MAKE_USER_EPHEMERAL = 0x0002; + + /** * Called by a device owner to create a user with the specified name and a given component of * the calling package as profile owner. The UserHandle returned by this method should not be * persisted as user handles are recycled as users are removed and created. If you need to diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java index 04820a10072c..cf84b2fb7978 100644 --- a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java +++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java @@ -6507,7 +6507,11 @@ public class DevicePolicyManagerService extends IDevicePolicyManager.Stub { final long id = mInjector.binderClearCallingIdentity(); try { - UserInfo userInfo = mUserManager.createUser(name, 0 /* flags */); + int userInfoFlags = 0; + if ((flags & DevicePolicyManager.MAKE_USER_EPHEMERAL) != 0) { + userInfoFlags |= UserInfo.FLAG_EPHEMERAL; + } + UserInfo userInfo = mUserManager.createUser(name, userInfoFlags); if (userInfo != null) { user = userInfo.getUserHandle(); } -- 2.11.0