diff --git a/install/install.cpp b/install/install.cpp
index b0162f0..09b8839 100644
--- a/install/install.cpp
+++ b/install/install.cpp
@@ -546,7 +546,7 @@
 
   std::vector<std::string> compatibility_info;
   ZipEntry info_entry;
-  std::string info_name;
+  std::string_view info_name;
   while (Next(cookie, &info_entry, &info_name) == 0) {
     std::string content(info_entry.uncompressed_length, '\0');
     int32_t ret = ExtractToMemory(zip_handle, &info_entry, reinterpret_cast<uint8_t*>(&content[0]),
diff --git a/install/verifier.cpp b/install/verifier.cpp
index 02759cd..ab75044 100644
--- a/install/verifier.cpp
+++ b/install/verifier.cpp
@@ -320,7 +320,7 @@
 
   std::vector<Certificate> result;
 
-  std::string name;
+  std::string_view name;
   ZipEntry entry;
   while ((iter_status = Next(cookie, &entry, &name)) == 0) {
     std::vector<uint8_t> pem_content(entry.uncompressed_length);
diff --git a/minadbd/minadbd_services.cpp b/minadbd/minadbd_services.cpp
index d2b824c..1e6eb31 100644
--- a/minadbd/minadbd_services.cpp
+++ b/minadbd/minadbd_services.cpp
@@ -156,9 +156,10 @@
   }
 }
 
-// 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 @@
     "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 @@
       }
       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);
diff --git a/recovery_ui/ui.cpp b/recovery_ui/ui.cpp
index 78b014a..cf0d3b5 100644
--- a/recovery_ui/ui.cpp
+++ b/recovery_ui/ui.cpp
@@ -419,7 +419,7 @@
         LOG(INFO) << "Brightness: " << brightness_normal_value_ << " (" << brightness_normal_
                   << "%)";
       } else {
-        LOG(ERROR) << "Unable to set brightness to normal";
+        LOG(WARNING) << "Unable to set brightness to normal";
       }
       break;
     case ScreensaverState::DIMMED:
@@ -429,7 +429,7 @@
                   << "%)";
         screensaver_state_ = ScreensaverState::DIMMED;
       } else {
-        LOG(ERROR) << "Unable to set brightness to dim";
+        LOG(WARNING) << "Unable to set brightness to dim";
       }
       break;
     case ScreensaverState::OFF:
@@ -437,7 +437,7 @@
         LOG(INFO) << "Brightness: 0 (off)";
         screensaver_state_ = ScreensaverState::OFF;
       } else {
-        LOG(ERROR) << "Unable to set brightness to off";
+        LOG(WARNING) << "Unable to set brightness to off";
       }
       break;
     default:
