diff --git a/cc/cc.go b/cc/cc.go
index e6731aa..ec0f1a0 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -612,13 +612,6 @@
 	return c.depsInLinkOrder
 }
 
-func (c *Module) StubsSymbolFile() android.OptionalPath {
-	if library, ok := c.linker.(*libraryDecorator); ok {
-		return library.stubsSymbolFile
-	}
-	return android.OptionalPath{}
-}
-
 func (c *Module) StubsVersions() []string {
 	if c.linker != nil {
 		if library, ok := c.linker.(*libraryDecorator); ok {
diff --git a/cc/library.go b/cc/library.go
index 1a07c43..8d4992c 100644
--- a/cc/library.go
+++ b/cc/library.go
@@ -367,9 +367,6 @@
 	// Location of the file that should be copied to dist dir when requested
 	distFile android.OptionalPath
 
-	// stubs.symbol_file
-	stubsSymbolFile android.OptionalPath
-
 	versionScriptPath android.ModuleGenPath
 
 	post_install_cmds []string
@@ -606,7 +603,6 @@
 
 func (library *libraryDecorator) compile(ctx ModuleContext, flags Flags, deps PathDeps) Objects {
 	if library.buildStubs() {
-		library.stubsSymbolFile = android.OptionalPathForModuleSrc(ctx, library.Properties.Stubs.Symbol_file)
 		objs, versionScript := compileStubLibrary(ctx, flags, String(library.Properties.Stubs.Symbol_file), library.MutatedProperties.StubsVersion, "--apex")
 		library.versionScriptPath = versionScript
 		return objs
diff --git a/cc/library_sdk_member.go b/cc/library_sdk_member.go
index 4e4df5b..754b96a 100644
--- a/cc/library_sdk_member.go
+++ b/cc/library_sdk_member.go
@@ -271,10 +271,7 @@
 	}
 
 	if len(libInfo.StubsVersion) > 0 {
-		symbolFilePath := filepath.Join(nativeEtcDir, libInfo.StubsSymbolFile.Path().Base())
-		builder.CopyToSnapshot(libInfo.StubsSymbolFile.Path(), symbolFilePath)
 		stubsSet := outputProperties.AddPropertySet("stubs")
-		stubsSet.AddProperty("symbol_file", symbolFilePath)
 		stubsSet.AddProperty("versions", []string{libInfo.StubsVersion})
 	}
 }
@@ -283,7 +280,6 @@
 	nativeIncludeDir          = "include"
 	nativeGeneratedIncludeDir = "include_gen"
 	nativeStubDir             = "lib"
-	nativeEtcDir              = "etc"
 )
 
 // path to the native library. Relative to <sdk_root>/<api_dir>
@@ -348,9 +344,6 @@
 	// are not in use.
 	StubsVersion string
 
-	// The stubs symbol file.
-	StubsSymbolFile android.OptionalPath
-
 	// outputFile is not exported as it is always arch specific.
 	outputFile android.Path
 }
@@ -389,7 +382,6 @@
 
 	if ccModule.HasStubsVariants() {
 		p.StubsVersion = ccModule.StubsVersion()
-		p.StubsSymbolFile = ccModule.StubsSymbolFile()
 	}
 }
 
diff --git a/sdk/cc_sdk_test.go b/sdk/cc_sdk_test.go
index 9e6086f..780da9f 100644
--- a/sdk/cc_sdk_test.go
+++ b/sdk/cc_sdk_test.go
@@ -1766,7 +1766,6 @@
     sdk_member_name: "stubslib",
     installable: false,
     stubs: {
-        symbol_file: "etc/stubslib.map.txt",
         versions: ["3"],
     },
     arch: {
@@ -1783,7 +1782,6 @@
     name: "stubslib",
     prefer: false,
     stubs: {
-        symbol_file: "etc/stubslib.map.txt",
         versions: ["3"],
     },
     arch: {
