Merge changes from topic "revert-3066748-duplicate_entry_fs-CIBDJQYRHU" into main

* changes:
  Revert "Prevent multiple PackagingSpecs having same installation..."
  Revert "Filesystem modules follow the installation semantic"
diff --git a/android/packaging.go b/android/packaging.go
index fe61da1..6677218 100644
--- a/android/packaging.go
+++ b/android/packaging.go
@@ -50,25 +50,6 @@
 	skipInstall bool
 }
 
-func (p *PackagingSpec) Equals(other *PackagingSpec) bool {
-	if other == nil {
-		return false
-	}
-	if p.relPathInPackage != other.relPathInPackage {
-		return false
-	}
-	if p.srcPath != other.srcPath || p.symlinkTarget != other.symlinkTarget {
-		return false
-	}
-	if p.executable != other.executable {
-		return false
-	}
-	if p.partition != other.partition {
-		return false
-	}
-	return true
-}
-
 // Get file name of installed package
 func (p *PackagingSpec) FileName() string {
 	if p.relPathInPackage != "" {
@@ -262,15 +243,9 @@
 					continue
 				}
 			}
-			dstPath := ps.relPathInPackage
-			if existingPs, ok := m[dstPath]; ok {
-				if !existingPs.Equals(&ps) {
-					ctx.ModuleErrorf("packaging conflict at %v:\n%v\n%v", dstPath, existingPs, ps)
-				}
-				continue
+			if _, ok := m[ps.relPathInPackage]; !ok {
+				m[ps.relPathInPackage] = ps
 			}
-
-			m[dstPath] = ps
 		}
 	})
 	return m
diff --git a/filesystem/filesystem.go b/filesystem/filesystem.go
index 5bcfce7..cadf9c24 100644
--- a/filesystem/filesystem.go
+++ b/filesystem/filesystem.go
@@ -137,7 +137,6 @@
 // partitions like system.img. For example, cc_library modules are placed under ./lib[64] directory.
 func filesystemFactory() android.Module {
 	module := &filesystem{}
-	module.filterPackagingSpec = module.filterInstallablePackagingSpec
 	initFilesystemModule(module)
 	return module
 }
@@ -190,12 +189,6 @@
 	return proptools.StringDefault(f.properties.Partition_name, f.Name())
 }
 
-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()
-}
-
 var pctx = android.NewPackageContext("android/soong/filesystem")
 
 func (f *filesystem) GenerateAndroidBuildActions(ctx android.ModuleContext) {
diff --git a/filesystem/filesystem_test.go b/filesystem/filesystem_test.go
index acd4813..1215048 100644
--- a/filesystem/filesystem_test.go
+++ b/filesystem/filesystem_test.go
@@ -442,26 +442,3 @@
 		}
 	`)
 }
-
-func TestPreventDuplicatedEntries(t *testing.T) {
-	fixture.ExtendWithErrorHandler(android.FixtureExpectsOneErrorPattern(
-		"packaging conflict at")).
-		RunTestWithBp(t, `
-		android_filesystem {
-			name: "fs",
-			deps: [
-				"foo",
-				"foo_dup",
-			],
-		}
-
-		cc_binary {
-			name: "foo",
-		}
-
-		cc_binary {
-			name: "foo_dup",
-			stem: "foo",
-		}
-	`)
-}
diff --git a/filesystem/system_image.go b/filesystem/system_image.go
index 15cacfb..5028a49 100644
--- a/filesystem/system_image.go
+++ b/filesystem/system_image.go
@@ -98,5 +98,5 @@
 // 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) && ps.Partition() == "system"
+	return ps.Partition() == "system"
 }