Merge changes from topic "logtags_filesystem_module" into main

* changes:
  Add logtags support to filesystem module
  Export app's logtags too
This commit is contained in:
Inseob Kim
2024-05-03 11:20:12 +00:00
committed by Gerrit Code Review
2 changed files with 39 additions and 0 deletions

View File

@@ -127,6 +127,10 @@ type filesystemProperties struct {
// the make version.
Include_make_built_files string
// When set, builds etc/event-log-tags file by merging logtags from all dependencies.
// Default is false
Build_logtags *bool
Fsverity fsverityProperties
}
@@ -288,6 +292,7 @@ func (f *filesystem) buildImageUsingBuildImage(ctx android.ModuleContext) androi
f.buildNonDepsFiles(ctx, builder, rootDir)
f.addMakeBuiltFiles(ctx, builder, rootDir)
f.buildFsverityMetadataFiles(ctx, builder, specs, rootDir, rebasedDir)
f.buildEventLogtagsFile(ctx, builder, rebasedDir)
// run host_init_verifier
// Ideally we should have a concept of pluggable linters that verify the generated image.
@@ -428,6 +433,7 @@ func (f *filesystem) buildCpioImage(ctx android.ModuleContext, compressed bool)
f.buildNonDepsFiles(ctx, builder, rootDir)
f.buildFsverityMetadataFiles(ctx, builder, specs, rootDir, rebasedDir)
f.buildEventLogtagsFile(ctx, builder, rebasedDir)
output := android.PathForModuleOut(ctx, f.installFileName()).OutputPath
cmd := builder.Command().
@@ -485,6 +491,37 @@ func (f *filesystem) addMakeBuiltFiles(ctx android.ModuleContext, builder *andro
Text(android.PathForArbitraryOutput(ctx, stagingDir).String())
}
func (f *filesystem) buildEventLogtagsFile(ctx android.ModuleContext, builder *android.RuleBuilder, rebasedDir android.OutputPath) {
if !proptools.Bool(f.properties.Build_logtags) {
return
}
logtagsFilePaths := make(map[string]bool)
ctx.WalkDeps(func(child, parent android.Module) bool {
if logtagsInfo, ok := android.OtherModuleProvider(ctx, child, android.LogtagsProviderKey); ok {
for _, path := range logtagsInfo.Logtags {
logtagsFilePaths[path.String()] = true
}
}
return true
})
if len(logtagsFilePaths) == 0 {
return
}
etcPath := rebasedDir.Join(ctx, "etc")
eventLogtagsPath := etcPath.Join(ctx, "event-log-tags")
builder.Command().Text("mkdir").Flag("-p").Text(etcPath.String())
cmd := builder.Command().BuiltTool("merge-event-log-tags").
FlagWithArg("-o ", eventLogtagsPath.String()).
FlagWithInput("-m ", android.MergedLogtagsPath(ctx))
for _, path := range android.SortedKeys(logtagsFilePaths) {
cmd.Text(path)
}
}
type partition interface {
PartitionType() string
}

View File

@@ -453,6 +453,8 @@ func (app *AndroidApp) AndroidMkEntries() []android.AndroidMkEntries {
if app.Name() != "framework-res" {
android.SetAconfigFileMkEntries(&app.ModuleBase, entries, app.mergedAconfigFiles)
}
entries.AddStrings("LOCAL_SOONG_LOGTAGS_FILES", app.logtagsSrcs.Strings()...)
},
},
ExtraFooters: []android.AndroidMkExtraFootersFunc{