Revert^2 "Use a partition packaging spec filter for android_filesystem"
This reverts commit 02adec80da9796d685765dfb2ee8e96518072d3c.
Reason for revert: b/374239899
Bug: 374239899
Change-Id: I263c11d02d26ea150484c185745cf58253352769
diff --git a/filesystem/filesystem.go b/filesystem/filesystem.go
index 4bdd0a4..9756b82 100644
--- a/filesystem/filesystem.go
+++ b/filesystem/filesystem.go
@@ -264,7 +264,7 @@
func (f *filesystem) filterInstallablePackagingSpec(ps android.PackagingSpec) bool {
// Filesystem module respects the installation semantic. A PackagingSpec from a module with
// IsSkipInstall() is skipped.
- return !ps.SkipInstall()
+ return !ps.SkipInstall() && (ps.Partition() == f.PartitionType())
}
var pctx = android.NewPackageContext("android/soong/filesystem")
diff --git a/filesystem/filesystem_test.go b/filesystem/filesystem_test.go
index 057dcaa..1e50836 100644
--- a/filesystem/filesystem_test.go
+++ b/filesystem/filesystem_test.go
@@ -584,3 +584,28 @@
android.AssertStringDoesContain(t, "erofs fs type compress hint", buildImageConfig, "erofs_default_compress_hints=compress_hints.txt")
android.AssertStringDoesContain(t, "erofs fs type sparse", buildImageConfig, "erofs_sparse_flag=-s")
}
+
+// If a system_ext/ module depends on system/ module, the dependency should *not*
+// be installed in system_ext/
+func TestDoNotPackageCrossPartitionDependencies(t *testing.T) {
+ result := fixture.RunTestWithBp(t, `
+ android_filesystem {
+ name: "myfilesystem",
+ deps: ["binfoo"],
+ partition_type: "system_ext",
+ }
+
+ cc_binary {
+ name: "binfoo",
+ shared_libs: ["libfoo"],
+ system_ext_specific: true,
+ }
+ cc_library_shared {
+ name: "libfoo", // installed in system/
+ }
+ `)
+
+ partition := result.ModuleForTests("myfilesystem", "android_common")
+ fileList := android.ContentFromFileRuleForTests(t, result.TestContext, partition.Output("fileList"))
+ android.AssertDeepEquals(t, "filesystem with dependencies on different partition", "bin/binfoo\n", fileList)
+}
diff --git a/filesystem/system_image.go b/filesystem/system_image.go
index 57239ae..7dbf986 100644
--- a/filesystem/system_image.go
+++ b/filesystem/system_image.go
@@ -103,6 +103,6 @@
// partition. Note that "apex" module installs its contents to "apex"(fake partition) as well
// for symbol lookup by imitating "activated" paths.
func (s *systemImage) filterPackagingSpec(ps android.PackagingSpec) bool {
- return s.filesystem.filterInstallablePackagingSpec(ps) &&
+ return !ps.SkipInstall() &&
(ps.Partition() == "system" || ps.Partition() == "root")
}