diff options
author | 2016-06-17 22:06:39 +0000 | |
---|---|---|
committer | 2016-06-17 22:06:39 +0000 | |
commit | eea56b9cfe48ddc6ac6e8c2cf3ee3ac8e1ac8e4d (patch) | |
tree | 04b10b188b1df8e225b8fe94aaa8fc4e893d86c6 | |
parent | 3517d45018290dae10d2a1bf30e6a71517a7bb3a (diff) | |
parent | 821f3b7bf766738fe234e313467a8c495a5cf513 (diff) |
Merge \\"Clean up ex-users in lock settings db\\" into nyc-dev am: 8cbe1a6309
am: 821f3b7bf7
Change-Id: I4e922238832a6b7fe81ccc6bf05b107595ac836f
-rw-r--r-- | services/core/java/com/android/server/LockSettingsService.java | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/LockSettingsService.java b/services/core/java/com/android/server/LockSettingsService.java index ef7b78789b2e..d64fe32cca55 100644 --- a/services/core/java/com/android/server/LockSettingsService.java +++ b/services/core/java/com/android/server/LockSettingsService.java @@ -423,6 +423,9 @@ public class LockSettingsService extends ILockSettings.Stub { if (Intent.ACTION_USER_ADDED.equals(intent.getAction())) { // Notify keystore that a new user was added. final int userHandle = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0); + if (userHandle > UserHandle.USER_SYSTEM) { + removeUser(userHandle, /* unknownUser= */ true); + } final KeyStore ks = KeyStore.getInstance(); final UserInfo parentInfo = mUserManager.getProfileParent(userHandle); final int parentHandle = parentInfo != null ? parentInfo.id : -1; @@ -433,7 +436,7 @@ public class LockSettingsService extends ILockSettings.Stub { } else if (Intent.ACTION_USER_REMOVED.equals(intent.getAction())) { final int userHandle = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0); if (userHandle > 0) { - removeUser(userHandle); + removeUser(userHandle, /* unknownUser= */ false); } } } @@ -1465,7 +1468,7 @@ public class LockSettingsService extends ILockSettings.Stub { return false; } - private void removeUser(int userId) { + private void removeUser(int userId, boolean unknownUser) { mStorage.removeUser(userId); mStrongAuth.removeUser(userId); @@ -1480,7 +1483,7 @@ public class LockSettingsService extends ILockSettings.Stub { } catch (RemoteException ex) { Slog.w(TAG, "unable to clear GK secure user id"); } - if (mUserManager.getUserInfo(userId).isManagedProfile()) { + if (unknownUser || mUserManager.getUserInfo(userId).isManagedProfile()) { removeKeystoreProfileKey(userId); } } |