Use AdbdKeyStoreStorage for system keys

Test: AdbDebuggingManagerTest
Bug: 420613813
Flag: EXEMPT refactor

Change-Id: I30d206d80613d4638e9dcef4e2f536916804c1af
diff --git a/services/core/java/com/android/server/adb/AdbDebuggingManager.java b/services/core/java/com/android/server/adb/AdbDebuggingManager.java
index 69a8f5b..6088be3 100644
--- a/services/core/java/com/android/server/adb/AdbDebuggingManager.java
+++ b/services/core/java/com/android/server/adb/AdbDebuggingManager.java
@@ -78,11 +78,9 @@
 import org.xmlpull.v1.XmlPullParser;
 import org.xmlpull.v1.XmlPullParserException;
 
-import java.io.BufferedReader;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.FileOutputStream;
-import java.io.FileReader;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
@@ -1556,7 +1554,14 @@
             mAdbKeyUser = new AdbdKeyStoreStorage(mUserKeyFile);
             initKeyFile();
             readTempKeysFile();
-            mSystemKeys = getSystemKeysFromFile(SYSTEM_KEY_FILE);
+
+            // The system keystore handles keys pre-loaded into the read-only system partition at
+            // /adb_keys. Unlike the user keystore (/data/misc/adb/adb_keys), these
+            // system keys are considered permanently trusted, are not subject to expiration, and
+            // cannot be modified by the user.
+            AdbdKeyStoreStorage systemKeyStore = new AdbdKeyStoreStorage(
+                    new File(SYSTEM_KEY_FILE));
+            mSystemKeys = systemKeyStore.loadKeys();
             addExistingUserKeysToKeyStore();
         }
 
@@ -1612,26 +1617,9 @@
             }
         }
 
-        private Set<String> getSystemKeysFromFile(String fileName) {
-            Set<String> systemKeys = new HashSet<>();
-            File systemKeyFile = new File(fileName);
-            if (systemKeyFile.exists()) {
-                try (BufferedReader in = new BufferedReader(new FileReader(systemKeyFile))) {
-                    String key;
-                    while ((key = in.readLine()) != null) {
-                        key = key.trim();
-                        if (key.length() > 0) {
-                            systemKeys.add(key);
-                        }
-                    }
-                } catch (IOException e) {
-                    Slog.e(TAG, "Caught an exception reading " + fileName + ": " + e);
-                }
-            }
-            return systemKeys;
-        }
-
-        /** Returns whether there are any 'always allowed' keys in the keystore. */
+        /**
+         * Returns whether there are any 'always allowed' keys in the keystore.
+         */
         public boolean isEmpty() {
             return mKeyMap.isEmpty();
         }