From 81aea9a0f2eb5d00d54e9bca3ceac883ef86cc6d Mon Sep 17 00:00:00 2001 From: Jiyong Park Date: Fri, 5 Mar 2021 18:58:29 +0900 Subject: [PATCH] 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 --- filesystem/bootimg.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/filesystem/bootimg.go b/filesystem/bootimg.go index 764f0452b..4e587377e 100644 --- a/filesystem/bootimg.go +++ b/filesystem/bootimg.go @@ -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 "