diff options
author | 2025-02-08 12:09:34 +0100 | |
---|---|---|
committer | 2025-02-11 11:45:30 +0100 | |
commit | 9235f4c4c3268e45082574b4f7c6835fcff7ec61 (patch) | |
tree | 15001e2fd97e4ad63c10ed2348622fddf54b48ad | |
parent | 328b0a755398aaaf17a7a6474aeb065b847afb0d (diff) |
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
-rw-r--r-- | filesystem/filesystem.go | 2 | ||||
-rw-r--r-- | filesystem/vbmeta.go | 14 |
2 files changed, 8 insertions, 8 deletions
diff --git a/filesystem/filesystem.go b/filesystem/filesystem.go index 0ce31b293..9f2b239a0 100644 --- a/filesystem/filesystem.go +++ b/filesystem/filesystem.go @@ -131,7 +131,7 @@ type FilesystemProperties struct { // 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 91826b244..e5809d31b 100644 --- a/filesystem/vbmeta.go +++ b/filesystem/vbmeta.go @@ -97,7 +97,7 @@ type ChainedPartitionProperties struct { // 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 @@ func (v *vbmeta) GenerateAndroidBuildActions(ctx android.ModuleContext) { } 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 @@ func (v *vbmeta) GenerateAndroidBuildActions(ctx android.ModuleContext) { 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) |