From 4b9fcd9d8a7efdb1ce77c5ba18b2289cfff0ca9a Mon Sep 17 00:00:00 2001 From: Inseob Kim Date: Wed, 28 Aug 2024 17:21:27 +0900 Subject: Move adb_keys to product partition /adb_keys will be moved to /product/etc/security as it's a product-specific file. To prevent regression, /adb_keys will be a symlink to the new location. Bug: 353430323 Test: boot and connect adb with ADB_VENDOR_KEYS Change-Id: Iaec1acfa5e8e758058fabf2ec0edd85bd64e7700 --- libs/adbd_auth/adbd_auth.cpp | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libs/adbd_auth/adbd_auth.cpp b/libs/adbd_auth/adbd_auth.cpp index 78896ed553..d31cb3dff0 100644 --- a/libs/adbd_auth/adbd_auth.cpp +++ b/libs/adbd_auth/adbd_auth.cpp @@ -390,13 +390,16 @@ public: } } - static constexpr const char* key_paths[] = {"/adb_keys", "/data/misc/adb/adb_keys"}; + static constexpr std::pair key_paths[] = { + {"/adb_keys", true /* follow symlinks */ }, + {"/data/misc/adb/adb_keys", false /* don't follow symlinks */ }, + }; void IteratePublicKeys(bool (*callback)(void*, const char*, size_t), void* opaque) { - for (const auto& path : key_paths) { + for (const auto& [path, follow_symlinks] : key_paths) { if (access(path, R_OK) == 0) { LOG(INFO) << "adbd_auth: loading keys from " << path; std::string content; - if (!android::base::ReadFileToString(path, &content)) { + if (!android::base::ReadFileToString(path, &content, follow_symlinks)) { PLOG(ERROR) << "adbd_auth: couldn't read " << path; continue; } -- cgit v1.2.3-59-g8ed1b