From c031e9d3d1c05896f2792eb0b749ab995f45fa35 Mon Sep 17 00:00:00 2001 From: Kelvin Zhang Date: Thu, 4 Apr 2024 17:44:59 -0700 Subject: [PATCH] Fix sticky rescue party boot When entering recovery via rescue party, recovery does not call FinishRecovery() to reset BCB. This causes the rescue party command to stick, and device keeps rebooting into rescue party mode after entering bootloader mode and reboot. Test: enter rescue party, reboot bootloader, fastboot reboot Bug: 332621855 Change-Id: I958a77ccb2433d76aecb44f8c6f8fedebe08bbe0 --- recovery.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/recovery.cpp b/recovery.cpp index e7a33a9e..fbfe6468 100644 --- a/recovery.cpp +++ b/recovery.cpp @@ -176,6 +176,11 @@ static bool ask_to_wipe_data(Device* device) { } static InstallResult prompt_and_wipe_data(Device* device) { + // Reset to normal system boot so recovery won't cycle indefinitely. + std::string err; + if (!clear_bootloader_message(&err)) { + LOG(ERROR) << "Failed to clear BCB message: " << err; + } // Use a single string and let ScreenRecoveryUI handles the wrapping. std::vector wipe_data_menu_headers{ "Can't load Android system. Your data may be corrupt. "