Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cdcdf52e authored by Roy Luo's avatar Roy Luo
Browse files

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
parent 5aee6aca
Loading
Loading
Loading
Loading
+7 −3
Original line number Diff line number Diff line
@@ -155,10 +155,14 @@ static std::vector<std::string> get_args(const int argc, char** const argv, std:
  // 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.
  // 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
  // into fastboot or rescue mode.