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

Commit 2030bac8 authored by Elliott Hughes's avatar Elliott Hughes
Browse files

Fix fastboot to cope with hammerhead's implicit hex.

Before:

  wiping userdata...
  Couldn't parse partition size '3321fa800'.
  wiping cache...
  Couldn't parse partition size '2bc00000'.

Groan. So much variation between bootloaders. I wish we had a reference
bootloader like ChromeOS does.

I've also removed a harmless warning:

  couldn't parse max-download-size ''

Change-Id: Ia1099d2f87000ebb96622ad9171819a1326fa249
parent 4f239172
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -571,7 +571,7 @@ static struct sparse_file **load_sparse_files(int fd, int max_size)

static int64_t get_target_sparse_limit(usb_handle* usb) {
    std::string max_download_size;
    if (!fb_getvar(usb, "max-download-size", &max_download_size)) {
    if (!fb_getvar(usb, "max-download-size", &max_download_size) || max_download_size.empty()) {
        fprintf(stderr, "target didn't report max-download-size\n");
        return 0;
    }
@@ -909,6 +909,10 @@ static void fb_perform_format(usb_handle* usb,
        return;
    }

    // Some bootloaders (hammerhead, for example) use implicit hex.
    // This code used to use strtol with base 16.
    if (!android::base::StartsWith(partition_size, "0x")) partition_size = "0x" + partition_size;

    int64_t size;
    if (!android::base::ParseInt(partition_size.c_str(), &size)) {
        fprintf(stderr, "Couldn't parse partition size '%s'.\n", partition_size.c_str());