summaryrefslogtreecommitdiff
path: root/fsgen/filesystem_creator.go
diff options
context:
space:
mode:
author Cole Faust <colefaust@google.com> 2025-01-10 10:29:36 -0800
committer Cole Faust <colefaust@google.com> 2025-01-13 13:14:10 -0800
commit2bdc5e5f3428364fb8f88333fa3d3253f4b67ab8 (patch)
tree1385895d3b232996f692f34ba26513fd6194df89 /fsgen/filesystem_creator.go
parent973ace7723cb13db6abd64b07c7bc651464a0e95 (diff)
Reapply "Add super.img to android_device"
This reverts commit 4173c5bed6853af9a6ca44b1dcfafb6bb5848b43. This resubmission moves the check that all partitions are specified to execution time, because on aosp-main-future-without-vendor BUILDING_VENDOR_IMAGE is false while BOARD_GOOGLE_DYNAMIC_PARTITIONS_PARTITION_LIST still lists the vendor partition. Bug: 376727180 Test: Presubmits Change-Id: I485574c98ba78f7eea3878135ff71fd6da94587e
Diffstat (limited to 'fsgen/filesystem_creator.go')
-rw-r--r--fsgen/filesystem_creator.go25
1 files changed, 15 insertions, 10 deletions
diff --git a/fsgen/filesystem_creator.go b/fsgen/filesystem_creator.go
index a070e014e..9d61a60a2 100644
--- a/fsgen/filesystem_creator.go
+++ b/fsgen/filesystem_creator.go
@@ -161,13 +161,14 @@ func (f *filesystemCreator) createInternalModules(ctx android.LoadHookContext) {
f.properties.Vbmeta_partition_names = append(f.properties.Vbmeta_partition_names, x.partitionName)
}
+ var superImageSubpartitions []string
if buildingSuperImage(partitionVars) {
- createSuperImage(ctx, finalSoongGeneratedPartitions, partitionVars)
+ superImageSubpartitions = createSuperImage(ctx, finalSoongGeneratedPartitions, partitionVars)
f.properties.Super_image = ":" + generatedModuleNameForPartition(ctx.Config(), "super")
}
ctx.Config().Get(fsGenStateOnceKey).(*FsGenState).soongGeneratedPartitions = finalSoongGeneratedPartitions
- f.createDeviceModule(ctx, finalSoongGeneratedPartitions, f.properties.Vbmeta_module_names)
+ f.createDeviceModule(ctx, finalSoongGeneratedPartitions, f.properties.Vbmeta_module_names, superImageSubpartitions)
}
func generatedModuleName(cfg android.Config, suffix string) string {
@@ -206,6 +207,7 @@ func (f *filesystemCreator) createDeviceModule(
ctx android.LoadHookContext,
generatedPartitionTypes []string,
vbmetaPartitions []string,
+ superImageSubPartitions []string,
) {
baseProps := &struct {
Name *string
@@ -217,19 +219,22 @@ func (f *filesystemCreator) createDeviceModule(
// Currently, only the system and system_ext partition module is created.
partitionProps := &filesystem.PartitionNameProperties{}
- if android.InList("system", generatedPartitionTypes) {
+ if f.properties.Super_image != "" {
+ partitionProps.Super_partition_name = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "super"))
+ }
+ if android.InList("system", generatedPartitionTypes) && !android.InList("system", superImageSubPartitions) {
partitionProps.System_partition_name = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "system"))
}
- if android.InList("system_ext", generatedPartitionTypes) {
+ if android.InList("system_ext", generatedPartitionTypes) && !android.InList("system_ext", superImageSubPartitions) {
partitionProps.System_ext_partition_name = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "system_ext"))
}
- if android.InList("vendor", generatedPartitionTypes) {
+ if android.InList("vendor", generatedPartitionTypes) && !android.InList("vendor", superImageSubPartitions) {
partitionProps.Vendor_partition_name = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "vendor"))
}
- if android.InList("product", generatedPartitionTypes) {
+ if android.InList("product", generatedPartitionTypes) && !android.InList("product", superImageSubPartitions) {
partitionProps.Product_partition_name = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "product"))
}
- if android.InList("odm", generatedPartitionTypes) {
+ if android.InList("odm", generatedPartitionTypes) && !android.InList("odm", superImageSubPartitions) {
partitionProps.Odm_partition_name = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "odm"))
}
if android.InList("userdata", f.properties.Generated_partition_types) {
@@ -238,13 +243,13 @@ func (f *filesystemCreator) createDeviceModule(
if android.InList("recovery", f.properties.Generated_partition_types) {
partitionProps.Recovery_partition_name = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "recovery"))
}
- if android.InList("system_dlkm", f.properties.Generated_partition_types) {
+ if android.InList("system_dlkm", f.properties.Generated_partition_types) && !android.InList("system_dlkm", superImageSubPartitions) {
partitionProps.System_dlkm_partition_name = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "system_dlkm"))
}
- if android.InList("vendor_dlkm", f.properties.Generated_partition_types) {
+ if android.InList("vendor_dlkm", f.properties.Generated_partition_types) && !android.InList("vendor_dlkm", superImageSubPartitions) {
partitionProps.Vendor_dlkm_partition_name = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "vendor_dlkm"))
}
- if android.InList("odm_dlkm", f.properties.Generated_partition_types) {
+ if android.InList("odm_dlkm", f.properties.Generated_partition_types) && !android.InList("odm_dlkm", superImageSubPartitions) {
partitionProps.Odm_dlkm_partition_name = proptools.StringPtr(generatedModuleNameForPartition(ctx.Config(), "odm_dlkm"))
}
if f.properties.Boot_image != "" {