Merge "Implement vendor as a synonym of proprietary"
diff --git a/android/androidmk.go b/android/androidmk.go
index f606522..af6608f 100644
--- a/android/androidmk.go
+++ b/android/androidmk.go
@@ -234,6 +234,9 @@
 		if amod.commonProperties.Proprietary {
 			fmt.Fprintln(w, "LOCAL_PROPRIETARY_MODULE := true")
 		}
+		if amod.commonProperties.Vendor {
+			fmt.Fprintln(w, "LOCAL_VENDOR_MODULE := true")
+		}
 		if amod.commonProperties.Owner != "" {
 			fmt.Fprintln(w, "LOCAL_MODULE_OWNER :=", amod.commonProperties.Owner)
 		}
diff --git a/android/module.go b/android/module.go
index 3c09b3e..963d611 100644
--- a/android/module.go
+++ b/android/module.go
@@ -60,7 +60,7 @@
 	Windows() bool
 	Debug() bool
 	PrimaryArch() bool
-	Proprietary() bool
+	Vendor() bool
 	AConfig() Config
 	DeviceConfig() DeviceConfig
 }
@@ -143,6 +143,9 @@
 	// vendor who owns this module
 	Owner string
 
+	// whether this module is device specific and should be installed into /vendor
+	Vendor bool
+
 	// *.logtags files, to combine together in order to generate the /system/etc/event-log-tags
 	// file
 	Logtags []string
@@ -462,7 +465,7 @@
 	return androidBaseContextImpl{
 		target:        a.commonProperties.CompileTarget,
 		targetPrimary: a.commonProperties.CompilePrimary,
-		proprietary:   a.commonProperties.Proprietary,
+		vendor:        a.commonProperties.Proprietary || a.commonProperties.Vendor,
 		config:        ctx.Config().(Config),
 	}
 }
@@ -499,7 +502,7 @@
 	target        Target
 	targetPrimary bool
 	debug         bool
-	proprietary   bool
+	vendor        bool
 	config        Config
 }
 
@@ -632,8 +635,8 @@
 	return DeviceConfig{a.config.deviceConfig}
 }
 
-func (a *androidBaseContextImpl) Proprietary() bool {
-	return a.proprietary
+func (a *androidBaseContextImpl) Vendor() bool {
+	return a.vendor
 }
 
 func (a *androidModuleContext) InstallInData() bool {
diff --git a/android/paths.go b/android/paths.go
index fe639e6..969c753 100644
--- a/android/paths.go
+++ b/android/paths.go
@@ -649,7 +649,7 @@
 	var outPaths []string
 	if ctx.Device() {
 		partition := "system"
-		if ctx.Proprietary() {
+		if ctx.Vendor() {
 			partition = ctx.DeviceConfig().VendorPath()
 		}
 
diff --git a/androidmk/cmd/androidmk/android.go b/androidmk/cmd/androidmk/android.go
index 33e7eb3..bd9d8ee 100644
--- a/androidmk/cmd/androidmk/android.go
+++ b/androidmk/cmd/androidmk/android.go
@@ -69,12 +69,12 @@
 			"LOCAL_PACKAGE_NAME":         "name",
 			"LOCAL_MODULE_RELATIVE_PATH": "relative_install_path",
 			"LOCAL_PROTOC_OPTIMIZE_TYPE": "proto.type",
-			"LOCAL_HEADER_LIBRARIES":     "header_libs",
 			"LOCAL_MODULE_OWNER":         "owner",
 		})
 	addStandardProperties(bpparser.ListType,
 		map[string]string{
 			"LOCAL_SRC_FILES_EXCLUDE":             "exclude_srcs",
+			"LOCAL_HEADER_LIBRARIES":              "header_libs",
 			"LOCAL_SHARED_LIBRARIES":              "shared_libs",
 			"LOCAL_STATIC_LIBRARIES":              "static_libs",
 			"LOCAL_WHOLE_STATIC_LIBRARIES":        "whole_static_libs",
@@ -90,6 +90,7 @@
 			"LOCAL_YACCFLAGS":                     "yaccflags",
 			"LOCAL_SANITIZE_RECOVER":              "sanitize.recover",
 			"LOCAL_LOGTAGS_FILES":                 "logtags",
+			"LOCAL_EXPORT_HEADER_LIBRARY_HEADERS": "export_header_lib_headers",
 			"LOCAL_EXPORT_SHARED_LIBRARY_HEADERS": "export_shared_lib_headers",
 			"LOCAL_EXPORT_STATIC_LIBRARY_HEADERS": "export_static_lib_headers",
 			"LOCAL_INIT_RC":                       "init_rc",
@@ -121,6 +122,7 @@
 			"LOCAL_PACK_MODULE_RELOCATIONS": "pack_relocations",
 			"LOCAL_TIDY":                    "tidy",
 			"LOCAL_PROPRIETARY_MODULE":      "proprietary",
+			"LOCAL_VENDOR_MODULE":           "vendor",
 
 			"LOCAL_EXPORT_PACKAGE_RESOURCES": "export_package_resources",
 		})
diff --git a/cc/cc.go b/cc/cc.go
index 3ed1d7e..8ef606f 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -389,7 +389,7 @@
 }
 
 func (ctx *moduleContextImpl) vndk() bool {
-	return ctx.ctx.Os() == android.Android && ctx.ctx.Proprietary() && ctx.ctx.DeviceConfig().CompileVndk()
+	return ctx.ctx.Os() == android.Android && ctx.ctx.Vendor() && ctx.ctx.DeviceConfig().CompileVndk()
 }
 
 func (ctx *moduleContextImpl) selectedStl() string {