fastbootd: Add commands for logical partitions.
This patch adds the following new commands to fastbootd:
getvar is_logical:<partition>
create-logical-logical-partition <partition> <size>
delete-logical-partition <partition>
resize-logicallogical-partition <partition> <size>
All of these commands operate on logical partitions only, and require a
properly configured "super" partition to operate.
Bug: 78793464
Test: fastboot create-logical-partition example 4096
fastboot create-logical-partition example 4096 returns error
fastboot getvar is-logical:example returns "yes"
fastboot getvar partition-size:example returns "1000"
fastboot resize-logicalpartition example 8000
fastboot getvar partition-size:example returns "2000"
fastboot delete-logical-partition example
fastboot getvar is-logical:example returns error
fastboot getvar is-logical:system_a returns "no"
Change-Id: Iff323eabcf5c559fa04c7c92574650b01803eb1f
diff --git a/fastboot/engine.cpp b/fastboot/engine.cpp
index 63ee2af..6890643 100644
--- a/fastboot/engine.cpp
+++ b/fastboot/engine.cpp
@@ -155,6 +155,21 @@
total);
}
+void fb_queue_create_partition(const std::string& partition, const std::string& size) {
+ Action& a = queue_action(OP_COMMAND, FB_CMD_CREATE_PARTITION ":" + partition + ":" + size);
+ a.msg = "Creating '" + partition + "'";
+}
+
+void fb_queue_delete_partition(const std::string& partition) {
+ Action& a = queue_action(OP_COMMAND, FB_CMD_DELETE_PARTITION ":" + partition);
+ a.msg = "Deleting '" + partition + "'";
+}
+
+void fb_queue_resize_partition(const std::string& partition, const std::string& size) {
+ Action& a = queue_action(OP_COMMAND, FB_CMD_RESIZE_PARTITION ":" + partition + ":" + size);
+ a.msg = "Resizing '" + partition + "'";
+}
+
static int match(const char* str, const char** value, unsigned count) {
unsigned n;