Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f7378376 authored by Joshua Duong's avatar Joshua Duong
Browse files

Remove key from adb_keys if user forgets the key.

It was being removed from adb_temp_keys.xml but not adb_keys.

Bug: 150138676
Bug: 111434128

Test: atest AdbDebuggingManagerTest

Change-Id: I3c31394e4480e787c771e193b179a472d6ee4a62
Merged-In: I3c31394e4480e787c771e193b179a472d6ee4a62
parent c8a2dbdb
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1849,6 +1849,7 @@ public class AdbDebuggingManager {
        public void removeKey(String key) {
            if (mKeyMap.containsKey(key)) {
                mKeyMap.remove(key);
                writeKeys(mKeyMap.keySet());
                sendPersistKeyStoreMessage();
            }
        }
+25 −0
Original line number Diff line number Diff line
@@ -672,6 +672,31 @@ public final class AdbDebuggingManagerTest {
                connectionTime2, mKeyStore.getLastConnectionTime(TEST_KEY_2));
    }

    @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.
     *