diff --git a/services/core/java/com/android/server/StorageManagerService.java b/services/core/java/com/android/server/StorageManagerService.java index 83e3b499fc96d..4a3f682a592d0 100644 --- a/services/core/java/com/android/server/StorageManagerService.java +++ b/services/core/java/com/android/server/StorageManagerService.java @@ -3047,6 +3047,10 @@ class StorageManagerService extends IStorageManager.Stub try { mVold.createUserKey(userId, serialNumber, ephemeral); + // New keys are always unlocked. + synchronized (mLock) { + mLocalUnlockedUsers.append(userId); + } } catch (Exception e) { Slog.wtf(TAG, e); } @@ -3058,6 +3062,10 @@ class StorageManagerService extends IStorageManager.Stub try { mVold.destroyUserKey(userId); + // Destroying a key also locks it. + synchronized (mLock) { + mLocalUnlockedUsers.remove(userId); + } } catch (Exception e) { Slog.wtf(TAG, e); }