diff --git a/filesystem/avb_add_hash_footer.go b/filesystem/avb_add_hash_footer.go index dabbc461b..ead579fc4 100644 --- a/filesystem/avb_add_hash_footer.go +++ b/filesystem/avb_add_hash_footer.go @@ -25,6 +25,7 @@ import ( type avbAddHashFooter struct { android.ModuleBase + android.DefaultableModuleBase properties avbAddHashFooterProperties @@ -80,6 +81,7 @@ func avbAddHashFooterFactory() android.Module { module := &avbAddHashFooter{} module.AddProperties(&module.properties) android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibFirst) + android.InitDefaultableModule(module) return module } @@ -206,3 +208,19 @@ var _ android.SourceFileProducer = (*avbAddHashFooter)(nil) func (a *avbAddHashFooter) Srcs() android.Paths { return append(android.Paths{}, a.output) } + +type avbAddHashFooterDefaults struct { + android.ModuleBase + android.DefaultsModuleBase +} + +// avb_add_hash_footer_defaults provides a set of properties that can be inherited by other +// avb_add_hash_footer modules. A module can use the properties from an avb_add_hash_footer_defaults +// using `defaults: ["<:default_module_name>"]`. Properties of both modules are erged (when +// possible) by prepending the default module's values to the depending module's values. +func avbAddHashFooterDefaultsFactory() android.Module { + module := &avbAddHashFooterDefaults{} + module.AddProperties(&avbAddHashFooterProperties{}) + android.InitDefaultsModule(module) + return module +} diff --git a/filesystem/avb_gen_vbmeta_image.go b/filesystem/avb_gen_vbmeta_image.go index 0f331f923..985f0eac2 100644 --- a/filesystem/avb_gen_vbmeta_image.go +++ b/filesystem/avb_gen_vbmeta_image.go @@ -24,6 +24,7 @@ import ( type avbGenVbmetaImage struct { android.ModuleBase + android.DefaultableModuleBase properties avbGenVbmetaImageProperties @@ -47,6 +48,7 @@ func avbGenVbmetaImageFactory() android.Module { module := &avbGenVbmetaImage{} module.AddProperties(&module.properties) android.InitAndroidArchModule(module, android.DeviceSupported, android.MultilibFirst) + android.InitDefaultableModule(module) return module } @@ -106,3 +108,20 @@ func (a *avbGenVbmetaImage) OutputFiles(tag string) (android.Paths, error) { } return nil, fmt.Errorf("unsupported module reference tag %q", tag) } + +type avbGenVbmetaImageDefaults struct { + android.ModuleBase + android.DefaultsModuleBase +} + +// avb_gen_vbmeta_image_defaults provides a set of properties that can be inherited by other +// avb_gen_vbmeta_image modules. A module can use the properties from an +// avb_gen_vbmeta_image_defaults using `defaults: ["<:default_module_name>"]`. Properties of both +// modules are erged (when possible) by prepending the default module's values to the depending +// module's values. +func avbGenVbmetaImageDefaultsFactory() android.Module { + module := &avbGenVbmetaImageDefaults{} + module.AddProperties(&avbGenVbmetaImageProperties{}) + android.InitDefaultsModule(module) + return module +} diff --git a/filesystem/filesystem.go b/filesystem/filesystem.go index 3d491145b..7b207d6ce 100644 --- a/filesystem/filesystem.go +++ b/filesystem/filesystem.go @@ -36,7 +36,9 @@ func registerBuildComponents(ctx android.RegistrationContext) { ctx.RegisterModuleType("android_filesystem", filesystemFactory) ctx.RegisterModuleType("android_system_image", systemImageFactory) ctx.RegisterModuleType("avb_add_hash_footer", avbAddHashFooterFactory) + ctx.RegisterModuleType("avb_add_hash_footer_defaults", avbAddHashFooterDefaultsFactory) ctx.RegisterModuleType("avb_gen_vbmeta_image", avbGenVbmetaImageFactory) + ctx.RegisterModuleType("avb_gen_vbmeta_image_defaults", avbGenVbmetaImageDefaultsFactory) } type filesystem struct {