diff --git a/android/module.go b/android/module.go
index 6f247ab..fe6c0de 100644
--- a/android/module.go
+++ b/android/module.go
@@ -113,6 +113,7 @@
 	ExpandOptionalSource(srcFile *string, prop string) OptionalPath
 	ExpandSourcesSubDir(srcFiles, excludes []string, subDir string) Paths
 	Glob(globPattern string, excludes []string) Paths
+	GlobFiles(globPattern string, excludes []string) Paths
 
 	InstallExecutable(installPath OutputPath, name string, srcPath Path, deps ...Path) OutputPath
 	InstallFile(installPath OutputPath, name string, srcPath Path, deps ...Path) OutputPath
@@ -1245,6 +1246,24 @@
 	return pathsForModuleSrcFromFullPath(ctx, ret)
 }
 
+// glob only "files" under the directory relative to top of the source tree.
+func (ctx *androidModuleContext) GlobFiles(globPattern string, excludes []string) Paths {
+	paths, err := ctx.GlobWithDeps(globPattern, excludes)
+	if err != nil {
+		ctx.ModuleErrorf("glob: %s", err.Error())
+	}
+	var ret []Path
+	for _, p := range paths {
+		if isDir, err := ctx.Fs().IsDir(p); err != nil {
+			ctx.ModuleErrorf("error in IsDir(%s): %s", p, err.Error())
+			return nil
+		} else if !isDir {
+			ret = append(ret, PathForSource(ctx, p))
+		}
+	}
+	return ret
+}
+
 func init() {
 	RegisterSingletonType("buildtarget", BuildTargetSingleton)
 }
