bootimg supports v4 header
It's the latest version of android boot image header which supports
bootconfig. Bootconfig parameters are now passed via `bootconfig`
property.
Bug: 181936566
Test: m microdroid_boot
Change-Id: Iff8697434f7502fe56fca5bce5573e53f2f6ac60
diff --git a/filesystem/bootimg.go b/filesystem/bootimg.go
index 764f045..4e58737 100644
--- a/filesystem/bootimg.go
+++ b/filesystem/bootimg.go
@@ -62,6 +62,10 @@
// Optional kernel commandline
Cmdline *string
+ // File that contains bootconfig parameters. This can be set only when `vendor_boot` is true
+ // and `header_version` is greater than or equal to 4.
+ Bootconfig *string `android:"arch_variant,path"`
+
// When set to true, sign the image with avbtool. Default is false.
Use_avb *bool
@@ -189,6 +193,19 @@
return output
}
+ bootconfig := proptools.String(b.properties.Bootconfig)
+ if bootconfig != "" {
+ if !vendor {
+ ctx.PropertyErrorf("bootconfig", "requires vendor_boot: true")
+ return output
+ }
+ if verNum < 4 {
+ ctx.PropertyErrorf("bootconfig", "requires header_version: 4 or later")
+ return output
+ }
+ cmd.FlagWithInput("--vendor_bootconfig ", android.PathForModuleSrc(ctx, bootconfig))
+ }
+
flag := "--output "
if vendor {
flag = "--vendor_boot "