Merge "Ensure adb key store is instantiated before revoking grants" into qt-qpr1-dev

This commit is contained in:
Michael Groover
2020-02-13 23:18:35 +00:00
committed by Android (Google) Code Review
2 changed files with 29 additions and 0 deletions

View File

@@ -413,6 +413,11 @@ public class AdbDebuggingManager {
case MESSAGE_ADB_CLEAR: {
Slog.d(TAG, "Received a request to clear the adb authorizations");
mConnectedKeys.clear();
// If the key store has not yet been instantiated then do so now; this avoids
// the unnecessary creation of the key store when adb is not enabled.
if (mAdbKeyStore == null) {
mAdbKeyStore = new AdbKeyStore();
}
mAdbKeyStore.deleteKeyStore();
cancelJobToUpdateAdbKeyStore();
break;

View File

@@ -672,6 +672,30 @@ public final class AdbDebuggingManagerTest {
connectionTime2, mKeyStore.getLastConnectionTime(TEST_KEY_2));
}
@Test
public void testClearAuthorizationsBeforeAdbEnabled() throws Exception {
// The adb key store is not instantiated until adb is enabled; however if the user attempts
// to clear the adb authorizations when adb is disabled after a boot a NullPointerException
// was thrown as deleteKeyStore is invoked against the key store. This test ensures the
// key store can be successfully cleared when adb is disabled.
mHandler = mManager.new AdbDebuggingHandler(FgThread.get().getLooper());
clearKeyStore();
}
@Test
public void testClearAuthorizationsDeletesKeyFiles() throws Exception {
mAdbKeyFile.createNewFile();
mAdbKeyXmlFile.createNewFile();
clearKeyStore();
assertFalse("The adb key file should have been deleted after revocation of the grants",
mAdbKeyFile.exists());
assertFalse("The adb xml key file should have been deleted after revocation of the grants",
mAdbKeyXmlFile.exists());
}
/**
* Runs an adb test with the provided configuration.
*