diff options
Diffstat (limited to 'fastboot/fastboot.cpp')
-rw-r--r-- | fastboot/fastboot.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/fastboot/fastboot.cpp b/fastboot/fastboot.cpp index f9dd6b5e1..3e97716d1 100644 --- a/fastboot/fastboot.cpp +++ b/fastboot/fastboot.cpp @@ -1096,12 +1096,20 @@ static void do_for_partitions(const std::string& part, const std::string& slot, } } +static bool is_logical(const std::string& partition) { + std::string value; + return fb->GetVar("is-logical:" + partition, &value) == fastboot::SUCCESS && value == "yes"; +} + static void do_flash(const char* pname, const char* fname) { struct fastboot_buffer buf; if (!load_buf(fname, &buf)) { die("cannot load '%s': %s", fname, strerror(errno)); } + if (is_logical(pname)) { + fb->ResizePartition(pname, std::to_string(buf.image_size)); + } flash_buf(pname, &buf); } @@ -1144,11 +1152,6 @@ static bool if_partition_exists(const std::string& partition, const std::string& return fb->GetVar("partition-size:" + partition_name, &partition_size) == fastboot::SUCCESS; } -static bool is_logical(const std::string& partition) { - std::string value; - return fb->GetVar("is-logical:" + partition, &value) == fastboot::SUCCESS && value == "yes"; -} - static void reboot_to_userspace_fastboot() { fb->RebootTo("fastboot"); |