Merge "Add flag to disable super optimization"
diff --git a/fastboot/fastboot.cpp b/fastboot/fastboot.cpp
index faaca1d..42d4f60 100644
--- a/fastboot/fastboot.cpp
+++ b/fastboot/fastboot.cpp
@@ -2191,6 +2191,7 @@
{"cmdline", required_argument, 0, 0},
{"disable-verification", no_argument, 0, 0},
{"disable-verity", no_argument, 0, 0},
+ {"disable-super-optimization", no_argument, 0, 0},
{"force", no_argument, 0, 0},
{"fs-options", required_argument, 0, 0},
{"header-version", required_argument, 0, 0},
@@ -2228,6 +2229,8 @@
g_disable_verification = true;
} else if (name == "disable-verity") {
g_disable_verity = true;
+ } else if (name == "disable-super-optimization") {
+ fp->should_optimize_flash_super = false;
} else if (name == "force") {
fp->force_flash = true;
} else if (name == "fs-options") {
diff --git a/fastboot/fastboot.h b/fastboot/fastboot.h
index 4b48d4a..ae488d8 100644
--- a/fastboot/fastboot.h
+++ b/fastboot/fastboot.h
@@ -96,6 +96,7 @@
bool wants_set_active = false;
bool skip_secondary = false;
bool force_flash = false;
+ bool should_optimize_flash_super = true;
std::string slot_override;
std::string current_slot;
diff --git a/fastboot/task.cpp b/fastboot/task.cpp
index 03f9b89..96b952c 100644
--- a/fastboot/task.cpp
+++ b/fastboot/task.cpp
@@ -124,6 +124,10 @@
std::unique_ptr<FlashSuperLayoutTask> FlashSuperLayoutTask::Initialize(
const FlashingPlan* fp, std::vector<ImageEntry>& os_images) {
+ if (!fp->should_optimize_flash_super) {
+ LOG(INFO) << "super optimization is disabled";
+ return nullptr;
+ }
if (!supports_AB()) {
LOG(VERBOSE) << "Cannot optimize flashing super on non-AB device";
return nullptr;
@@ -188,6 +192,10 @@
std::unique_ptr<FlashSuperLayoutTask> FlashSuperLayoutTask::InitializeFromTasks(
const FlashingPlan* fp, std::vector<std::unique_ptr<Task>>& tasks) {
+ if (!fp->should_optimize_flash_super) {
+ LOG(INFO) << "super optimization is disabled";
+ return nullptr;
+ }
if (!supports_AB()) {
LOG(VERBOSE) << "Cannot optimize flashing super on non-AB device";
return nullptr;