diff --git a/etc/install_symlink.go b/etc/install_symlink.go
index aa33445..2182b86 100644
--- a/etc/install_symlink.go
+++ b/etc/install_symlink.go
@@ -26,7 +26,6 @@
 
 func RegisterInstallSymlinkBuildComponents(ctx android.RegistrationContext) {
 	ctx.RegisterModuleType("install_symlink", InstallSymlinkFactory)
-	ctx.RegisterModuleType("install_symlink_host", InstallSymlinkHostFactory)
 }
 
 // install_symlink can be used to install an symlink with an arbitrary target to an arbitrary path
@@ -38,14 +37,6 @@
 	return module
 }
 
-// install_symlink can be used to install an symlink to an arbitrary path on the host.
-func InstallSymlinkHostFactory() android.Module {
-	module := &InstallSymlink{}
-	module.AddProperties(&module.properties)
-	android.InitAndroidMultiTargetsArchModule(module, android.HostSupported, android.MultilibCommon)
-	return module
-}
-
 type InstallSymlinkProperties struct {
 	// Where to install this symlink, relative to the partition it's installed on.
 	// Which partition it's installed on can be controlled by the vendor, system_ext, ramdisk, etc.
diff --git a/etc/install_symlink_test.go b/etc/install_symlink_test.go
index 2662868..d7165e5 100644
--- a/etc/install_symlink_test.go
+++ b/etc/install_symlink_test.go
@@ -133,33 +133,3 @@
 		}
 	`)
 }
-
-func TestInstallSymlinkHostBasic(t *testing.T) {
-	result := prepareForInstallSymlinkTest.RunTestWithBp(t, `
-		install_symlink_host {
-			name: "foo",
-			installed_location: "bin/foo",
-			symlink_target: "folder/foo-realpath",
-		}
-	`)
-
-	foo_variants := result.ModuleVariantsForTests("foo")
-	if len(foo_variants) != 1 {
-		t.Fatalf("expected 1 variant, got %#v", foo_variants)
-	}
-
-	foo := result.ModuleForTests("foo", "linux_glibc_common").Module()
-	androidMkEntries := android.AndroidMkEntriesForTest(t, result.TestContext, foo)
-	if len(androidMkEntries) != 1 {
-		t.Fatalf("expected 1 androidmkentry, got %d", len(androidMkEntries))
-	}
-
-	symlinks := androidMkEntries[0].EntryMap["LOCAL_SOONG_INSTALL_SYMLINKS"]
-	if len(symlinks) != 1 {
-		t.Fatalf("Expected 1 symlink, got %d", len(symlinks))
-	}
-
-	if !strings.HasSuffix(symlinks[0], "host/linux-x86/bin/foo") {
-		t.Fatalf("Expected symlink install path to end in ost/linux-x86/bin/foo, got: %s", symlinks[0])
-	}
-}
