diff options
author | Tao Bao <tbao@google.com> | 2019-06-11 01:43:09 +0200 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2019-06-11 01:43:09 +0200 |
commit | cb930939a423ac7cd48d1ac8ff3eb22aaefe10f4 (patch) | |
tree | 0d14be26a0201308fd3d0e0fed3e044bb2876b2e | |
parent | Merge "minadbd: Support `adb rescue getprop`." (diff) | |
parent | minadbd: `adb rescue getprop` returns newline-terminated result. (diff) | |
download | android_bootable_recovery-cb930939a423ac7cd48d1ac8ff3eb22aaefe10f4.tar android_bootable_recovery-cb930939a423ac7cd48d1ac8ff3eb22aaefe10f4.tar.gz android_bootable_recovery-cb930939a423ac7cd48d1ac8ff3eb22aaefe10f4.tar.bz2 android_bootable_recovery-cb930939a423ac7cd48d1ac8ff3eb22aaefe10f4.tar.lz android_bootable_recovery-cb930939a423ac7cd48d1ac8ff3eb22aaefe10f4.tar.xz android_bootable_recovery-cb930939a423ac7cd48d1ac8ff3eb22aaefe10f4.tar.zst android_bootable_recovery-cb930939a423ac7cd48d1ac8ff3eb22aaefe10f4.zip |
-rw-r--r-- | minadbd/minadbd_services.cpp | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/minadbd/minadbd_services.cpp b/minadbd/minadbd_services.cpp index d2b824cfe..1e6eb3165 100644 --- a/minadbd/minadbd_services.cpp +++ b/minadbd/minadbd_services.cpp @@ -156,9 +156,10 @@ static void RescueInstallHostService(unique_fd sfd, const std::string& args) { } } -// Answers the query on a given property. The result will be written to the given sfd. If given an -// empty string, dumps all the supported properties (similar to `adb shell getprop`) in lines, e.g. -// "[prop]: [value]". +// Answers the query on a given property |prop|, by writing the result to the given |sfd|. The +// result will be newline-terminated, so nonexistent or nonallowed query will be answered with "\n". +// If given an empty string, dumps all the supported properties (analogous to `adb shell getprop`) +// in lines, e.g. "[prop]: [value]". static void RescueGetpropHostService(unique_fd sfd, const std::string& prop) { static const std::set<std::string> kGetpropAllowedProps = { "ro.build.date.utc", @@ -171,10 +172,6 @@ static void RescueGetpropHostService(unique_fd sfd, const std::string& prop) { "ro.product.device", "ro.product.vendor.device", }; - if (!prop.empty() && kGetpropAllowedProps.find(prop) == kGetpropAllowedProps.end()) { - return; - } - std::string result; if (prop.empty()) { for (const auto& key : kGetpropAllowedProps) { @@ -184,11 +181,11 @@ static void RescueGetpropHostService(unique_fd sfd, const std::string& prop) { } result += "[" + key + "]: [" + value + "]\n"; } - } else { - result = android::base::GetProperty(prop, ""); + } else if (kGetpropAllowedProps.find(prop) != kGetpropAllowedProps.end()) { + result = android::base::GetProperty(prop, "") + "\n"; } if (result.empty()) { - return; + result = "\n"; } if (!android::base::WriteFully(sfd, result.data(), result.size())) { exit(kMinadbdHostSocketIOError); |