recovery: do not update bootloader message for boot-fastboot

When booting to fastbootd using bootloader message:
boot.command=boot-fastboot, the boot command get overwritten to
boot-recovery by update_bootloader_message. If the daemon crash for
whatever reason before the bootloader message got clear, the daemon
would start in adb recovery mode instead of fastbootd after it
respawns. Only update bootloader message for boot-recovery command.

Bug: 332973437
Test: boot to fastbootd
Change-Id: I5747c62cf50d2347894d266f2665035f15ae5da0
diff --git a/recovery_main.cpp b/recovery_main.cpp
index cb3f0c1..903a317 100644
--- a/recovery_main.cpp
+++ b/recovery_main.cpp
@@ -155,9 +155,13 @@
   // Write the arguments (excluding the filename in args[0]) back into the
   // bootloader control block. So the device will always boot into recovery to
   // finish the pending work, until FinishRecovery() is called.
-  std::vector<std::string> options(args.cbegin() + 1, args.cend());
-  if (!update_bootloader_message(options, &err)) {
-    LOG(ERROR) << "Failed to set BCB message: " << err;
+  // This should only be done for boot-recovery command so that other commands
+  // won't be overwritten.
+  if (boot_command == "boot-recovery") {
+    std::vector<std::string> options(args.cbegin() + 1, args.cend());
+    if (!update_bootloader_message(options, &err)) {
+      LOG(ERROR) << "Failed to set BCB message: " << err;
+    }
   }
 
   // Finally, if no arguments were specified, check whether we should boot