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:
