Ensure AVB rollback_index_location >= 1
Index 0 is reserved for the vbmeta partition.
This works even for chained vbmeta partitions
as the "father" index location is used instead
of the one bundled within the image description.
Test: aosp_arm64; m --soong-only
Change-Id: Ibb033878e4e56e77b1621a32ba1f2ba7d8ceeedd
diff --git a/filesystem/filesystem.go b/filesystem/filesystem.go
index 0ce31b2..9f2b239 100644
--- a/filesystem/filesystem.go
+++ b/filesystem/filesystem.go
@@ -131,7 +131,7 @@
// The index used to prevent rollback of the image. Only used if use_avb is true.
Rollback_index *int64
- // Rollback index location of this image. Must be 0, 1, 2, etc.
+ // Rollback index location of this image. Must be 1, 2, 3, etc.
Rollback_index_location *int64
// Name of the partition stored in vbmeta desc. Defaults to the name of this module.
diff --git a/filesystem/vbmeta.go b/filesystem/vbmeta.go
index 91826b2..e5809d3 100644
--- a/filesystem/vbmeta.go
+++ b/filesystem/vbmeta.go
@@ -97,7 +97,7 @@
// Name of the chained partition
Name *string
- // Rollback index location of the chained partition. Must be 0, 1, 2, etc. Default is the
+ // Rollback index location of the chained partition. Must be 1, 2, 3, etc. Default is the
// index of this partition in the list + 1.
Rollback_index_location *int64
@@ -225,8 +225,8 @@
}
ril := info.RollbackIndexLocation
- if ril < 0 {
- ctx.PropertyErrorf("chained_partitions", "rollback index location must be 0, 1, 2, ...")
+ if ril < 1 {
+ ctx.PropertyErrorf("chained_partitions", "rollback index location must be 1, 2, 3, ...")
continue
} else if seenRils[ril] {
ctx.PropertyErrorf("chained_partitions", "Multiple chained partitions with the same rollback index location %d", ril)
@@ -241,13 +241,13 @@
for _, cpm := range v.properties.Chained_partition_metadata {
name := proptools.String(cpm.Name)
if name == "" {
- ctx.PropertyErrorf("chained_partitions", "name must be specified")
+ ctx.PropertyErrorf("chained_partition_metadata", "name must be specified")
continue
}
- ril := proptools.IntDefault(cpm.Rollback_index_location, -1)
- if ril < 0 {
- ctx.PropertyErrorf("chained_partition_metadata", "rollback index location must be 0, 1, 2, ...")
+ ril := proptools.IntDefault(cpm.Rollback_index_location, 0)
+ if ril < 1 {
+ ctx.PropertyErrorf("chained_partition_metadata", "rollback index location must be 1, 2, 3, ...")
continue
} else if seenRils[ril] {
ctx.PropertyErrorf("chained_partition_metadata", "Multiple chained partitions with the same rollback index location %d", ril)