diff options
| -rw-r--r-- | android/variable.go | 1 | ||||
| -rw-r--r-- | filesystem/android_device.go | 17 | ||||
| -rw-r--r-- | fsgen/filesystem_creator.go | 5 |
3 files changed, 15 insertions, 8 deletions
diff --git a/android/variable.go b/android/variable.go index 4867067b0..419f778a3 100644 --- a/android/variable.go +++ b/android/variable.go @@ -664,6 +664,7 @@ type PartitionVariables struct { ProductVirtualAbCompressionFactor string `json:",omitempty"` ProductVirtualAbCowVersion string `json:",omitempty"` AbOtaUpdater bool `json:",omitempty"` + AbOtaPartitions []string `json:",omitempty"` // Avb (android verified boot) stuff BoardAvbEnable bool `json:",omitempty"` diff --git a/filesystem/android_device.go b/filesystem/android_device.go index 7e4beeaf8..d42927a6e 100644 --- a/filesystem/android_device.go +++ b/filesystem/android_device.go @@ -70,7 +70,8 @@ type DeviceProperties struct { // blueprint:"mutated" and still set it from filesystem_creator Main_device *bool - Ab_ota_updater *bool + Ab_ota_updater *bool + Ab_ota_partitions []string } type androidDevice struct { @@ -439,11 +440,15 @@ func (a *androidDevice) copyMetadataToTargetZip(ctx android.ModuleContext, build info, _ := android.OtherModuleProvider(ctx, child, android.OutputFilesProvider) builder.Command().Textf("cp").Inputs(info.DefaultOutputFiles).Textf(" %s/META/", targetFilesDir.String()) }) - } - builder.Command().Textf("cp").Input(android.PathForSource(ctx, "external/zucchini/version_info.h")).Textf(" %s/META/zucchini_config.txt", targetFilesDir.String()) - builder.Command().Textf("cp").Input(android.PathForSource(ctx, "system/update_engine/update_engine.conf")).Textf(" %s/META/update_engine_config.txt", targetFilesDir.String()) - if a.getFsInfos(ctx)["system"].ErofsCompressHints != nil { - builder.Command().Textf("cp").Input(a.getFsInfos(ctx)["system"].ErofsCompressHints).Textf(" %s/META/erofs_default_compress_hints.txt", targetFilesDir.String()) + builder.Command().Textf("cp").Input(android.PathForSource(ctx, "external/zucchini/version_info.h")).Textf(" %s/META/zucchini_config.txt", targetFilesDir.String()) + builder.Command().Textf("cp").Input(android.PathForSource(ctx, "system/update_engine/update_engine.conf")).Textf(" %s/META/update_engine_config.txt", targetFilesDir.String()) + if a.getFsInfos(ctx)["system"].ErofsCompressHints != nil { + builder.Command().Textf("cp").Input(a.getFsInfos(ctx)["system"].ErofsCompressHints).Textf(" %s/META/erofs_default_compress_hints.txt", targetFilesDir.String()) + } + // ab_partitions.txt + abPartitionsSorted := android.SortedUniqueStrings(a.deviceProps.Ab_ota_partitions) + abPartitionsSortedString := proptools.ShellEscape(strings.Join(abPartitionsSorted, "\\n")) + builder.Command().Textf("echo -e").Flag(abPartitionsSortedString).Textf(" > %s/META/ab_partitions.txt", targetFilesDir.String()) } } diff --git a/fsgen/filesystem_creator.go b/fsgen/filesystem_creator.go index 2c2da1772..9217e1c33 100644 --- a/fsgen/filesystem_creator.go +++ b/fsgen/filesystem_creator.go @@ -381,8 +381,9 @@ 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), + Main_device: proptools.BoolPtr(true), + Ab_ota_updater: proptools.BoolPtr(ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse.AbOtaUpdater), + Ab_ota_partitions: ctx.Config().ProductVariables().PartitionVarsForSoongMigrationOnlyDoNotUse.AbOtaPartitions, } if bootloader, ok := f.createBootloaderFilegroup(ctx); ok { deviceProps.Bootloader = proptools.StringPtr(":" + bootloader) |