Loading common.h +2 −0 Original line number Diff line number Diff line Loading @@ -43,4 +43,6 @@ void ui_print(const char* format, ...); bool is_ro_debuggable(); bool reboot(const std::string& command); #endif // RECOVERY_COMMON_H recovery.cpp +20 −6 Original line number Diff line number Diff line Loading @@ -208,6 +208,14 @@ bool is_ro_debuggable() { return android::base::GetBoolProperty("ro.debuggable", false); } bool reboot(const std::string& command) { std::string cmd = command; if (android::base::GetBoolProperty("ro.boot.quiescent", false)) { cmd += ",quiescent"; } return android::base::SetProperty(ANDROID_RB_PROPERTY, cmd); } static void redirect_stdio(const char* filename) { int pipefd[2]; if (pipe(pipefd) == -1) { Loading Loading @@ -1448,12 +1456,18 @@ int main(int argc, char **argv) { printf("reason is [%s]\n", reason); Device* device = make_device(); if (android::base::GetBoolProperty("ro.boot.quiescent", false)) { printf("Quiescent recovery mode.\n"); ui = new StubRecoveryUI(); } else { ui = device->GetUI(); if (!ui->Init(locale)) { printf("Failed to initialize UI, use stub UI instead."); printf("Failed to initialize UI, use stub UI instead.\n"); ui = new StubRecoveryUI(); } } // Set background string to "installing security update" for security update, // otherwise set it to "installing system update". ui->SetSystemUpdateText(security_update); Loading Loading @@ -1525,7 +1539,7 @@ int main(int argc, char **argv) { ui->Print("Retry attempt %d\n", retry_count); // Reboot and retry the update if (!android::base::SetProperty(ANDROID_RB_PROPERTY, "reboot,recovery")) { if (!reboot("reboot,recovery")) { ui->Print("Reboot failed\n"); } else { while (true) { Loading Loading @@ -1630,7 +1644,7 @@ int main(int argc, char **argv) { default: ui->Print("Rebooting...\n"); android::base::SetProperty(ANDROID_RB_PROPERTY, "reboot,"); reboot("reboot,"); break; } while (true) { Loading ui.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ void RecoveryUI::ProcessKey(int key_code, int updown) { case RecoveryUI::REBOOT: if (reboot_enabled) { android::base::SetProperty(ANDROID_RB_PROPERTY, "reboot,"); reboot("reboot,"); while (true) { pause(); } } break; Loading updater/install.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -890,7 +890,10 @@ Value* RebootNowFn(const char* name, State* state, const std::vector<std::unique return StringValue(""); } const std::string reboot_cmd = "reboot," + property; std::string reboot_cmd = "reboot," + property; if (android::base::GetBoolProperty("ro.boot.quiescent", false)) { reboot_cmd += ",quiescent"; } android::base::SetProperty(ANDROID_RB_PROPERTY, reboot_cmd); sleep(5); Loading Loading
common.h +2 −0 Original line number Diff line number Diff line Loading @@ -43,4 +43,6 @@ void ui_print(const char* format, ...); bool is_ro_debuggable(); bool reboot(const std::string& command); #endif // RECOVERY_COMMON_H
recovery.cpp +20 −6 Original line number Diff line number Diff line Loading @@ -208,6 +208,14 @@ bool is_ro_debuggable() { return android::base::GetBoolProperty("ro.debuggable", false); } bool reboot(const std::string& command) { std::string cmd = command; if (android::base::GetBoolProperty("ro.boot.quiescent", false)) { cmd += ",quiescent"; } return android::base::SetProperty(ANDROID_RB_PROPERTY, cmd); } static void redirect_stdio(const char* filename) { int pipefd[2]; if (pipe(pipefd) == -1) { Loading Loading @@ -1448,12 +1456,18 @@ int main(int argc, char **argv) { printf("reason is [%s]\n", reason); Device* device = make_device(); if (android::base::GetBoolProperty("ro.boot.quiescent", false)) { printf("Quiescent recovery mode.\n"); ui = new StubRecoveryUI(); } else { ui = device->GetUI(); if (!ui->Init(locale)) { printf("Failed to initialize UI, use stub UI instead."); printf("Failed to initialize UI, use stub UI instead.\n"); ui = new StubRecoveryUI(); } } // Set background string to "installing security update" for security update, // otherwise set it to "installing system update". ui->SetSystemUpdateText(security_update); Loading Loading @@ -1525,7 +1539,7 @@ int main(int argc, char **argv) { ui->Print("Retry attempt %d\n", retry_count); // Reboot and retry the update if (!android::base::SetProperty(ANDROID_RB_PROPERTY, "reboot,recovery")) { if (!reboot("reboot,recovery")) { ui->Print("Reboot failed\n"); } else { while (true) { Loading Loading @@ -1630,7 +1644,7 @@ int main(int argc, char **argv) { default: ui->Print("Rebooting...\n"); android::base::SetProperty(ANDROID_RB_PROPERTY, "reboot,"); reboot("reboot,"); break; } while (true) { Loading
ui.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -227,7 +227,7 @@ void RecoveryUI::ProcessKey(int key_code, int updown) { case RecoveryUI::REBOOT: if (reboot_enabled) { android::base::SetProperty(ANDROID_RB_PROPERTY, "reboot,"); reboot("reboot,"); while (true) { pause(); } } break; Loading
updater/install.cpp +4 −1 Original line number Diff line number Diff line Loading @@ -890,7 +890,10 @@ Value* RebootNowFn(const char* name, State* state, const std::vector<std::unique return StringValue(""); } const std::string reboot_cmd = "reboot," + property; std::string reboot_cmd = "reboot," + property; if (android::base::GetBoolProperty("ro.boot.quiescent", false)) { reboot_cmd += ",quiescent"; } android::base::SetProperty(ANDROID_RB_PROPERTY, reboot_cmd); sleep(5); Loading