Fix the input parameter for "set_retry_bootloader_message"

We're not updating argc & argv during get_args(), so some boot
arguments missed when we set the boot message for retry.

Bug: 38383406
Test: boot command sets correctly during retry attempt.
Change-Id: Ie8583a22fad5e0084245e3431d4018518d508dfd
This commit is contained in:
Tianjie Xu 2017-05-16 18:07:31 -07:00
parent 494d97fe6b
commit 72449c9f99

View file

@ -1304,20 +1304,20 @@ static bool is_battery_ok() {
} }
} }
static void set_retry_bootloader_message(int retry_count, int argc, char** argv) { static void set_retry_bootloader_message(int retry_count, const std::vector<std::string>& args) {
std::vector<std::string> options; std::vector<std::string> options;
for (int i = 1; i < argc; ++i) { for (const auto& arg : args) {
if (strstr(argv[i], "retry_count") == nullptr) { if (!android::base::StartsWith(arg, "--retry_count")) {
options.push_back(argv[i]); options.push_back(arg);
}
} }
}
// Increment the retry counter by 1. // Increment the retry counter by 1.
options.push_back(android::base::StringPrintf("--retry_count=%d", retry_count+1)); options.push_back(android::base::StringPrintf("--retry_count=%d", retry_count + 1));
std::string err; std::string err;
if (!update_bootloader_message(options, &err)) { if (!update_bootloader_message(options, &err)) {
LOG(ERROR) << err; LOG(ERROR) << err;
} }
} }
static bool bootreason_in_blacklist() { static bool bootreason_in_blacklist() {
@ -1534,7 +1534,7 @@ int main(int argc, char **argv) {
// times before we abandon this OTA update. // times before we abandon this OTA update.
if (status == INSTALL_RETRY && retry_count < EIO_RETRY_COUNT) { if (status == INSTALL_RETRY && retry_count < EIO_RETRY_COUNT) {
copy_logs(); copy_logs();
set_retry_bootloader_message(retry_count, argc, argv); set_retry_bootloader_message(retry_count, args);
// Print retry count on screen. // Print retry count on screen.
ui->Print("Retry attempt %d\n", retry_count); ui->Print("Retry attempt %d\n", retry_count);