From 3e9b88d50401177820c522bf2b762292c320368b Mon Sep 17 00:00:00 2001 From: Daniel Zheng Date: Mon, 25 Sep 2023 16:41:05 -0700 Subject: [PATCH] Removing is_retrofit code path This code path was never invoked. is_logical will return false on secondary partitions in retrofit devices, so nothing actually is ever deleted. If we manage to call the delete, the device side code will fail with "cannot open the super partition" Test: fastboot flashall on sargo device Change-Id: I20b430c5c30bf992506190ea4e00b0b69c7b1005 --- fastboot/fastboot.cpp | 28 ---------------------------- fastboot/fastboot.h | 1 - 2 files changed, 29 deletions(-) diff --git a/fastboot/fastboot.cpp b/fastboot/fastboot.cpp index b12e584d6..56b90b981 100644 --- a/fastboot/fastboot.cpp +++ b/fastboot/fastboot.cpp @@ -1414,21 +1414,6 @@ void do_for_partitions(const std::string& part, const std::string& slot, } } -bool is_retrofit_device(const ImageSource* source) { - // Does this device use dynamic partitions at all? - std::vector contents; - if (!source->ReadFile("super_empty.img", &contents)) { - return false; - } - auto metadata = android::fs_mgr::ReadFromImageBlob(contents.data(), contents.size()); - for (const auto& partition : metadata->partitions) { - if (partition.attributes & LP_PARTITION_ATTR_SLOT_SUFFIXED) { - return true; - } - } - return false; -} - // Fetch a partition from the device to a given fd. This is a wrapper over FetchToFd to fetch // the full image. static uint64_t fetch_partition(const std::string& partition, borrowed_fd fd, @@ -1880,19 +1865,6 @@ std::vector> FlashAllTool::CollectTasksFromImageList() { // Sync the super partition. This will reboot to userspace fastboot if needed. tasks.emplace_back(std::make_unique(fp_)); - for (const auto& [image, slot] : os_images_) { - // Retrofit devices have two super partitions, named super_a and super_b. - // On these devices, secondary slots must be flashed as physical - // partitions (otherwise they would not mount on first boot). To enforce - // this, we delete any logical partitions for the "other" slot. - if (is_retrofit_device(fp_->source.get())) { - std::string partition_name = image->part_name + "_" + slot; - if (image->IsSecondary() && - should_flash_in_userspace(fp_->source.get(), partition_name)) { - tasks.emplace_back(std::make_unique(fp_, partition_name)); - } - } - } AddFlashTasks(os_images_, tasks); diff --git a/fastboot/fastboot.h b/fastboot/fastboot.h index cd7bc2d98..2c40890b5 100644 --- a/fastboot/fastboot.h +++ b/fastboot/fastboot.h @@ -188,7 +188,6 @@ int64_t get_sparse_limit(int64_t size, const FlashingPlan* fp); std::vector resparse_file(sparse_file* s, int64_t max_size); bool supports_AB(fastboot::IFastBootDriver* fb); -bool is_retrofit_device(const ImageSource* source); bool is_logical(const std::string& partition); void fb_perform_format(const std::string& partition, int skip_if_not_supported, const std::string& type_override, const std::string& size_override,