summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Anderson <dvander@google.com>2018-08-21 22:10:45 +0200
committerDavid Anderson <dvander@google.com>2018-08-22 01:04:57 +0200
commiteee4e260f9f65cda362c073fdc62c2f897f331b7 (patch)
treea79922cb716be22ee38fbaca877c3763519d5f48
parentMerge "Add a python binary to generate the protobuf for care_map" (diff)
downloadandroid_bootable_recovery-eee4e260f9f65cda362c073fdc62c2f897f331b7.tar
android_bootable_recovery-eee4e260f9f65cda362c073fdc62c2f897f331b7.tar.gz
android_bootable_recovery-eee4e260f9f65cda362c073fdc62c2f897f331b7.tar.bz2
android_bootable_recovery-eee4e260f9f65cda362c073fdc62c2f897f331b7.tar.lz
android_bootable_recovery-eee4e260f9f65cda362c073fdc62c2f897f331b7.tar.xz
android_bootable_recovery-eee4e260f9f65cda362c073fdc62c2f897f331b7.tar.zst
android_bootable_recovery-eee4e260f9f65cda362c073fdc62c2f897f331b7.zip
-rw-r--r--recovery_main.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/recovery_main.cpp b/recovery_main.cpp
index 99f965098..020a5314f 100644
--- a/recovery_main.cpp
+++ b/recovery_main.cpp
@@ -97,8 +97,13 @@ static std::vector<std::string> get_args(const int argc, char** const argv) {
}
stage = std::string(boot.stage);
+ std::string boot_command;
if (boot.command[0] != 0) {
- std::string boot_command = std::string(boot.command, sizeof(boot.command));
+ if (memchr(boot.command, '\0', sizeof(boot.command))) {
+ boot_command = std::string(boot.command);
+ } else {
+ boot_command = std::string(boot.command, sizeof(boot.command));
+ }
LOG(INFO) << "Boot command: " << boot_command;
}
@@ -149,6 +154,12 @@ static std::vector<std::string> get_args(const int argc, char** const argv) {
LOG(ERROR) << "Failed to set BCB message: " << err;
}
+ // Finally, if no arguments were specified, check whether we should boot
+ // into fastboot.
+ if (args.size() == 1 && boot_command == "boot-fastboot") {
+ args.emplace_back("--fastboot");
+ }
+
return args;
}