Added support for Resize Task
Test: tested flashall on raven Bug: 194686221 Change-Id: I60586756b2d5f99848a664def8204c0bd47d7e67
This commit is contained in:
parent
6bb8baa929
commit
9f7bf7eff3
|
@ -1631,13 +1631,13 @@ void FlashAllTool::Flash() {
|
|||
update_super_task->Run();
|
||||
// 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_) {
|
||||
auto resize_partition = [](const std::string& partition) -> void {
|
||||
if (is_logical(partition)) {
|
||||
fb->ResizePartition(partition, "0");
|
||||
}
|
||||
};
|
||||
do_for_partitions(image->part_name, slot, resize_partition, false);
|
||||
resize_tasks.emplace_back(
|
||||
std::make_unique<ResizeTask>(fp_, image->part_name, "0", slot));
|
||||
}
|
||||
for (auto& i : resize_tasks) {
|
||||
i->Run();
|
||||
}
|
||||
}
|
||||
FlashImages(os_images_);
|
||||
|
@ -2356,7 +2356,9 @@ int FastBootTool::Main(int argc, char* argv[]) {
|
|||
} else if (command == FB_CMD_RESIZE_PARTITION) {
|
||||
std::string partition = next_arg(&args);
|
||||
std::string size = next_arg(&args);
|
||||
fb->ResizePartition(partition, size);
|
||||
std::unique_ptr<ResizeTask> resize_task =
|
||||
std::make_unique<ResizeTask>(fp.get(), partition, size, slot_override);
|
||||
resize_task->Run();
|
||||
} else if (command == "gsi") {
|
||||
std::string arg = next_arg(&args);
|
||||
if (arg == "wipe") {
|
||||
|
|
|
@ -167,3 +167,16 @@ void UpdateSuperTask::Run() {
|
|||
}
|
||||
fp_->fb->RawCommand(command, "Updating super partition");
|
||||
}
|
||||
|
||||
ResizeTask::ResizeTask(FlashingPlan* fp, const std::string& pname, const std::string& size,
|
||||
const std::string& slot)
|
||||
: fp_(fp), pname_(pname), size_(size), slot_(slot) {}
|
||||
|
||||
void ResizeTask::Run() {
|
||||
auto resize_partition = [this](const std::string& partition) -> void {
|
||||
if (is_logical(partition)) {
|
||||
fp_->fb->ResizePartition(partition, size_);
|
||||
}
|
||||
};
|
||||
do_for_partitions(pname_, slot_, resize_partition, false);
|
||||
}
|
||||
|
|
|
@ -79,3 +79,16 @@ class UpdateSuperTask : public Task {
|
|||
private:
|
||||
FlashingPlan* fp_;
|
||||
};
|
||||
|
||||
class ResizeTask : public Task {
|
||||
public:
|
||||
ResizeTask(FlashingPlan* fp, const std::string& pname, const std::string& size,
|
||||
const std::string& slot);
|
||||
void Run() override;
|
||||
|
||||
private:
|
||||
FlashingPlan* fp_;
|
||||
const std::string pname_;
|
||||
const std::string size_;
|
||||
const std::string slot_;
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue