Merge "Remove key from adb_keys if user forgets the key." into rvc-dev am: b76d7aa6bc

Change-Id: I935b7d725fb38079a77412e14333c900d5025d6f
This commit is contained in:
Automerger Merge Worker
2020-02-25 06:19:14 +00:00
2 changed files with 26 additions and 0 deletions

View File

@@ -1853,6 +1853,7 @@ public class AdbDebuggingManager {
public void removeKey(String key) { public void removeKey(String key) {
if (mKeyMap.containsKey(key)) { if (mKeyMap.containsKey(key)) {
mKeyMap.remove(key); mKeyMap.remove(key);
writeKeys(mKeyMap.keySet());
sendPersistKeyStoreMessage(); sendPersistKeyStoreMessage();
} }
} }

View File

@@ -696,6 +696,31 @@ public final class AdbDebuggingManagerTest {
mAdbKeyXmlFile.exists()); mAdbKeyXmlFile.exists());
} }
@Test
public void testAdbKeyStore_removeKey() throws Exception {
// Accept the test key with the 'Always allow' option selected.
runAdbTest(TEST_KEY_1, true, true, false);
runAdbTest(TEST_KEY_2, true, true, false);
// Set the connection time to 0 to restore the original behavior.
setAllowedConnectionTime(0);
// Verify that the key is in the adb_keys file to ensure subsequent connections are
// automatically allowed by adbd.
persistKeyStore();
assertTrue("The key was not in the adb_keys file after persisting the keystore",
isKeyInFile(TEST_KEY_1, mAdbKeyFile));
assertTrue("The key was not in the adb_keys file after persisting the keystore",
isKeyInFile(TEST_KEY_2, mAdbKeyFile));
// Now remove one of the keys and make sure the other key is still there
mKeyStore.removeKey(TEST_KEY_1);
assertFalse("The key was still in the adb_keys file after removing the key",
isKeyInFile(TEST_KEY_1, mAdbKeyFile));
assertTrue("The key was not in the adb_keys file after removing a different key",
isKeyInFile(TEST_KEY_2, mAdbKeyFile));
}
/** /**
* Runs an adb test with the provided configuration. * Runs an adb test with the provided configuration.
* *