Add a system config flag for making all guests ephemeral.
BUG: 25737696
Change-Id: I4c915ba97431a6f9f0aee2d93b618a5add51c766
diff --git a/services/core/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
index 13d7c35..3248fe6 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.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 @@
}
}
- 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 @@
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));
}
}