Copy selinux_fc file to target_files.zip
This CL introduces a new field in FilesystemInfo with the selinux_fc
path of the filesystem(s). android_device will copy this file to the
META subdirectory of target_files.zip
Test: Built soong target_files.zip
Bug: 388633394
Change-Id: Ia81bd2c2d90d6beb116d57adf53deb5736579c3a
diff --git a/filesystem/filesystem.go b/filesystem/filesystem.go
index c3c06bd..0381951 100644
--- a/filesystem/filesystem.go
+++ b/filesystem/filesystem.go
@@ -90,6 +90,8 @@
entries []string
filesystemBuilder filesystemBuilder
+
+ selinuxFc android.Path
}
type filesystemBuilder interface {
@@ -417,6 +419,8 @@
// Path to compress hints file for erofs filesystems
// This will be nil for other fileystems like ext4
ErofsCompressHints android.Path
+
+ SelinuxFc android.Path
}
// FullInstallPathInfo contains information about the "full install" paths of all the files
@@ -660,6 +664,7 @@
Json: installedFileJson,
},
ErofsCompressHints: erofsCompressHints,
+ SelinuxFc: f.selinuxFc,
}
android.SetProvider(ctx, FilesystemProvider, fsInfo)
@@ -1006,12 +1011,12 @@
if f.properties.File_contexts != nil && f.properties.Precompiled_file_contexts != nil {
ctx.ModuleErrorf("file_contexts and precompiled_file_contexts cannot both be set")
} else if f.properties.File_contexts != nil {
- addPath("selinux_fc", f.buildFileContexts(ctx))
+ f.selinuxFc = f.buildFileContexts(ctx)
} else if f.properties.Precompiled_file_contexts != nil {
- src := android.PathForModuleSrc(ctx, *f.properties.Precompiled_file_contexts)
- if src != nil {
- addPath("selinux_fc", src)
- }
+ f.selinuxFc = android.PathForModuleSrc(ctx, *f.properties.Precompiled_file_contexts)
+ }
+ if f.selinuxFc != nil {
+ addPath("selinux_fc", f.selinuxFc)
}
if timestamp := proptools.String(f.properties.Fake_timestamp); timestamp != "" {
addStr("timestamp", timestamp)