Merge changes I82ac2392,Ie0dd7acd,I8018e48f
* changes: Updating Flashall to work off tasks Updated location of initialization Updating FlashTask to require img-name
This commit is contained in:
commit
bf18673dee
3 changed files with 9 additions and 25 deletions
|
|
@ -1588,11 +1588,6 @@ class FlashAllTool {
|
|||
void FlashImages(const std::vector<std::pair<const Image*, std::string>>& images);
|
||||
void FlashImage(const Image& image, const std::string& slot, fastboot_buffer* buf);
|
||||
|
||||
// If the image uses the default slot, or the user specified "all", then
|
||||
// the paired string will be empty. If the image requests a specific slot
|
||||
// (for example, system_other) it is specified instead.
|
||||
using ImageEntry = std::pair<const Image*, std::string>;
|
||||
|
||||
std::vector<ImageEntry> boot_images_;
|
||||
std::vector<ImageEntry> os_images_;
|
||||
FlashingPlan* fp_;
|
||||
|
|
@ -1621,17 +1616,15 @@ void FlashAllTool::Flash() {
|
|||
// or in bootloader fastboot.
|
||||
FlashImages(boot_images_);
|
||||
|
||||
auto flash_super_task = FlashSuperLayoutTask::Initialize(fp_, os_images_);
|
||||
std::vector<std::unique_ptr<Task>> tasks;
|
||||
|
||||
if (flash_super_task) {
|
||||
flash_super_task->Run();
|
||||
if (auto flash_super_task = FlashSuperLayoutTask::Initialize(fp_, os_images_)) {
|
||||
tasks.emplace_back(std::move(flash_super_task));
|
||||
} else {
|
||||
// Sync the super partition. This will reboot to userspace fastboot if needed.
|
||||
std::unique_ptr<UpdateSuperTask> update_super_task = std::make_unique<UpdateSuperTask>(fp_);
|
||||
update_super_task->Run();
|
||||
tasks.emplace_back(std::make_unique<UpdateSuperTask>(fp_));
|
||||
// Resize any logical partition to 0, so each partition is reset to 0
|
||||
// extents, and will achieve more optimal allocation.
|
||||
std::vector<std::unique_ptr<ResizeTask>> resize_tasks;
|
||||
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
|
||||
|
|
@ -1641,18 +1634,15 @@ void FlashAllTool::Flash() {
|
|||
std::string partition_name = image->part_name + "_"s + slot;
|
||||
if (image->IsSecondary() && is_logical(partition_name)) {
|
||||
fp_->fb->DeletePartition(partition_name);
|
||||
std::unique_ptr<DeleteTask> delete_task =
|
||||
std::make_unique<DeleteTask>(fp_, partition_name);
|
||||
delete_task->Run();
|
||||
}
|
||||
tasks.emplace_back(std::make_unique<DeleteTask>(fp_, partition_name));
|
||||
}
|
||||
resize_tasks.emplace_back(
|
||||
std::make_unique<ResizeTask>(fp_, image->part_name, "0", slot));
|
||||
}
|
||||
for (auto& i : resize_tasks) {
|
||||
i->Run();
|
||||
tasks.emplace_back(std::make_unique<ResizeTask>(fp_, image->part_name, "0", slot));
|
||||
}
|
||||
}
|
||||
for (auto& task : tasks) {
|
||||
task->Run();
|
||||
}
|
||||
FlashImages(os_images_);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -20,11 +20,6 @@
|
|||
#include "super_flash_helper.h"
|
||||
|
||||
using namespace std::string_literals;
|
||||
|
||||
FlashTask::FlashTask(const std::string& slot, const std::string& pname, const bool apply_vbmeta)
|
||||
: pname_(pname), fname_(find_item(pname)), slot_(slot), apply_vbmeta_(apply_vbmeta) {
|
||||
if (fname_.empty()) die("cannot determine image filename for '%s'", pname_.c_str());
|
||||
}
|
||||
FlashTask::FlashTask(const std::string& _slot, const std::string& _pname, const std::string& _fname,
|
||||
const bool apply_vbmeta)
|
||||
: pname_(_pname), fname_(_fname), slot_(_slot), apply_vbmeta_(apply_vbmeta) {}
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ class Task {
|
|||
|
||||
class FlashTask : public Task {
|
||||
public:
|
||||
FlashTask(const std::string& slot, const std::string& pname, const bool apply_vbmeta);
|
||||
FlashTask(const std::string& slot, const std::string& pname, const std::string& fname,
|
||||
const bool apply_vbmeta);
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue