diff --git a/services/core/java/com/android/server/locksettings/LockSettingsService.java b/services/core/java/com/android/server/locksettings/LockSettingsService.java index 7c56f4d20864a..f617964481bf6 100644 --- a/services/core/java/com/android/server/locksettings/LockSettingsService.java +++ b/services/core/java/com/android/server/locksettings/LockSettingsService.java @@ -21,6 +21,7 @@ import static android.Manifest.permission.READ_CONTACTS; import static android.content.Context.KEYGUARD_SERVICE; import static android.content.pm.PackageManager.PERMISSION_GRANTED; +import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_BOOT; import static com.android.internal.widget.LockPatternUtils.StrongAuthTracker.STRONG_AUTH_REQUIRED_AFTER_LOCKOUT; import static com.android.internal.widget.LockPatternUtils.SYNTHETIC_PASSWORD_ENABLED_KEY; import static com.android.internal.widget.LockPatternUtils.SYNTHETIC_PASSWORD_HANDLE_KEY; @@ -524,6 +525,10 @@ public class LockSettingsService extends ILockSettings.Stub { public void onCleanupUser(int userId) { hideEncryptionNotification(new UserHandle(userId)); + // User is stopped with its CE key evicted. Require strong auth next time to be able to + // unlock the user's storage. Use STRONG_AUTH_REQUIRED_AFTER_BOOT since stopping and + // restarting a user later is equivalent to rebooting the device. + requireStrongAuth(STRONG_AUTH_REQUIRED_AFTER_BOOT, userId); } public void onStartUser(final int userId) {