From 1bf169a34ce865e686feae2a239ac6c099b56f00 Mon Sep 17 00:00:00 2001 From: Spandan Das Date: Fri, 21 Mar 2025 16:56:06 +0000 Subject: Add `avb_custom_vbmeta_images_partition_list` to misc_info.txt Make generates this from `BOARD_AVB_VBMETA_CUSTOM_PARTITIONS`. To generate this in Soong, a new Filesytem_partition_type is added to vbmeta modules. For the chained vbmeta partitions for cuttlefish, this will be - system - vendor - system_dlkm - vendor_dlkm android_device will query this information from its vbmeta partitions, and filter out system and vendor. Bug: 398036609 Test: Built and diff'd misc_info.txt locally Change-Id: I8ff3fe5e5e50504e49abbf89f7d50be472e64e30 --- filesystem/android_device.go | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'filesystem/android_device.go') diff --git a/filesystem/android_device.go b/filesystem/android_device.go index 02bad0a3c..18276d43e 100644 --- a/filesystem/android_device.go +++ b/filesystem/android_device.go @@ -840,14 +840,25 @@ func (a *androidDevice) addMiscInfo(ctx android.ModuleContext) android.Path { Textf("echo avb_enable=true >> %s", miscInfo). Textf("&& echo avb_building_vbmeta_image=true >> %s", miscInfo). Textf("&& echo avb_avbtool=avbtool >> %s", miscInfo) + + var allChainedVbmetaPartitionTypes []string for _, vbmetaPartitionName := range a.partitionProps.Vbmeta_partitions { img := ctx.GetDirectDepProxyWithTag(vbmetaPartitionName, filesystemDepTag) if provider, ok := android.OtherModuleProvider(ctx, img, vbmetaPartitionProvider); ok { builder.Command().Text("cat").Input(provider.PropFileForMiscInfo).Textf(" >> %s", miscInfo) + if provider.FilesystemPartitionType != "" { // the top-level vbmeta.img + allChainedVbmetaPartitionTypes = append(allChainedVbmetaPartitionTypes, provider.FilesystemPartitionType) + } } else { ctx.ModuleErrorf("vbmeta dep %s does not set vbmetaPartitionProvider\n", vbmetaPartitionName) } } + // Determine the custom vbmeta partitions by removing system and vendor + customVbmetaPartitionTypes := android.RemoveListFromList(allChainedVbmetaPartitionTypes, []string{"system", "vendor"}) + builder.Command().Textf("echo avb_custom_vbmeta_images_partition_list=%s >> %s", + strings.Join(android.SortedUniqueStrings(customVbmetaPartitionTypes), " "), + miscInfo, + ) } if a.partitionProps.Boot_partition_name != nil { -- cgit v1.2.3-59-g8ed1b From a85dbb2bef1f34f0c08d1b418ca699aed43e91f9 Mon Sep 17 00:00:00 2001 From: Spandan Das Date: Fri, 21 Mar 2025 17:49:52 +0000 Subject: Add some OTA related properties to android_device These will be used to create misc_info.txt Bug: 398036609 Test: Built and diff'd Make and Soong misc_info.txt Change-Id: I53cd4f409c9a3a706165119c0d01f1ced5542a2b --- android/variable.go | 4 ++++ filesystem/android_device.go | 12 ++++++++++++ fsgen/filesystem_creator.go | 17 ++++++++++------- 3 files changed, 26 insertions(+), 7 deletions(-) (limited to 'filesystem/android_device.go') diff --git a/android/variable.go b/android/variable.go index c59857ad9..7eb08a08a 100644 --- a/android/variable.go +++ b/android/variable.go @@ -721,6 +721,10 @@ type PartitionVariables struct { ReleaseToolsExtensionDir string `json:",omitempty"` + BoardPartialOtaUpdatePartitionsList []string `json:",omitempty"` + BoardFlashBlockSize string `json:",omitempty"` + BootloaderInUpdatePackage bool `json:",omitempty"` + BoardFastbootInfoFile string `json:",omitempty"` } diff --git a/filesystem/android_device.go b/filesystem/android_device.go index 18276d43e..8af0fdff6 100644 --- a/filesystem/android_device.go +++ b/filesystem/android_device.go @@ -90,6 +90,10 @@ type DeviceProperties struct { Releasetools_extension *string `android:"path"` FastbootInfo *string `android:"path"` + Partial_ota_update_partitions []string + Flash_block_size *string + Bootloader_in_update_package *bool + // The kernel version in the build. Will be verified against the actual kernel. // If not provided, will attempt to extract it from the loose kernel or the kernel inside // the boot image. The version is later used to decide whether or not to enable uffd_gc @@ -894,6 +898,14 @@ func (a *androidDevice) addMiscInfo(ctx android.ModuleContext) android.Path { builder.Command().Text("cat").Input(bootImgInfo.PropFileForMiscInfo).Textf(" >> %s", miscInfo) } + builder.Command().Textf("echo blocksize=%s >> %s", proptools.String(a.deviceProps.Flash_block_size), miscInfo) + if proptools.Bool(a.deviceProps.Bootloader_in_update_package) { + builder.Command().Textf("echo bootloader_in_update_package=true >> %s", miscInfo) + } + if len(a.deviceProps.Partial_ota_update_partitions) > 0 { + builder.Command().Textf("echo partial_ota_update_partitions_list=%s >> %s", strings.Join(a.deviceProps.Partial_ota_update_partitions, " "), miscInfo) + } + // Sort and dedup builder.Command().Textf("sort -u %s -o %s", miscInfo, miscInfo) diff --git a/fsgen/filesystem_creator.go b/fsgen/filesystem_creator.go index b73fb219f..14aa062fc 100644 --- a/fsgen/filesystem_creator.go +++ b/fsgen/filesystem_creator.go @@ -419,13 +419,16 @@ func (f *filesystemCreator) createDeviceModule( partitionProps.Vbmeta_partitions = vbmetaPartitions deviceProps := &filesystem.DeviceProperties{ - Main_device: proptools.BoolPtr(true), - Ab_ota_updater: proptools.BoolPtr(ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse.AbOtaUpdater), - Ab_ota_partitions: ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse.AbOtaPartitions, - Ab_ota_postinstall_config: ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse.AbOtaPostInstallConfig, - Ramdisk_node_list: proptools.StringPtr(":ramdisk_node_list"), - Android_info: proptools.StringPtr(":" + generatedModuleName(ctx.Config(), "android_info.prop{.txt}")), - Kernel_version: ctx.Config().ProductVariables().BoardKernelVersion, + Main_device: proptools.BoolPtr(true), + Ab_ota_updater: proptools.BoolPtr(ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse.AbOtaUpdater), + Ab_ota_partitions: ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse.AbOtaPartitions, + Ab_ota_postinstall_config: ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse.AbOtaPostInstallConfig, + Ramdisk_node_list: proptools.StringPtr(":ramdisk_node_list"), + Android_info: proptools.StringPtr(":" + generatedModuleName(ctx.Config(), "android_info.prop{.txt}")), + Kernel_version: ctx.Config().ProductVariables().BoardKernelVersion, + Partial_ota_update_partitions: ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse.BoardPartialOtaUpdatePartitionsList, + Flash_block_size: proptools.StringPtr(ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse.BoardFlashBlockSize), + Bootloader_in_update_package: proptools.BoolPtr(ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse.BootloaderInUpdatePackage), } if bootloader, ok := f.createBootloaderFilegroup(ctx); ok { -- cgit v1.2.3-59-g8ed1b