diff options
author | Jiyong Park <jiyong@google.com> | 2021-04-14 16:42:24 +0900 |
---|---|---|
committer | Jiyong Park <jiyong@google.com> | 2021-04-14 16:42:24 +0900 |
commit | da2d6ee7a266c0c8889e82ad40319c9762379391 (patch) | |
tree | 3fb1e1f0c4cbb4ea3130cb961ee8fbe97b73c989 /filesystem | |
parent | ff5cc064c23a4ceaaa28302234f52fdd15a90ff5 (diff) |
Truncate vbmeta to 64KB
libavb expects to be able to read the maximum vbmeta size, so we must
provide a partition which matches this or the read will fail.
Bug: 181923506
Test: m MicrodroidHostTestCases
libavb tries
Change-Id: Icc5b86ccd98e3ed9c4269e584f35dbfbdf1b0730
Diffstat (limited to 'filesystem')
-rw-r--r-- | filesystem/vbmeta.go | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/filesystem/vbmeta.go b/filesystem/vbmeta.go index f823387b0..3f16c0d71 100644 --- a/filesystem/vbmeta.go +++ b/filesystem/vbmeta.go @@ -110,6 +110,9 @@ func (v *vbmeta) partitionName() string { return proptools.StringDefault(v.properties.Partition_name, v.BaseModuleName()) } +// See external/avb/libavb/avb_slot_verify.c#VBMETA_MAX_SIZE +const vbmetaMaxSize = 64 * 1024 + func (v *vbmeta) GenerateAndroidBuildActions(ctx android.ModuleContext) { extractedPublicKeys := v.extractPublicKeys(ctx) @@ -172,6 +175,13 @@ func (v *vbmeta) GenerateAndroidBuildActions(ctx android.ModuleContext) { } cmd.FlagWithOutput("--output ", v.output) + + // libavb expects to be able to read the maximum vbmeta size, so we must provide a partition + // which matches this or the read will fail. + builder.Command().Text("truncate"). + FlagWithArg("-s ", strconv.Itoa(vbmetaMaxSize)). + Output(v.output) + builder.Build("vbmeta", fmt.Sprintf("vbmeta %s", ctx.ModuleName())) v.installDir = android.PathForModuleInstall(ctx, "etc") |