From 21643c6a89a2ece5cd9a16535a46e10162f585ba Mon Sep 17 00:00:00 2001 From: Spandan Das Date: Tue, 18 Mar 2025 22:24:34 +0000 Subject: Add system_other partition props to Soong's misc_info.txt Implementation Details - Expand FilesystemInfo with some Avb* props. `system_other` will use this info exported by `system` to create system_other entries for misc_info.txt. This is necessary since system_other does not contain sufficient information to create a standalone buildPropFile, and reuses the buildPropFile of system in `build_image` invocation - Harcode rollback_index to the timestamp parsed from `PlatformSecurityPatch`. Most products (including cuttlefish) do not use a product config variable to override the rollback_index. Eventually, we should dynamically get this value from one of the vbmeta partitions. Bug: 398036609 Test: Built Make and Soong misc_info.txt Test: No diff in system_other entries Change-Id: Iadb0ee34d948cb15cd5a59b0dff7bf7fc64024ed --- filesystem/filesystem.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'filesystem/filesystem.go') diff --git a/filesystem/filesystem.go b/filesystem/filesystem.go index af14e811a..411770be9 100644 --- a/filesystem/filesystem.go +++ b/filesystem/filesystem.go @@ -455,6 +455,14 @@ type FilesystemInfo struct { HasFsverity bool PropFileForMiscInfo android.Path + + // Additional avb and partition size information. + // `system_other` will use this information of `system` dep for misc_info.txt processing. + PartitionSize *int64 + UseAvb bool + AvbAlgorithm string + AvbHashAlgorithm string + AvbKey android.Path } // FullInstallPathInfo contains information about the "full install" paths of all the files @@ -711,6 +719,15 @@ func (f *filesystem) GenerateAndroidBuildActions(ctx android.ModuleContext) { Owners: f.gatherOwners(specs), HasFsverity: f.properties.Fsverity.Inputs.GetOrDefault(ctx, nil) != nil, PropFileForMiscInfo: propFileForMiscInfo, + PartitionSize: f.properties.Partition_size, + } + if proptools.Bool(f.properties.Use_avb) { + fsInfo.UseAvb = true + fsInfo.AvbAlgorithm = proptools.StringDefault(f.properties.Avb_algorithm, "SHA256_RSA4096") + fsInfo.AvbHashAlgorithm = proptools.StringDefault(f.properties.Avb_hash_algorithm, "sha256") + if f.properties.Avb_private_key != nil { + fsInfo.AvbKey = android.PathForModuleSrc(ctx, *f.properties.Avb_private_key) + } } android.SetProvider(ctx, FilesystemProvider, fsInfo) -- cgit v1.2.3-59-g8ed1b