aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--install/install.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/install/install.cpp b/install/install.cpp
index ff256a0a..0bd2ea11 100644
--- a/install/install.cpp
+++ b/install/install.cpp
@@ -46,6 +46,7 @@
#include <android-base/strings.h>
#include <android-base/unique_fd.h>
+#include "bootloader_message/bootloader_message.h"
#include "install/snapshot_utils.h"
#include "install/spl_check.h"
#include "install/wipe_data.h"
@@ -384,10 +385,17 @@ static InstallResult TryUpdateBinary(Package* package, bool* wipe_cache,
return INSTALL_ERROR;
}
+ const auto reboot_to_recovery = [] {
+ if (std::string err; !clear_bootloader_message(&err)) {
+ LOG(ERROR) << "Failed to clear BCB message: " << err;
+ }
+ Reboot("userrequested,recovery,ui");
+ };
+
static bool ab_package_installed = false;
if (ab_package_installed) {
if (ask_to_ab_reboot(device)) {
- Reboot("userrequested,recovery,ui");
+ reboot_to_recovery();
}
return INSTALL_ERROR;
}
@@ -580,7 +588,7 @@ static InstallResult TryUpdateBinary(Package* package, bool* wipe_cache,
ab_package_installed = true;
PerformPowerwashIfRequired(zip, device);
if (ask_to_ab_reboot(device)) {
- Reboot("userrequested,recovery,ui");
+ reboot_to_recovery();
}
}