Merge "Clear only keystore credential entires" into mnc-dev
diff --git a/src/com/android/settings/CredentialStorage.java b/src/com/android/settings/CredentialStorage.java
index 5415ccf..90efd58 100644
--- a/src/com/android/settings/CredentialStorage.java
+++ b/src/com/android/settings/CredentialStorage.java
@@ -105,6 +105,12 @@
private final KeyStore mKeyStore = KeyStore.getInstance();
/**
+ * The UIDs that are used for system credential storage in keystore.
+ */
+ private static final int[] SYSTEM_CREDENTIAL_UIDS = {Process.WIFI_UID, Process.VPN_UID,
+ Process.ROOT_UID, Process.SYSTEM_UID};
+
+ /**
* When non-null, the bundle containing credentials to install.
*/
private Bundle mInstallBundle;
@@ -333,7 +339,14 @@
@Override protected Boolean doInBackground(Void... unused) {
- mKeyStore.reset();
+ // Clear all the users credentials could have been installed in for this user.
+ final UserManager um = (UserManager) getSystemService(USER_SERVICE);
+ for (UserInfo pi : um.getProfiles(UserHandle.getUserId(Process.myUid()))) {
+ for (int uid : SYSTEM_CREDENTIAL_UIDS) {
+ mKeyStore.clearUid(UserHandle.getUid(pi.id, uid));
+ }
+ }
+
try {
KeyChainConnection keyChainConnection = KeyChain.bind(CredentialStorage.this);