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
This commit is contained in:
Jiyong Park 2021-03-05 18:58:29 +09:00
parent 6d3e726887
commit 81aea9a0f2

View file

@ -62,6 +62,10 @@ type bootimgProperties struct {
// 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 @@ func (b *bootimg) buildBootImage(ctx android.ModuleContext, vendor bool) android
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 "