summaryrefslogtreecommitdiff
path: root/filesystem/filesystem.go
diff options
context:
space:
mode:
author Cole Faust <colefaust@google.com> 2024-10-04 06:13:41 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2024-10-04 06:13:41 +0000
commitdd1e1a21032eccc5a5f26576dfc21b2d990868ce (patch)
tree214d931be8f90e9eeff2ab4a71ddae8dffea8e07 /filesystem/filesystem.go
parentde9babfc6409f8cfd82052b7fbceac737e4233a2 (diff)
parent2cf1bf5624c8048b960b9e0ec27a7677739049ae (diff)
Merge "Create soong-generated filesystem diff test" into main
Diffstat (limited to 'filesystem/filesystem.go')
-rw-r--r--filesystem/filesystem.go15
1 files changed, 13 insertions, 2 deletions
diff --git a/filesystem/filesystem.go b/filesystem/filesystem.go
index a26fac7fc..14501bb66 100644
--- a/filesystem/filesystem.go
+++ b/filesystem/filesystem.go
@@ -35,7 +35,7 @@ func init() {
}
func registerBuildComponents(ctx android.RegistrationContext) {
- ctx.RegisterModuleType("android_filesystem", filesystemFactory)
+ ctx.RegisterModuleType("android_filesystem", FilesystemFactory)
ctx.RegisterModuleType("android_filesystem_defaults", filesystemDefaultsFactory)
ctx.RegisterModuleType("android_system_image", SystemImageFactory)
ctx.RegisterModuleType("avb_add_hash_footer", avbAddHashFooterFactory)
@@ -144,7 +144,7 @@ type FilesystemProperties struct {
// modules in the filesystem image are built for the target device (i.e. Android, not Linux host).
// The modules are placed in the filesystem image just like they are installed to the ordinary
// partitions like system.img. For example, cc_library modules are placed under ./lib[64] directory.
-func filesystemFactory() android.Module {
+func FilesystemFactory() android.Module {
module := &filesystem{}
module.filterPackagingSpec = module.filterInstallablePackagingSpec
initFilesystemModule(module, module)
@@ -177,6 +177,13 @@ const (
unknown
)
+type FilesystemInfo struct {
+ // A text file containing the list of paths installed on the partition.
+ FileListFile android.Path
+}
+
+var FilesystemProvider = blueprint.NewProvider[FilesystemInfo]()
+
func (f *filesystem) fsType(ctx android.ModuleContext) fsType {
typeStr := proptools.StringDefault(f.properties.Type, "ext4")
switch typeStr {
@@ -227,6 +234,10 @@ func (f *filesystem) GenerateAndroidBuildActions(ctx android.ModuleContext) {
f.fileListFile = android.PathForModuleOut(ctx, "fileList").OutputPath
android.WriteFileRule(ctx, f.fileListFile, f.installedFilesList())
+
+ android.SetProvider(ctx, FilesystemProvider, FilesystemInfo{
+ FileListFile: f.fileListFile,
+ })
}
func (f *filesystem) appendToEntry(ctx android.ModuleContext, installedFile android.OutputPath) {