Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dae48ef4 authored by LuK1337's avatar LuK1337 Committed by Anay Wadhera
Browse files

fastboot: Bring back legacy A/B support

Some devices, such as the Essential PH-1, don't have an
updated bootloader and the bootloader is appending an extra
underscore.

This patch works around that issue by sanitizing the slot to be
inline with modern expectations.

Offending commit: https://github.com/aosp-mirror/platform_system_core/commit/42b18a518bac85c3eea14206f6cbafbd1e98a31f

Most of the commit above is not needed because an underscore + slot
is automatically appended when flashing to a partition. Normally, this
would result in something like boot__b instead of boot_b, where b is the
current slot.

Test: flash an image on mata without specifying slot, boots

Change-Id: Ia0b7cee603a4f9ba2e3a61ce6e369ca8c07a7caf
parent 1d976420
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1103,6 +1103,7 @@ static void flash_buf(const std::string& partition, struct fastboot_buffer *buf)
static std::string get_current_slot() {
    std::string current_slot;
    if (fb->GetVar("current-slot", &current_slot) != fastboot::SUCCESS) return "";
    if (current_slot[0] == '_') current_slot.erase(0, 1);
    return current_slot;
}

@@ -1950,6 +1951,7 @@ int FastBootTool::Main(int argc, char* argv[]) {
            if (slot_override == "") {
                std::string current_slot;
                if (fb->GetVar("current-slot", &current_slot) == fastboot::SUCCESS) {
                    if (current_slot[0] == '_') current_slot.erase(0, 1);
                    next_active = verify_slot(current_slot, false);
                } else {
                    wants_set_active = false;