Add dynamic_partition_metadata to update manifest
At build time, it will be filled with BOARD_SUPER_PARTITION_GROUPS,
BOARD_*_SIZE, and BOARD_*_PARTITION_LIST.
Only the information from the new target_files package is used. The
META/dynamic_partition_info.txt from old target_files is ignored.
Test: builds and manual OTA
Bug: 117182932
Change-Id: I02ce99caaf7d01cec1470f7262c45490c15dfcb7
diff --git a/update_metadata.proto b/update_metadata.proto
index f90ec3c..42e7654 100644
--- a/update_metadata.proto
+++ b/update_metadata.proto
@@ -273,6 +273,29 @@
optional uint32 fec_roots = 16 [default = 2];
}
+message DynamicPartitionGroup {
+ // Name of the group.
+ required string name = 1;
+
+ // Maximum size of the group. The sum of sizes of all partitions in the group
+ // must not exceed the maximum size of the group.
+ optional uint64 size = 2;
+
+ // A list of partitions that belong to the group.
+ repeated string partition_names = 3;
+}
+
+// Metadata related to all dynamic partitions.
+message DynamicPartitionMetadata {
+ // All updateable groups present in |partitions| of this DeltaArchiveManifest.
+ // - If an updatable group is on the device but not in the manifest, it is
+ // not updated. Hence, the group will not be resized, and partitions cannot
+ // be added to or removed from the group.
+ // - If an updatable group is in the manifest but not on the device, the group
+ // is added to the device.
+ repeated DynamicPartitionGroup groups = 1;
+}
+
message DeltaArchiveManifest {
// Only present in major version = 1. List of install operations for the
// kernel and rootfs partitions. For major version = 2 see the |partitions|
@@ -317,4 +340,7 @@
// The maximum timestamp of the OS allowed to apply this payload.
// Can be used to prevent downgrading the OS.
optional int64 max_timestamp = 14;
+
+ // Metadata related to all dynamic partitions.
+ optional DynamicPartitionMetadata dynamic_partition_metadata = 15;
}