diff --git a/common/androidmk.go b/common/androidmk.go
index 49380e0..a16a652 100644
--- a/common/androidmk.go
+++ b/common/androidmk.go
@@ -38,6 +38,7 @@
 
 type AndroidMkData struct {
 	Class      string
+	SubName    string
 	OutputFile OptionalPath
 	Disabled   bool
 
@@ -141,6 +142,10 @@
 		return err
 	}
 
+	if data.SubName != "" {
+		name += "_" + data.SubName
+	}
+
 	hostCross := false
 	if amod.Host() && amod.HostType() != CurrentHostType() {
 		hostCross = true
diff --git a/common/module.go b/common/module.go
index 8e45952..ee028da 100644
--- a/common/module.go
+++ b/common/module.go
@@ -76,8 +76,8 @@
 	ExpandSources(srcFiles, excludes []string) Paths
 	Glob(outDir, globPattern string, excludes []string) Paths
 
-	InstallFile(installPath OutputPath, srcPath Path, deps ...Path) Path
-	InstallFileName(installPath OutputPath, name string, srcPath Path, deps ...Path) Path
+	InstallFile(installPath OutputPath, srcPath Path, deps ...Path) OutputPath
+	InstallFileName(installPath OutputPath, name string, srcPath Path, deps ...Path) OutputPath
 	CheckbuildFile(srcPath Path)
 
 	AddMissingDependencies(deps []string)
@@ -531,7 +531,7 @@
 }
 
 func (a *androidModuleContext) InstallFileName(installPath OutputPath, name string, srcPath Path,
-	deps ...Path) Path {
+	deps ...Path) OutputPath {
 
 	fullInstallPath := installPath.Join(a, name)
 
@@ -552,7 +552,7 @@
 	return fullInstallPath
 }
 
-func (a *androidModuleContext) InstallFile(installPath OutputPath, srcPath Path, deps ...Path) Path {
+func (a *androidModuleContext) InstallFile(installPath OutputPath, srcPath Path, deps ...Path) OutputPath {
 	return a.InstallFileName(installPath, filepath.Base(srcPath.String()), srcPath, deps...)
 }
 
diff --git a/common/paths.go b/common/paths.go
index 93cad13..554ce3f 100644
--- a/common/paths.go
+++ b/common/paths.go
@@ -478,6 +478,10 @@
 	return filepath.Join(p.config.buildDir, p.path)
 }
 
+func (p OutputPath) RelPathString() string {
+	return p.path
+}
+
 // Join creates a new OutputPath with paths... joined with the current path. The
 // provided paths... may not use '..' to escape from the current path.
 func (p OutputPath) Join(ctx PathContext, paths ...string) OutputPath {
