Rename common to android

Rename the "common" package to "android", because common is too
generic.  Also removes all android.Android naming stutter.

Ran:
gomvpkg -from 'android/soong/common' -to 'android/soong/android'
gorename -from '"android/soong/android".AndroidModuleContext' -to 'ModuleContext'
gorename -from '"android/soong/android".AndroidBaseContext' -to 'BaseContext'
gorename -from '"android/soong/android".AndroidModuleBase' -to 'ModuleBase'
gorename -from '"android/soong/android".AndroidBottomUpMutatorContext' -to 'BottomUpMutatorContext'
gorename -from '"android/soong/android".AndroidTopDownMutatorContext' -to 'TopDownMutatorContext'
gorename -from '"android/soong/android".AndroidModule' -to 'Module'

Change-Id: I3b23590b8ce7c8a1ea1139411d84a53163288da7
diff --git a/Android.bp b/Android.bp
index a9e41d9..805346f 100644
--- a/Android.bp
+++ b/Android.bp
@@ -16,7 +16,7 @@
         "blueprint",
         "blueprint-bootstrap",
         "soong",
-        "soong-common",
+        "soong-android",
         "soong-env",
     ],
     srcs: [
@@ -79,8 +79,8 @@
 }
 
 bootstrap_go_package {
-    name: "soong-common",
-    pkgPath: "android/soong/common",
+    name: "soong-android",
+    pkgPath: "android/soong/android",
     deps: [
         "blueprint",
         "blueprint-bootstrap",
@@ -89,25 +89,25 @@
         "soong-glob",
     ],
     srcs: [
-        "common/androidmk.go",
-        "common/arch.go",
-        "common/config.go",
-        "common/defaults.go",
-        "common/defs.go",
-        "common/glob.go",
-        "common/makevars.go",
-        "common/module.go",
-        "common/mutator.go",
-        "common/package_ctx.go",
-        "common/paths.go",
-        "common/util.go",
-        "common/variable.go",
+        "android/androidmk.go",
+        "android/arch.go",
+        "android/config.go",
+        "android/defaults.go",
+        "android/defs.go",
+        "android/glob.go",
+        "android/makevars.go",
+        "android/module.go",
+        "android/mutator.go",
+        "android/package_ctx.go",
+        "android/paths.go",
+        "android/util.go",
+        "android/variable.go",
 
         // Lock down environment access last
-        "common/env.go",
+        "android/env.go",
     ],
     testSrcs: [
-        "common/paths_test.go",
+        "android/paths_test.go",
     ],
 }
 
@@ -118,7 +118,7 @@
         "blueprint",
         "blueprint-pathtools",
         "soong",
-        "soong-common",
+        "soong-android",
         "soong-genrule",
     ],
     srcs: [
@@ -157,7 +157,7 @@
         "blueprint",
         "blueprint-pathtools",
         "soong",
-        "soong-common",
+        "soong-android",
     ],
     srcs: [
         "genrule/genrule.go",
@@ -179,7 +179,7 @@
         "blueprint",
         "blueprint-pathtools",
         "soong",
-        "soong-common",
+        "soong-android",
         "soong-genrule",
     ],
     srcs: [
diff --git a/common/androidmk.go b/android/androidmk.go
similarity index 96%
rename from common/androidmk.go
rename to android/androidmk.go
index 3fe9e96..c8dce0f 100644
--- a/common/androidmk.go
+++ b/android/androidmk.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package common
+package android
 
 import (
 	"bytes"
@@ -63,10 +63,10 @@
 
 	ctx.SetNinjaBuildDir(pctx, filepath.Join(config.buildDir, ".."))
 
-	var androidMkModulesList []AndroidModule
+	var androidMkModulesList []Module
 
 	ctx.VisitAllModules(func(module blueprint.Module) {
-		if amod, ok := module.(AndroidModule); ok {
+		if amod, ok := module.(Module); ok {
 			androidMkModulesList = append(androidMkModulesList, amod)
 		}
 	})
@@ -90,7 +90,7 @@
 	})
 }
 
-func translateAndroidMk(ctx blueprint.SingletonContext, mkFile string, mods []AndroidModule) error {
+func translateAndroidMk(ctx blueprint.SingletonContext, mkFile string, mods []Module) error {
 	buf := &bytes.Buffer{}
 
 	fmt.Fprintln(buf, "LOCAL_MODULE_MAKEFILE := $(lastword $(MAKEFILE_LIST))")
@@ -134,7 +134,7 @@
 		return nil
 	}
 
-	amod := mod.(AndroidModule).base()
+	amod := mod.(Module).base()
 	data, err := provider.AndroidMk()
 	if err != nil {
 		return err
diff --git a/common/arch.go b/android/arch.go
similarity index 96%
rename from common/arch.go
rename to android/arch.go
index 4176cd1..952b7207 100644
--- a/common/arch.go
+++ b/android/arch.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package common
+package android
 
 import (
 	"fmt"
@@ -187,7 +187,7 @@
 			Sandybridge interface{} `blueprint:"filter(android:\"arch_variant\")"`
 			Silvermont  interface{} `blueprint:"filter(android:\"arch_variant\")"`
 			// Generic variant for X86 on X86_64
-			X86_64      interface{} `blueprint:"filter(android:\"arch_variant\")"`
+			X86_64 interface{} `blueprint:"filter(android:\"arch_variant\")"`
 
 			// X86 arch features
 			Ssse3  interface{} `blueprint:"filter(android:\"arch_variant\")"`
@@ -443,10 +443,10 @@
 	}
 )
 
-func HostOrDeviceMutator(mctx AndroidBottomUpMutatorContext) {
-	var module AndroidModule
+func HostOrDeviceMutator(mctx BottomUpMutatorContext) {
+	var module Module
 	var ok bool
-	if module, ok = mctx.Module().(AndroidModule); !ok {
+	if module, ok = mctx.Module().(Module); !ok {
 		return
 	}
 
@@ -471,14 +471,14 @@
 
 	modules := mctx.CreateVariations(hodNames...)
 	for i, m := range modules {
-		m.(AndroidModule).base().SetHostOrDevice(hods[i])
+		m.(Module).base().SetHostOrDevice(hods[i])
 	}
 }
 
-func HostTypeMutator(mctx AndroidBottomUpMutatorContext) {
-	var module AndroidModule
+func HostTypeMutator(mctx BottomUpMutatorContext) {
+	var module Module
 	var ok bool
-	if module, ok = mctx.Module().(AndroidModule); !ok {
+	if module, ok = mctx.Module().(Module); !ok {
 		return
 	}
 
@@ -499,14 +499,14 @@
 
 	modules := mctx.CreateVariations(typeNames...)
 	for i, m := range modules {
-		m.(AndroidModule).base().SetHostType(buildTypes[i])
+		m.(Module).base().SetHostType(buildTypes[i])
 	}
 }
 
-func ArchMutator(mctx AndroidBottomUpMutatorContext) {
-	var module AndroidModule
+func ArchMutator(mctx BottomUpMutatorContext) {
+	var module Module
 	var ok bool
-	if module, ok = mctx.Module().(AndroidModule); !ok {
+	if module, ok = mctx.Module().(Module); !ok {
 		return
 	}
 
@@ -543,12 +543,12 @@
 	modules := mctx.CreateVariations(archNames...)
 
 	for i, m := range modules {
-		m.(AndroidModule).base().SetArch(moduleArches[i])
-		m.(AndroidModule).base().setArchProperties(mctx)
+		m.(Module).base().SetArch(moduleArches[i])
+		m.(Module).base().setArchProperties(mctx)
 	}
 }
 
-func InitArchModule(m AndroidModule,
+func InitArchModule(m Module,
 	propertyStructs ...interface{}) (blueprint.Module, []interface{}) {
 
 	base := m.base()
@@ -589,7 +589,7 @@
 
 var variantReplacer = strings.NewReplacer("-", "_", ".", "_")
 
-func (a *AndroidModuleBase) appendProperties(ctx AndroidBottomUpMutatorContext,
+func (a *ModuleBase) appendProperties(ctx BottomUpMutatorContext,
 	dst, src interface{}, field, srcPrefix string) interface{} {
 
 	srcField := reflect.ValueOf(src).FieldByName(field)
@@ -646,7 +646,7 @@
 }
 
 // Rewrite the module's properties structs to contain arch-specific values.
-func (a *AndroidModuleBase) setArchProperties(ctx AndroidBottomUpMutatorContext) {
+func (a *ModuleBase) setArchProperties(ctx BottomUpMutatorContext) {
 	arch := a.commonProperties.CompileArch
 	hod := a.commonProperties.CompileHostOrDevice
 	ht := a.commonProperties.CompileHostType
diff --git a/common/config.go b/android/config.go
similarity index 99%
rename from common/config.go
rename to android/config.go
index 5e2f715..8701960 100644
--- a/common/config.go
+++ b/android/config.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package common
+package android
 
 import (
 	"encoding/json"
diff --git a/common/defaults.go b/android/defaults.go
similarity index 86%
rename from common/defaults.go
rename to android/defaults.go
index 030946b..f9cf0cc 100644
--- a/common/defaults.go
+++ b/android/defaults.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package common
+package android
 
 import (
 	"github.com/google/blueprint"
@@ -45,12 +45,12 @@
 type Defaultable interface {
 	defaults() *defaultsProperties
 	setProperties([]interface{})
-	applyDefaults(AndroidTopDownMutatorContext, Defaults)
+	applyDefaults(TopDownMutatorContext, Defaults)
 }
 
 var _ Defaultable = (*DefaultableModule)(nil)
 
-func InitDefaultableModule(module AndroidModule, d Defaultable,
+func InitDefaultableModule(module Module, d Defaultable,
 	props ...interface{}) (blueprint.Module, []interface{}) {
 
 	d.setProperties(props)
@@ -82,7 +82,7 @@
 	d.defaultProperties = props
 }
 
-func InitDefaultsModule(module AndroidModule, d Defaults, props ...interface{}) (blueprint.Module, []interface{}) {
+func InitDefaultsModule(module Module, d Defaults, props ...interface{}) (blueprint.Module, []interface{}) {
 	d.setProperties(props)
 
 	return module, props
@@ -90,7 +90,7 @@
 
 var _ Defaults = (*DefaultsModule)(nil)
 
-func (defaultable *DefaultableModule) applyDefaults(ctx AndroidTopDownMutatorContext,
+func (defaultable *DefaultableModule) applyDefaults(ctx TopDownMutatorContext,
 	defaults Defaults) {
 
 	for _, prop := range defaultable.defaultableProperties {
@@ -109,13 +109,13 @@
 	}
 }
 
-func defaultsDepsMutator(ctx AndroidBottomUpMutatorContext) {
+func defaultsDepsMutator(ctx BottomUpMutatorContext) {
 	if defaultable, ok := ctx.Module().(Defaultable); ok {
 		ctx.AddDependency(ctx.Module(), DefaultsDepTag, defaultable.defaults().Defaults...)
 	}
 }
 
-func defaultsMutator(ctx AndroidTopDownMutatorContext) {
+func defaultsMutator(ctx TopDownMutatorContext) {
 	if defaultable, ok := ctx.Module().(Defaultable); ok {
 		for _, defaultsDep := range defaultable.defaults().Defaults {
 			ctx.VisitDirectDeps(func(m blueprint.Module) {
diff --git a/common/defs.go b/android/defs.go
similarity index 98%
rename from common/defs.go
rename to android/defs.go
index 1250068..be28e8b 100644
--- a/common/defs.go
+++ b/android/defs.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package common
+package android
 
 import (
 	"github.com/google/blueprint"
diff --git a/common/env.go b/android/env.go
similarity index 98%
rename from common/env.go
rename to android/env.go
index 478fffc..f9d8030 100644
--- a/common/env.go
+++ b/android/env.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package common
+package android
 
 import (
 	"android/soong"
diff --git a/common/glob.go b/android/glob.go
similarity index 99%
rename from common/glob.go
rename to android/glob.go
index 5b03bc1..aec5fa9 100644
--- a/common/glob.go
+++ b/android/glob.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package common
+package android
 
 import (
 	"fmt"
diff --git a/common/makevars.go b/android/makevars.go
similarity index 99%
rename from common/makevars.go
rename to android/makevars.go
index ad4f6d4..d9c5c6d 100644
--- a/common/makevars.go
+++ b/android/makevars.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package common
+package android
 
 import (
 	"bytes"
diff --git a/common/module.go b/android/module.go
similarity index 90%
rename from common/module.go
rename to android/module.go
index f3f1263..08abf78 100644
--- a/common/module.go
+++ b/android/module.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package common
+package android
 
 import (
 	"fmt"
@@ -60,12 +60,12 @@
 	InstallInData() bool
 }
 
-type AndroidBaseContext interface {
+type BaseContext interface {
 	blueprint.BaseModuleContext
 	androidBaseContext
 }
 
-type AndroidModuleContext interface {
+type ModuleContext interface {
 	blueprint.ModuleContext
 	androidBaseContext
 
@@ -83,12 +83,12 @@
 	AddMissingDependencies(deps []string)
 }
 
-type AndroidModule interface {
+type Module interface {
 	blueprint.Module
 
-	GenerateAndroidBuildActions(AndroidModuleContext)
+	GenerateAndroidBuildActions(ModuleContext)
 
-	base() *AndroidModuleBase
+	base() *ModuleBase
 	Enabled() bool
 	HostOrDevice() HostOrDevice
 	InstallInData() bool
@@ -138,7 +138,7 @@
 	MultilibDefault Multilib = ""
 )
 
-func InitAndroidModule(m AndroidModule,
+func InitAndroidModule(m Module,
 	propertyStructs ...interface{}) (blueprint.Module, []interface{}) {
 
 	base := m.base()
@@ -149,7 +149,7 @@
 	return m, propertyStructs
 }
 
-func InitAndroidArchModule(m AndroidModule, hod HostOrDeviceSupported, defaultMultilib Multilib,
+func InitAndroidArchModule(m Module, hod HostOrDeviceSupported, defaultMultilib Multilib,
 	propertyStructs ...interface{}) (blueprint.Module, []interface{}) {
 
 	_, propertyStructs = InitAndroidModule(m, propertyStructs...)
@@ -211,10 +211,10 @@
 //
 //         // ...
 //     }
-type AndroidModuleBase struct {
+type ModuleBase struct {
 	// Putting the curiously recurring thing pointing to the thing that contains
 	// the thing pattern to good use.
-	module AndroidModule
+	module Module
 
 	commonProperties        commonProperties
 	variableProperties      variableProperties
@@ -233,51 +233,51 @@
 	blueprintDir     string
 }
 
-func (a *AndroidModuleBase) base() *AndroidModuleBase {
+func (a *ModuleBase) base() *ModuleBase {
 	return a
 }
 
-func (a *AndroidModuleBase) SetHostOrDevice(hod HostOrDevice) {
+func (a *ModuleBase) SetHostOrDevice(hod HostOrDevice) {
 	a.commonProperties.CompileHostOrDevice = hod
 }
 
-func (a *AndroidModuleBase) SetHostType(ht HostType) {
+func (a *ModuleBase) SetHostType(ht HostType) {
 	a.commonProperties.CompileHostType = ht
 }
 
-func (a *AndroidModuleBase) SetArch(arch Arch) {
+func (a *ModuleBase) SetArch(arch Arch) {
 	a.commonProperties.CompileArch = arch
 }
 
-func (a *AndroidModuleBase) HostOrDevice() HostOrDevice {
+func (a *ModuleBase) HostOrDevice() HostOrDevice {
 	return a.commonProperties.CompileHostOrDevice
 }
 
-func (a *AndroidModuleBase) HostType() HostType {
+func (a *ModuleBase) HostType() HostType {
 	return a.commonProperties.CompileHostType
 }
 
-func (a *AndroidModuleBase) Host() bool {
+func (a *ModuleBase) Host() bool {
 	return a.HostOrDevice().Host()
 }
 
-func (a *AndroidModuleBase) Arch() Arch {
+func (a *ModuleBase) Arch() Arch {
 	return a.commonProperties.CompileArch
 }
 
-func (a *AndroidModuleBase) HostSupported() bool {
+func (a *ModuleBase) HostSupported() bool {
 	return a.commonProperties.HostOrDeviceSupported == HostSupported ||
 		a.commonProperties.HostOrDeviceSupported == HostAndDeviceSupported &&
 			a.hostAndDeviceProperties.Host_supported
 }
 
-func (a *AndroidModuleBase) DeviceSupported() bool {
+func (a *ModuleBase) DeviceSupported() bool {
 	return a.commonProperties.HostOrDeviceSupported == DeviceSupported ||
 		a.commonProperties.HostOrDeviceSupported == HostAndDeviceSupported &&
 			a.hostAndDeviceProperties.Device_supported
 }
 
-func (a *AndroidModuleBase) Enabled() bool {
+func (a *ModuleBase) Enabled() bool {
 	if a.commonProperties.Enabled == nil {
 		if a.HostSupported() && a.HostOrDevice().Host() && a.HostType() == Windows {
 			return false
@@ -288,7 +288,7 @@
 	return *a.commonProperties.Enabled
 }
 
-func (a *AndroidModuleBase) computeInstallDeps(
+func (a *ModuleBase) computeInstallDeps(
 	ctx blueprint.ModuleContext) Paths {
 
 	result := Paths{}
@@ -302,27 +302,27 @@
 	return result
 }
 
-func (a *AndroidModuleBase) filesToInstall() Paths {
+func (a *ModuleBase) filesToInstall() Paths {
 	return a.installFiles
 }
 
-func (p *AndroidModuleBase) NoAddressSanitizer() bool {
+func (p *ModuleBase) NoAddressSanitizer() bool {
 	return p.noAddressSanitizer
 }
 
-func (p *AndroidModuleBase) InstallInData() bool {
+func (p *ModuleBase) InstallInData() bool {
 	return false
 }
 
-func (a *AndroidModuleBase) generateModuleTarget(ctx blueprint.ModuleContext) {
-	if a != ctx.FinalModule().(AndroidModule).base() {
+func (a *ModuleBase) generateModuleTarget(ctx blueprint.ModuleContext) {
+	if a != ctx.FinalModule().(Module).base() {
 		return
 	}
 
 	allInstalledFiles := Paths{}
 	allCheckbuildFiles := Paths{}
 	ctx.VisitAllModuleVariants(func(module blueprint.Module) {
-		a := module.(AndroidModule).base()
+		a := module.(Module).base()
 		allInstalledFiles = append(allInstalledFiles, a.installFiles...)
 		allCheckbuildFiles = append(allCheckbuildFiles, a.checkbuildFiles...)
 	})
@@ -370,7 +370,7 @@
 	}
 }
 
-func (a *AndroidModuleBase) androidBaseContextFactory(ctx blueprint.BaseModuleContext) androidBaseContextImpl {
+func (a *ModuleBase) androidBaseContextFactory(ctx blueprint.BaseModuleContext) androidBaseContextImpl {
 	return androidBaseContextImpl{
 		arch:          a.commonProperties.CompileArch,
 		hod:           a.commonProperties.CompileHostOrDevice,
@@ -381,7 +381,7 @@
 	}
 }
 
-func (a *AndroidModuleBase) GenerateBuildActions(ctx blueprint.ModuleContext) {
+func (a *ModuleBase) GenerateBuildActions(ctx blueprint.ModuleContext) {
 	androidCtx := &androidModuleContext{
 		ModuleContext:          ctx,
 		androidBaseContextImpl: a.androidBaseContextFactory(ctx),
@@ -570,7 +570,7 @@
 }
 
 func isAndroidModule(m blueprint.Module) bool {
-	_, ok := m.(AndroidModule)
+	_, ok := m.(Module)
 	return ok
 }
 
@@ -630,7 +630,7 @@
 	dirModules := make(map[string][]string)
 
 	ctx.VisitAllModules(func(module blueprint.Module) {
-		if a, ok := module.(AndroidModule); ok {
+		if a, ok := module.(Module); ok {
 			blueprintDir := a.base().blueprintDir
 			installTarget := a.base().installTarget
 			checkbuildTarget := a.base().checkbuildTarget
@@ -674,7 +674,7 @@
 }
 
 type AndroidModulesByName struct {
-	slice []AndroidModule
+	slice []Module
 	ctx   interface {
 		ModuleName(blueprint.Module) string
 		ModuleSubDir(blueprint.Module) string
diff --git a/common/mutator.go b/android/mutator.go
similarity index 83%
rename from common/mutator.go
rename to android/mutator.go
index 43721ee..9405f2d 100644
--- a/common/mutator.go
+++ b/android/mutator.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package common
+package android
 
 import (
 	"android/soong"
@@ -20,9 +20,9 @@
 	"github.com/google/blueprint"
 )
 
-type AndroidTopDownMutator func(AndroidTopDownMutatorContext)
+type AndroidTopDownMutator func(TopDownMutatorContext)
 
-type AndroidTopDownMutatorContext interface {
+type TopDownMutatorContext interface {
 	blueprint.TopDownMutatorContext
 	androidBaseContext
 }
@@ -32,9 +32,9 @@
 	androidBaseContextImpl
 }
 
-type AndroidBottomUpMutator func(AndroidBottomUpMutatorContext)
+type AndroidBottomUpMutator func(BottomUpMutatorContext)
 
-type AndroidBottomUpMutatorContext interface {
+type BottomUpMutatorContext interface {
 	blueprint.BottomUpMutatorContext
 	androidBaseContext
 }
@@ -46,7 +46,7 @@
 
 func RegisterBottomUpMutator(name string, mutator AndroidBottomUpMutator) {
 	soong.RegisterBottomUpMutator(name, func(ctx blueprint.BottomUpMutatorContext) {
-		if a, ok := ctx.Module().(AndroidModule); ok {
+		if a, ok := ctx.Module().(Module); ok {
 			actx := &androidBottomUpMutatorContext{
 				BottomUpMutatorContext: ctx,
 				androidBaseContextImpl: a.base().androidBaseContextFactory(ctx),
@@ -58,7 +58,7 @@
 
 func RegisterTopDownMutator(name string, mutator AndroidTopDownMutator) {
 	soong.RegisterTopDownMutator(name, func(ctx blueprint.TopDownMutatorContext) {
-		if a, ok := ctx.Module().(AndroidModule); ok {
+		if a, ok := ctx.Module().(Module); ok {
 			actx := &androidTopDownMutatorContext{
 				TopDownMutatorContext:  ctx,
 				androidBaseContextImpl: a.base().androidBaseContextFactory(ctx),
diff --git a/common/package_ctx.go b/android/package_ctx.go
similarity index 99%
rename from common/package_ctx.go
rename to android/package_ctx.go
index 233da5f..56ba2d8 100644
--- a/common/package_ctx.go
+++ b/android/package_ctx.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package common
+package android
 
 import (
 	"fmt"
diff --git a/common/paths.go b/android/paths.go
similarity index 90%
rename from common/paths.go
rename to android/paths.go
index 554ce3f..910ebd2 100644
--- a/common/paths.go
+++ b/android/paths.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package common
+package android
 
 import (
 	"fmt"
@@ -91,18 +91,18 @@
 }
 
 type genPathProvider interface {
-	genPathWithExt(ctx AndroidModuleContext, ext string) ModuleGenPath
+	genPathWithExt(ctx ModuleContext, ext string) ModuleGenPath
 }
 type objPathProvider interface {
-	objPathWithExt(ctx AndroidModuleContext, subdir, ext string) ModuleObjPath
+	objPathWithExt(ctx ModuleContext, subdir, ext string) ModuleObjPath
 }
 type resPathProvider interface {
-	resPathWithName(ctx AndroidModuleContext, name string) ModuleResPath
+	resPathWithName(ctx ModuleContext, name string) ModuleResPath
 }
 
 // GenPathWithExt derives a new file path in ctx's generated sources directory
 // from the current path, but with the new extension.
-func GenPathWithExt(ctx AndroidModuleContext, p Path, ext string) ModuleGenPath {
+func GenPathWithExt(ctx ModuleContext, p Path, ext string) ModuleGenPath {
 	if path, ok := p.(genPathProvider); ok {
 		return path.genPathWithExt(ctx, ext)
 	}
@@ -112,7 +112,7 @@
 
 // ObjPathWithExt derives a new file path in ctx's object directory from the
 // current path, but with the new extension.
-func ObjPathWithExt(ctx AndroidModuleContext, p Path, subdir, ext string) ModuleObjPath {
+func ObjPathWithExt(ctx ModuleContext, p Path, subdir, ext string) ModuleObjPath {
 	if path, ok := p.(objPathProvider); ok {
 		return path.objPathWithExt(ctx, subdir, ext)
 	}
@@ -123,7 +123,7 @@
 // ResPathWithName derives a new path in ctx's output resource directory, using
 // the current path to create the directory name, and the `name` argument for
 // the filename.
-func ResPathWithName(ctx AndroidModuleContext, p Path, name string) ModuleResPath {
+func ResPathWithName(ctx ModuleContext, p Path, name string) ModuleResPath {
 	if path, ok := p.(resPathProvider); ok {
 		return path.resPathWithName(ctx, name)
 	}
@@ -174,7 +174,7 @@
 // PathsForSource returns Paths rooted from SrcDir
 func PathsForSource(ctx PathContext, paths []string) Paths {
 	if pathConfig(ctx).AllowMissingDependencies() {
-		if modCtx, ok := ctx.(AndroidModuleContext); ok {
+		if modCtx, ok := ctx.(ModuleContext); ok {
 			ret := make(Paths, 0, len(paths))
 			intermediates := filepath.Join(modCtx.ModuleDir(), modCtx.ModuleName(), modCtx.ModuleSubDir(), "missing")
 			for _, path := range paths {
@@ -211,7 +211,7 @@
 
 // PathsForModuleSrc returns Paths rooted from the module's local source
 // directory
-func PathsForModuleSrc(ctx AndroidModuleContext, paths []string) Paths {
+func PathsForModuleSrc(ctx ModuleContext, paths []string) Paths {
 	ret := make(Paths, len(paths))
 	for i, path := range paths {
 		ret[i] = PathForModuleSrc(ctx, path)
@@ -222,7 +222,7 @@
 // pathsForModuleSrcFromFullPath returns Paths rooted from the module's local
 // source directory, but strip the local source directory from the beginning of
 // each string.
-func pathsForModuleSrcFromFullPath(ctx AndroidModuleContext, paths []string) Paths {
+func pathsForModuleSrcFromFullPath(ctx ModuleContext, paths []string) Paths {
 	prefix := filepath.Join(ctx.AConfig().srcDir, ctx.ModuleDir()) + "/"
 	ret := make(Paths, 0, len(paths))
 	for _, p := range paths {
@@ -238,7 +238,7 @@
 
 // PathsWithOptionalDefaultForModuleSrc returns Paths rooted from the module's
 // local source directory. If none are provided, use the default if it exists.
-func PathsWithOptionalDefaultForModuleSrc(ctx AndroidModuleContext, input []string, def string) Paths {
+func PathsWithOptionalDefaultForModuleSrc(ctx ModuleContext, input []string, def string) Paths {
 	if len(input) > 0 {
 		return PathsForModuleSrc(ctx, input)
 	}
@@ -425,7 +425,7 @@
 
 // OverlayPath returns the overlay for `path' if it exists. This assumes that the
 // SourcePath is the path to a resource overlay directory.
-func (p SourcePath) OverlayPath(ctx AndroidModuleContext, path Path) OptionalPath {
+func (p SourcePath) OverlayPath(ctx ModuleContext, path Path) OptionalPath {
 	var relDir string
 	if moduleSrcPath, ok := path.(ModuleSrcPath); ok {
 		relDir = moduleSrcPath.sourcePath.path
@@ -510,14 +510,14 @@
 
 // PathForModuleSrc returns a ModuleSrcPath representing the paths... under the
 // module's local source directory.
-func PathForModuleSrc(ctx AndroidModuleContext, paths ...string) ModuleSrcPath {
+func PathForModuleSrc(ctx ModuleContext, paths ...string) ModuleSrcPath {
 	path := validatePath(ctx, paths...)
 	return ModuleSrcPath{basePath{path, ctx.AConfig()}, PathForSource(ctx, ctx.ModuleDir(), path), ctx.ModuleDir()}
 }
 
 // OptionalPathForModuleSrc returns an OptionalPath. The OptionalPath contains a
 // valid path if p is non-nil.
-func OptionalPathForModuleSrc(ctx AndroidModuleContext, p *string) OptionalPath {
+func OptionalPathForModuleSrc(ctx ModuleContext, p *string) OptionalPath {
 	if p == nil {
 		return OptionalPath{}
 	}
@@ -528,15 +528,15 @@
 	return p.sourcePath.String()
 }
 
-func (p ModuleSrcPath) genPathWithExt(ctx AndroidModuleContext, ext string) ModuleGenPath {
+func (p ModuleSrcPath) genPathWithExt(ctx ModuleContext, ext string) ModuleGenPath {
 	return PathForModuleGen(ctx, p.moduleDir, pathtools.ReplaceExtension(p.path, ext))
 }
 
-func (p ModuleSrcPath) objPathWithExt(ctx AndroidModuleContext, subdir, ext string) ModuleObjPath {
+func (p ModuleSrcPath) objPathWithExt(ctx ModuleContext, subdir, ext string) ModuleObjPath {
 	return PathForModuleObj(ctx, subdir, p.moduleDir, pathtools.ReplaceExtension(p.path, ext))
 }
 
-func (p ModuleSrcPath) resPathWithName(ctx AndroidModuleContext, name string) ModuleResPath {
+func (p ModuleSrcPath) resPathWithName(ctx ModuleContext, name string) ModuleResPath {
 	// TODO: Use full directory if the new ctx is not the current ctx?
 	return PathForModuleRes(ctx, p.path, name)
 }
@@ -550,7 +550,7 @@
 
 // PathForModuleOut returns a Path representing the paths... under the module's
 // output directory.
-func PathForModuleOut(ctx AndroidModuleContext, paths ...string) ModuleOutPath {
+func PathForModuleOut(ctx ModuleContext, paths ...string) ModuleOutPath {
 	p := validatePath(ctx, paths...)
 	return ModuleOutPath{PathForOutput(ctx, ".intermediates", ctx.ModuleDir(), ctx.ModuleName(), ctx.ModuleSubDir(), p)}
 }
@@ -568,7 +568,7 @@
 
 // PathForModuleGen returns a Path representing the paths... under the module's
 // `gen' directory.
-func PathForModuleGen(ctx AndroidModuleContext, paths ...string) ModuleGenPath {
+func PathForModuleGen(ctx ModuleContext, paths ...string) ModuleGenPath {
 	p := validatePath(ctx, paths...)
 	return ModuleGenPath{
 		PathForModuleOut(ctx, "gen", p),
@@ -576,12 +576,12 @@
 	}
 }
 
-func (p ModuleGenPath) genPathWithExt(ctx AndroidModuleContext, ext string) ModuleGenPath {
+func (p ModuleGenPath) genPathWithExt(ctx ModuleContext, ext string) ModuleGenPath {
 	// TODO: make a different path for local vs remote generated files?
 	return PathForModuleGen(ctx, pathtools.ReplaceExtension(p.path, ext))
 }
 
-func (p ModuleGenPath) objPathWithExt(ctx AndroidModuleContext, subdir, ext string) ModuleObjPath {
+func (p ModuleGenPath) objPathWithExt(ctx ModuleContext, subdir, ext string) ModuleObjPath {
 	return PathForModuleObj(ctx, subdir, pathtools.ReplaceExtension(p.path, ext))
 }
 
@@ -595,7 +595,7 @@
 
 // PathForModuleObj returns a Path representing the paths... under the module's
 // 'obj' directory.
-func PathForModuleObj(ctx AndroidModuleContext, paths ...string) ModuleObjPath {
+func PathForModuleObj(ctx ModuleContext, paths ...string) ModuleObjPath {
 	p := validatePath(ctx, paths...)
 	return ModuleObjPath{PathForModuleOut(ctx, "obj", p)}
 }
@@ -610,14 +610,14 @@
 
 // PathForModuleRes returns a Path representing the paths... under the module's
 // 'res' directory.
-func PathForModuleRes(ctx AndroidModuleContext, paths ...string) ModuleResPath {
+func PathForModuleRes(ctx ModuleContext, paths ...string) ModuleResPath {
 	p := validatePath(ctx, paths...)
 	return ModuleResPath{PathForModuleOut(ctx, "res", p)}
 }
 
 // PathForModuleInstall returns a Path representing the install path for the
 // module appended with paths...
-func PathForModuleInstall(ctx AndroidModuleContext, paths ...string) OutputPath {
+func PathForModuleInstall(ctx ModuleContext, paths ...string) OutputPath {
 	var outPaths []string
 	if ctx.Device() {
 		partition := "system"
diff --git a/common/paths_test.go b/android/paths_test.go
similarity index 99%
rename from common/paths_test.go
rename to android/paths_test.go
index c231163..9d69473 100644
--- a/common/paths_test.go
+++ b/android/paths_test.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package common
+package android
 
 import (
 	"errors"
diff --git a/common/util.go b/android/util.go
similarity index 98%
rename from common/util.go
rename to android/util.go
index 0a0ed13..60c8a63 100644
--- a/common/util.go
+++ b/android/util.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package common
+package android
 
 import "sort"
 
diff --git a/common/variable.go b/android/variable.go
similarity index 96%
rename from common/variable.go
rename to android/variable.go
index d67a8b7..29d7a08 100644
--- a/common/variable.go
+++ b/android/variable.go
@@ -12,7 +12,7 @@
 // See the License for the specific language governing permissions and
 // limitations under the License.
 
-package common
+package android
 
 import (
 	"fmt"
@@ -129,10 +129,10 @@
 	}
 }
 
-func variableMutator(mctx AndroidBottomUpMutatorContext) {
-	var module AndroidModule
+func variableMutator(mctx BottomUpMutatorContext) {
+	var module Module
 	var ok bool
-	if module, ok = mctx.Module().(AndroidModule); !ok {
+	if module, ok = mctx.Module().(Module); !ok {
 		return
 	}
 
@@ -169,7 +169,7 @@
 	}
 }
 
-func (a *AndroidModuleBase) setVariableProperties(ctx AndroidBottomUpMutatorContext,
+func (a *ModuleBase) setVariableProperties(ctx BottomUpMutatorContext,
 	prefix string, productVariablePropertyValue reflect.Value, variableValue interface{}) {
 
 	printfIntoProperties(productVariablePropertyValue, variableValue)
diff --git a/cc/androidmk.go b/cc/androidmk.go
index 3467e69..103d5ea 100644
--- a/cc/androidmk.go
+++ b/cc/androidmk.go
@@ -20,12 +20,12 @@
 	"path/filepath"
 	"strings"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
-func (c *Module) AndroidMk() (ret common.AndroidMkData, err error) {
+func (c *Module) AndroidMk() (ret android.AndroidMkData, err error) {
 	ret.OutputFile = c.outputFile
-	ret.Extra = append(ret.Extra, func(w io.Writer, outputFile common.Path) (err error) {
+	ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) (err error) {
 		fmt.Fprintln(w, "LOCAL_SANITIZE := never")
 		if len(c.Properties.AndroidMkSharedLibs) > 0 {
 			fmt.Fprintln(w, "LOCAL_SHARED_LIBRARIES := "+strings.Join(c.Properties.AndroidMkSharedLibs, " "))
@@ -36,7 +36,7 @@
 	callSubAndroidMk := func(obj interface{}) {
 		if obj != nil {
 			if androidmk, ok := obj.(interface {
-				AndroidMk(*common.AndroidMkData)
+				AndroidMk(*android.AndroidMkData)
 			}); ok {
 				androidmk.AndroidMk(&ret)
 			}
@@ -56,7 +56,7 @@
 	return ret, nil
 }
 
-func (library *baseLinker) AndroidMk(ret *common.AndroidMkData) {
+func (library *baseLinker) AndroidMk(ret *android.AndroidMkData) {
 	if library.static() {
 		ret.Class = "STATIC_LIBRARIES"
 	} else {
@@ -64,10 +64,10 @@
 	}
 }
 
-func (library *libraryLinker) AndroidMk(ret *common.AndroidMkData) {
+func (library *libraryLinker) AndroidMk(ret *android.AndroidMkData) {
 	library.baseLinker.AndroidMk(ret)
 
-	ret.Extra = append(ret.Extra, func(w io.Writer, outputFile common.Path) error {
+	ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) error {
 		var exportedIncludes []string
 		for _, flag := range library.exportedFlags() {
 			if strings.HasPrefix(flag, "-I") {
@@ -88,7 +88,7 @@
 	})
 }
 
-func (object *objectLinker) AndroidMk(ret *common.AndroidMkData) {
+func (object *objectLinker) AndroidMk(ret *android.AndroidMkData) {
 	ret.Custom = func(w io.Writer, name, prefix string) error {
 		out := ret.OutputFile.Path()
 
@@ -99,26 +99,26 @@
 	}
 }
 
-func (binary *binaryLinker) AndroidMk(ret *common.AndroidMkData) {
+func (binary *binaryLinker) AndroidMk(ret *android.AndroidMkData) {
 	ret.Class = "EXECUTABLES"
-	ret.Extra = append(ret.Extra, func(w io.Writer, outputFile common.Path) error {
+	ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) error {
 		fmt.Fprintln(w, "LOCAL_CXX_STL := none")
 		fmt.Fprintln(w, "LOCAL_SYSTEM_SHARED_LIBRARIES :=")
 		return nil
 	})
 }
 
-func (test *testLinker) AndroidMk(ret *common.AndroidMkData) {
+func (test *testLinker) AndroidMk(ret *android.AndroidMkData) {
 	test.binaryLinker.AndroidMk(ret)
 	if Bool(test.Properties.Test_per_src) {
 		ret.SubName = test.binaryLinker.Properties.Stem
 	}
 }
 
-func (library *toolchainLibraryLinker) AndroidMk(ret *common.AndroidMkData) {
+func (library *toolchainLibraryLinker) AndroidMk(ret *android.AndroidMkData) {
 	library.baseLinker.AndroidMk(ret)
 
-	ret.Extra = append(ret.Extra, func(w io.Writer, outputFile common.Path) error {
+	ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) error {
 		fmt.Fprintln(w, "LOCAL_MODULE_SUFFIX := "+outputFile.Ext())
 		fmt.Fprintln(w, "LOCAL_CXX_STL := none")
 		fmt.Fprintln(w, "LOCAL_SYSTEM_SHARED_LIBRARIES :=")
@@ -127,8 +127,8 @@
 	})
 }
 
-func (installer *baseInstaller) AndroidMk(ret *common.AndroidMkData) {
-	ret.Extra = append(ret.Extra, func(w io.Writer, outputFile common.Path) error {
+func (installer *baseInstaller) AndroidMk(ret *android.AndroidMkData) {
+	ret.Extra = append(ret.Extra, func(w io.Writer, outputFile android.Path) error {
 		path := installer.path.RelPathString()
 		dir, file := filepath.Split(path)
 		stem := strings.TrimSuffix(file, filepath.Ext(file))
diff --git a/cc/arm64_device.go b/cc/arm64_device.go
index 8ee2bc4..dcdce0f 100644
--- a/cc/arm64_device.go
+++ b/cc/arm64_device.go
@@ -18,7 +18,7 @@
 	"fmt"
 	"strings"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 var (
@@ -195,7 +195,7 @@
 	return "libclang_rt.asan-aarch64-android.so"
 }
 
-func arm64ToolchainFactory(arch common.Arch) Toolchain {
+func arm64ToolchainFactory(arch android.Arch) Toolchain {
 	if arch.ArchVariant != "armv8-a" {
 		panic(fmt.Sprintf("Unknown ARM architecture version: %q", arch.ArchVariant))
 	}
@@ -207,5 +207,5 @@
 }
 
 func init() {
-	registerDeviceToolchainFactory(common.Arm64, arm64ToolchainFactory)
+	registerDeviceToolchainFactory(android.Arm64, arm64ToolchainFactory)
 }
diff --git a/cc/arm_device.go b/cc/arm_device.go
index 323ebc9..1b467da 100644
--- a/cc/arm_device.go
+++ b/cc/arm_device.go
@@ -18,7 +18,7 @@
 	"fmt"
 	"strings"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 var (
@@ -348,7 +348,7 @@
 	return "libclang_rt.asan-arm-android.so"
 }
 
-func armToolchainFactory(arch common.Arch) Toolchain {
+func armToolchainFactory(arch android.Arch) Toolchain {
 	var fixCortexA8 string
 	toolchainCflags := make([]string, 2, 3)
 	toolchainClangCflags := make([]string, 2, 3)
@@ -391,5 +391,5 @@
 }
 
 func init() {
-	registerDeviceToolchainFactory(common.Arm, armToolchainFactory)
+	registerDeviceToolchainFactory(android.Arm, armToolchainFactory)
 }
diff --git a/cc/builder.go b/cc/builder.go
index cd12635..4efcc27 100644
--- a/cc/builder.go
+++ b/cc/builder.go
@@ -19,7 +19,7 @@
 // functions.
 
 import (
-	"android/soong/common"
+	"android/soong/android"
 	"fmt"
 	"runtime"
 	"strconv"
@@ -36,7 +36,7 @@
 )
 
 var (
-	pctx = common.NewPackageContext("android/soong/cc")
+	pctx = android.NewPackageContext("android/soong/cc")
 
 	cc = pctx.StaticRule("cc",
 		blueprint.RuleParams{
@@ -170,10 +170,10 @@
 }
 
 // Generate rules for compiling multiple .c, .cpp, or .S files to individual .o files
-func TransformSourceToObj(ctx common.AndroidModuleContext, subdir string, srcFiles common.Paths,
-	flags builderFlags, deps common.Paths) (objFiles common.Paths) {
+func TransformSourceToObj(ctx android.ModuleContext, subdir string, srcFiles android.Paths,
+	flags builderFlags, deps android.Paths) (objFiles android.Paths) {
 
-	objFiles = make(common.Paths, len(srcFiles))
+	objFiles = make(android.Paths, len(srcFiles))
 
 	cflags := flags.globalFlags + " " + flags.cFlags + " " + flags.conlyFlags
 	cppflags := flags.globalFlags + " " + flags.cFlags + " " + flags.cppFlags
@@ -188,7 +188,7 @@
 	}
 
 	for i, srcFile := range srcFiles {
-		objFile := common.ObjPathWithExt(ctx, srcFile, subdir, "o")
+		objFile := android.ObjPathWithExt(ctx, srcFile, subdir, "o")
 
 		objFiles[i] = objFile
 
@@ -225,7 +225,7 @@
 			ccCmd = gccCmd(flags.toolchain, ccCmd)
 		}
 
-		ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+		ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 			Rule:      cc,
 			Output:    objFile,
 			Input:     srcFile,
@@ -241,13 +241,13 @@
 }
 
 // Generate a rule for compiling multiple .o files to a static library (.a)
-func TransformObjToStaticLib(ctx common.AndroidModuleContext, objFiles common.Paths,
-	flags builderFlags, outputFile common.ModuleOutPath) {
+func TransformObjToStaticLib(ctx android.ModuleContext, objFiles android.Paths,
+	flags builderFlags, outputFile android.ModuleOutPath) {
 
 	arCmd := gccCmd(flags.toolchain, "ar")
 	arFlags := "crsPD"
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:   ar,
 		Output: outputFile,
 		Inputs: objFiles,
@@ -262,21 +262,21 @@
 // darwin.  The darwin ar tool doesn't support @file for list files, and has a
 // very small command line length limit, so we have to split the ar into multiple
 // steps, each appending to the previous one.
-func TransformDarwinObjToStaticLib(ctx common.AndroidModuleContext, objFiles common.Paths,
-	flags builderFlags, outputPath common.ModuleOutPath) {
+func TransformDarwinObjToStaticLib(ctx android.ModuleContext, objFiles android.Paths,
+	flags builderFlags, outputPath android.ModuleOutPath) {
 
 	arFlags := "cqs"
 
 	if len(objFiles) == 0 {
-		dummy := common.PathForModuleOut(ctx, "dummy" + objectExtension)
-		dummyAr := common.PathForModuleOut(ctx, "dummy" + staticLibraryExtension)
+		dummy := android.PathForModuleOut(ctx, "dummy"+objectExtension)
+		dummyAr := android.PathForModuleOut(ctx, "dummy"+staticLibraryExtension)
 
-		ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+		ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 			Rule:   emptyFile,
 			Output: dummy,
 		})
 
-		ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+		ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 			Rule:   darwinAr,
 			Output: dummyAr,
 			Input:  dummy,
@@ -285,7 +285,7 @@
 			},
 		})
 
-		ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+		ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 			Rule:   darwinAppendAr,
 			Output: outputPath,
 			Input:  dummy,
@@ -325,9 +325,9 @@
 			})
 		} else {
 			ctx.Build(pctx, blueprint.BuildParams{
-				Rule:      darwinAppendAr,
-				Outputs:   []string{out},
-				Inputs:    l,
+				Rule:    darwinAppendAr,
+				Outputs: []string{out},
+				Inputs:  l,
 				Args: map[string]string{
 					"arFlags": arFlags,
 					"inAr":    in,
@@ -339,9 +339,9 @@
 
 // Generate a rule for compiling multiple .o files, plus static libraries, whole static libraries,
 // and shared libraires, to a shared library (.so) or dynamic executable
-func TransformObjToDynamicBinary(ctx common.AndroidModuleContext,
-	objFiles, sharedLibs, staticLibs, lateStaticLibs, wholeStaticLibs, deps common.Paths,
-	crtBegin, crtEnd common.OptionalPath, groupLate bool, flags builderFlags, outputFile common.WritablePath) {
+func TransformObjToDynamicBinary(ctx android.ModuleContext,
+	objFiles, sharedLibs, staticLibs, lateStaticLibs, wholeStaticLibs, deps android.Paths,
+	crtBegin, crtEnd android.OptionalPath, groupLate bool, flags builderFlags, outputFile android.WritablePath) {
 
 	var ldCmd string
 	if flags.clang {
@@ -359,7 +359,7 @@
 
 	if len(wholeStaticLibs) > 0 {
 		if ctx.Host() && ctx.Darwin() {
-			libFlagsList = append(libFlagsList, common.JoinWithPrefix(wholeStaticLibs.Strings(), "-force_load "))
+			libFlagsList = append(libFlagsList, android.JoinWithPrefix(wholeStaticLibs.Strings(), "-force_load "))
 		} else {
 			libFlagsList = append(libFlagsList, "-Wl,--whole-archive ")
 			libFlagsList = append(libFlagsList, wholeStaticLibs.Strings()...)
@@ -398,7 +398,7 @@
 		deps = append(deps, crtBegin.Path(), crtEnd.Path())
 	}
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:      ld,
 		Output:    outputFile,
 		Inputs:    objFiles,
@@ -415,8 +415,8 @@
 }
 
 // Generate a rule for compiling multiple .o files to a .o using ld partial linking
-func TransformObjsToObj(ctx common.AndroidModuleContext, objFiles common.Paths,
-	flags builderFlags, outputFile common.WritablePath) {
+func TransformObjsToObj(ctx android.ModuleContext, objFiles android.Paths,
+	flags builderFlags, outputFile android.WritablePath) {
 
 	var ldCmd string
 	if flags.clang {
@@ -425,7 +425,7 @@
 		ldCmd = gccCmd(flags.toolchain, "g++")
 	}
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:   partialLd,
 		Output: outputFile,
 		Inputs: objFiles,
@@ -437,12 +437,12 @@
 }
 
 // Generate a rule for runing objcopy --prefix-symbols on a binary
-func TransformBinaryPrefixSymbols(ctx common.AndroidModuleContext, prefix string, inputFile common.Path,
-	flags builderFlags, outputFile common.WritablePath) {
+func TransformBinaryPrefixSymbols(ctx android.ModuleContext, prefix string, inputFile android.Path,
+	flags builderFlags, outputFile android.WritablePath) {
 
 	objcopyCmd := gccCmd(flags.toolchain, "objcopy")
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:   prefixSymbols,
 		Output: outputFile,
 		Input:  inputFile,
@@ -453,8 +453,8 @@
 	})
 }
 
-func TransformStrip(ctx common.AndroidModuleContext, inputFile common.Path,
-	outputFile common.WritablePath, flags builderFlags) {
+func TransformStrip(ctx android.ModuleContext, inputFile android.Path,
+	outputFile android.WritablePath, flags builderFlags) {
 
 	crossCompile := gccCmd(flags.toolchain, "")
 	args := ""
@@ -468,7 +468,7 @@
 		args += " --keep-symbols"
 	}
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:   strip,
 		Output: outputFile,
 		Input:  inputFile,
@@ -479,20 +479,20 @@
 	})
 }
 
-func TransformDarwinStrip(ctx common.AndroidModuleContext, inputFile common.Path,
-	outputFile common.WritablePath) {
+func TransformDarwinStrip(ctx android.ModuleContext, inputFile android.Path,
+	outputFile android.WritablePath) {
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:   darwinStrip,
 		Output: outputFile,
 		Input:  inputFile,
 	})
 }
 
-func CopyGccLib(ctx common.AndroidModuleContext, libName string,
-	flags builderFlags, outputFile common.WritablePath) {
+func CopyGccLib(ctx android.ModuleContext, libName string,
+	flags builderFlags, outputFile android.WritablePath) {
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:   copyGccLib,
 		Output: outputFile,
 		Args: map[string]string{
diff --git a/cc/cc.go b/cc/cc.go
index 62d77f5..d5f17a8 100644
--- a/cc/cc.go
+++ b/cc/cc.go
@@ -27,7 +27,7 @@
 	"github.com/google/blueprint/proptools"
 
 	"android/soong"
-	"android/soong/common"
+	"android/soong/android"
 	"android/soong/genrule"
 )
 
@@ -56,19 +56,19 @@
 	// LinkageMutator must be registered after common.ArchMutator, but that is guaranteed by
 	// the Go initialization order because this package depends on common, so common's init
 	// functions will run first.
-	common.RegisterBottomUpMutator("link", linkageMutator)
-	common.RegisterBottomUpMutator("test_per_src", testPerSrcMutator)
-	common.RegisterBottomUpMutator("deps", depsMutator)
+	android.RegisterBottomUpMutator("link", linkageMutator)
+	android.RegisterBottomUpMutator("test_per_src", testPerSrcMutator)
+	android.RegisterBottomUpMutator("deps", depsMutator)
 
-	common.RegisterTopDownMutator("asan_deps", sanitizerDepsMutator(asan))
-	common.RegisterBottomUpMutator("asan", sanitizerMutator(asan))
+	android.RegisterTopDownMutator("asan_deps", sanitizerDepsMutator(asan))
+	android.RegisterBottomUpMutator("asan", sanitizerMutator(asan))
 
-	common.RegisterTopDownMutator("tsan_deps", sanitizerDepsMutator(tsan))
-	common.RegisterBottomUpMutator("tsan", sanitizerMutator(tsan))
+	android.RegisterTopDownMutator("tsan_deps", sanitizerDepsMutator(tsan))
+	android.RegisterBottomUpMutator("tsan", sanitizerMutator(tsan))
 }
 
 var (
-	HostPrebuiltTag = pctx.VariableConfigMethod("HostPrebuiltTag", common.Config.PrebuiltOS)
+	HostPrebuiltTag = pctx.VariableConfigMethod("HostPrebuiltTag", android.Config.PrebuiltOS)
 
 	LibcRoot = pctx.SourcePathVariable("LibcRoot", "bionic/libc")
 )
@@ -118,7 +118,7 @@
 )
 
 func init() {
-	if common.CurrentHostType() == common.Linux {
+	if android.CurrentHostType() == android.Linux {
 		commonGlobalCflags = append(commonGlobalCflags, "-fdebug-prefix-map=/proc/self/cwd=")
 	}
 
@@ -163,13 +163,13 @@
 
 	pctx.SourcePathVariable("clangDefaultBase", "prebuilts/clang/host")
 	pctx.VariableFunc("clangBase", func(config interface{}) (string, error) {
-		if override := config.(common.Config).Getenv("LLVM_PREBUILTS_BASE"); override != "" {
+		if override := config.(android.Config).Getenv("LLVM_PREBUILTS_BASE"); override != "" {
 			return override, nil
 		}
 		return "${clangDefaultBase}", nil
 	})
 	pctx.VariableFunc("clangVersion", func(config interface{}) (string, error) {
-		if override := config.(common.Config).Getenv("LLVM_PREBUILTS_VERSION"); override != "" {
+		if override := config.(android.Config).Getenv("LLVM_PREBUILTS_VERSION"); override != "" {
 			return override, nil
 		}
 		return "clang-2812033", nil
@@ -193,18 +193,18 @@
 }
 
 type PathDeps struct {
-	SharedLibs, LateSharedLibs                  common.Paths
-	StaticLibs, LateStaticLibs, WholeStaticLibs common.Paths
+	SharedLibs, LateSharedLibs                  android.Paths
+	StaticLibs, LateStaticLibs, WholeStaticLibs android.Paths
 
-	ObjFiles               common.Paths
-	WholeStaticLibObjFiles common.Paths
+	ObjFiles               android.Paths
+	WholeStaticLibObjFiles android.Paths
 
-	GeneratedSources common.Paths
-	GeneratedHeaders common.Paths
+	GeneratedSources android.Paths
+	GeneratedHeaders android.Paths
 
 	Cflags, ReexportedCflags []string
 
-	CrtBegin, CrtEnd common.OptionalPath
+	CrtBegin, CrtEnd android.OptionalPath
 }
 
 type Flags struct {
@@ -224,7 +224,7 @@
 	RequiredInstructionSet string
 	DynamicLinker          string
 
-	CFlagsDeps common.Paths // Files depended on by compiler flags
+	CFlagsDeps android.Paths // Files depended on by compiler flags
 }
 
 type BaseCompilerProperties struct {
@@ -460,12 +460,12 @@
 }
 
 type ModuleContext interface {
-	common.AndroidModuleContext
+	android.ModuleContext
 	ModuleContextIntf
 }
 
 type BaseModuleContext interface {
-	common.AndroidBaseContext
+	android.BaseContext
 	ModuleContextIntf
 }
 
@@ -483,18 +483,18 @@
 
 type compiler interface {
 	feature
-	compile(ctx ModuleContext, flags Flags, deps PathDeps) common.Paths
+	compile(ctx ModuleContext, flags Flags, deps PathDeps) android.Paths
 }
 
 type linker interface {
 	feature
-	link(ctx ModuleContext, flags Flags, deps PathDeps, objFiles common.Paths) common.Path
+	link(ctx ModuleContext, flags Flags, deps PathDeps, objFiles android.Paths) android.Path
 	installable() bool
 }
 
 type installer interface {
 	props() []interface{}
-	install(ctx ModuleContext, path common.Path)
+	install(ctx ModuleContext, path android.Path)
 	inData() bool
 }
 
@@ -522,15 +522,15 @@
 // the blueprint.Module interface.  It delegates to compiler, linker, and installer interfaces
 // to construct the output file.  Behavior can be customized with a Customizer interface
 type Module struct {
-	common.AndroidModuleBase
-	common.DefaultableModule
+	android.ModuleBase
+	android.DefaultableModule
 
 	Properties BaseProperties
 	unused     UnusedProperties
 
 	// initialize before calling Init
-	hod      common.HostOrDeviceSupported
-	multilib common.Multilib
+	hod      android.HostOrDeviceSupported
+	multilib android.Multilib
 
 	// delegates, initialize before calling Init
 	customizer Customizer
@@ -543,7 +543,7 @@
 
 	androidMkSharedLibDeps []string
 
-	outputFile common.OptionalPath
+	outputFile android.OptionalPath
 
 	cachedToolchain Toolchain
 }
@@ -572,18 +572,18 @@
 		props = append(props, feature.props()...)
 	}
 
-	_, props = common.InitAndroidArchModule(c, c.hod, c.multilib, props...)
+	_, props = android.InitAndroidArchModule(c, c.hod, c.multilib, props...)
 
-	return common.InitDefaultableModule(c, c, props...)
+	return android.InitDefaultableModule(c, c, props...)
 }
 
 type baseModuleContext struct {
-	common.AndroidBaseContext
+	android.BaseContext
 	moduleContextImpl
 }
 
 type moduleContext struct {
-	common.AndroidModuleContext
+	android.ModuleContext
 	moduleContextImpl
 }
 
@@ -645,23 +645,23 @@
 	return ""
 }
 
-func newBaseModule(hod common.HostOrDeviceSupported, multilib common.Multilib) *Module {
+func newBaseModule(hod android.HostOrDeviceSupported, multilib android.Multilib) *Module {
 	return &Module{
 		hod:      hod,
 		multilib: multilib,
 	}
 }
 
-func newModule(hod common.HostOrDeviceSupported, multilib common.Multilib) *Module {
+func newModule(hod android.HostOrDeviceSupported, multilib android.Multilib) *Module {
 	module := newBaseModule(hod, multilib)
 	module.stl = &stl{}
 	module.sanitize = &sanitize{}
 	return module
 }
 
-func (c *Module) GenerateAndroidBuildActions(actx common.AndroidModuleContext) {
+func (c *Module) GenerateAndroidBuildActions(actx android.ModuleContext) {
 	ctx := &moduleContext{
-		AndroidModuleContext: actx,
+		ModuleContext: actx,
 		moduleContextImpl: moduleContextImpl{
 			mod: c,
 		},
@@ -711,7 +711,7 @@
 
 	flags.CFlags = append(flags.CFlags, deps.Cflags...)
 
-	var objFiles common.Paths
+	var objFiles android.Paths
 	if c.compiler != nil {
 		objFiles = c.compiler.compile(ctx, flags, deps)
 		if ctx.Failed() {
@@ -724,7 +724,7 @@
 		if ctx.Failed() {
 			return
 		}
-		c.outputFile = common.OptionalPathForPath(outputFile)
+		c.outputFile = android.OptionalPathForPath(outputFile)
 
 		if c.installer != nil && c.linker.installable() {
 			c.installer.install(ctx, outputFile)
@@ -796,9 +796,9 @@
 	return deps
 }
 
-func (c *Module) depsMutator(actx common.AndroidBottomUpMutatorContext) {
+func (c *Module) depsMutator(actx android.BottomUpMutatorContext) {
 	ctx := &baseModuleContext{
-		AndroidBaseContext: actx,
+		BaseContext: actx,
 		moduleContextImpl: moduleContextImpl{
 			mod: c,
 		},
@@ -843,7 +843,7 @@
 	}
 }
 
-func depsMutator(ctx common.AndroidBottomUpMutatorContext) {
+func depsMutator(ctx android.BottomUpMutatorContext) {
 	if c, ok := ctx.Module().(*Module); ok {
 		c.depsMutator(ctx)
 	}
@@ -870,14 +870,14 @@
 }
 
 // Convert dependencies to paths.  Returns a PathDeps containing paths
-func (c *Module) depsToPaths(ctx common.AndroidModuleContext) PathDeps {
+func (c *Module) depsToPaths(ctx android.ModuleContext) PathDeps {
 	var depPaths PathDeps
 
 	ctx.VisitDirectDeps(func(m blueprint.Module) {
 		name := ctx.OtherModuleName(m)
 		tag := ctx.OtherModuleDependencyTag(m)
 
-		a, _ := m.(common.AndroidModule)
+		a, _ := m.(android.Module)
 		if a == nil {
 			ctx.ModuleErrorf("module %q not an android module", name)
 			return
@@ -886,7 +886,7 @@
 		c, _ := m.(*Module)
 		if c == nil {
 			switch tag {
-			case common.DefaultsDepTag:
+			case android.DefaultsDepTag:
 			case genSourceDepTag:
 				if genRule, ok := m.(genrule.SourceFileGenerator); ok {
 					depPaths.GeneratedSources = append(depPaths.GeneratedSources,
@@ -899,7 +899,7 @@
 					depPaths.GeneratedHeaders = append(depPaths.GeneratedHeaders,
 						genRule.GeneratedSourceFiles()...)
 					depPaths.Cflags = append(depPaths.Cflags,
-						includeDirsToFlags(common.Paths{genRule.GeneratedHeaderDir()}))
+						includeDirsToFlags(android.Paths{genRule.GeneratedHeaderDir()}))
 				} else {
 					ctx.ModuleErrorf("module %q is not a genrule", name)
 				}
@@ -938,7 +938,7 @@
 			}
 		}
 
-		var depPtr *common.Paths
+		var depPtr *android.Paths
 
 		switch tag {
 		case sharedDepTag:
@@ -1039,14 +1039,14 @@
 	flags.YaccFlags = append(flags.YaccFlags, compiler.Properties.Yaccflags...)
 
 	// Include dir cflags
-	rootIncludeDirs := common.PathsForSource(ctx, compiler.Properties.Include_dirs)
-	localIncludeDirs := common.PathsForModuleSrc(ctx, compiler.Properties.Local_include_dirs)
+	rootIncludeDirs := android.PathsForSource(ctx, compiler.Properties.Include_dirs)
+	localIncludeDirs := android.PathsForModuleSrc(ctx, compiler.Properties.Local_include_dirs)
 	flags.GlobalFlags = append(flags.GlobalFlags,
 		includeDirsToFlags(localIncludeDirs),
 		includeDirsToFlags(rootIncludeDirs))
 
-	rootIncludeFiles := common.PathsForSource(ctx, compiler.Properties.Include_files)
-	localIncludeFiles := common.PathsForModuleSrc(ctx, compiler.Properties.Local_include_files)
+	rootIncludeFiles := android.PathsForSource(ctx, compiler.Properties.Include_files)
+	localIncludeFiles := android.PathsForModuleSrc(ctx, compiler.Properties.Local_include_files)
 
 	flags.GlobalFlags = append(flags.GlobalFlags,
 		includeFilesToFlags(rootIncludeFiles),
@@ -1061,9 +1061,9 @@
 		}
 
 		flags.GlobalFlags = append(flags.GlobalFlags, []string{
-			"-I" + common.PathForModuleSrc(ctx).String(),
-			"-I" + common.PathForModuleOut(ctx).String(),
-			"-I" + common.PathForModuleGen(ctx).String(),
+			"-I" + android.PathForModuleSrc(ctx).String(),
+			"-I" + android.PathForModuleOut(ctx).String(),
+			"-I" + android.PathForModuleGen(ctx).String(),
 		}...)
 	}
 
@@ -1164,7 +1164,7 @@
 	// vendor/device specific things), we could extend this to be a ternary
 	// value.
 	strict := true
-	if strings.HasPrefix(common.PathForModuleSrc(ctx).String(), "external/") {
+	if strings.HasPrefix(android.PathForModuleSrc(ctx).String(), "external/") {
 		strict = false
 	}
 
@@ -1177,7 +1177,7 @@
 	return flags
 }
 
-func (compiler *baseCompiler) compile(ctx ModuleContext, flags Flags, deps PathDeps) common.Paths {
+func (compiler *baseCompiler) compile(ctx ModuleContext, flags Flags, deps PathDeps) android.Paths {
 	// Compile files listed in c.Properties.Srcs into objects
 	objFiles := compiler.compileObjs(ctx, flags, "",
 		compiler.Properties.Srcs, compiler.Properties.Exclude_srcs,
@@ -1191,8 +1191,8 @@
 }
 
 // Compile a list of source files into objects a specified subdirectory
-func (compiler *baseCompiler) compileObjs(ctx common.AndroidModuleContext, flags Flags,
-	subdir string, srcFiles, excludes []string, extraSrcs, deps common.Paths) common.Paths {
+func (compiler *baseCompiler) compileObjs(ctx android.ModuleContext, flags Flags,
+	subdir string, srcFiles, excludes []string, extraSrcs, deps android.Paths) android.Paths {
 
 	buildFlags := flagsToBuilderFlags(flags)
 
@@ -1349,7 +1349,7 @@
 	dir64 string
 	data  bool
 
-	path common.OutputPath
+	path android.OutputPath
 }
 
 var _ installer = (*baseInstaller)(nil)
@@ -1358,12 +1358,12 @@
 	return []interface{}{&installer.Properties}
 }
 
-func (installer *baseInstaller) install(ctx ModuleContext, file common.Path) {
+func (installer *baseInstaller) install(ctx ModuleContext, file android.Path) {
 	subDir := installer.dir
 	if ctx.toolchain().Is64Bit() && installer.dir64 != "" {
 		subDir = installer.dir64
 	}
-	dir := common.PathForModuleInstall(ctx, subDir, installer.Properties.Relative_install_path)
+	dir := android.PathForModuleInstall(ctx, subDir, installer.Properties.Relative_install_path)
 	installer.path = ctx.InstallFile(dir, file)
 }
 
@@ -1382,8 +1382,8 @@
 }
 
 func (f *flagExporter) exportIncludes(ctx ModuleContext, inc string) {
-	includeDirs := common.PathsForModuleSrc(ctx, f.Properties.Export_include_dirs)
-	f.flags = append(f.flags, common.JoinWithPrefix(includeDirs.Strings(), inc))
+	includeDirs := android.PathsForModuleSrc(ctx, f.Properties.Export_include_dirs)
+	f.flags = append(f.flags, android.JoinWithPrefix(includeDirs.Strings(), inc))
 }
 
 func (f *flagExporter) reexportFlags(flags []string) {
@@ -1407,7 +1407,7 @@
 	Properties LibraryCompilerProperties
 
 	// For reusing static library objects for shared library
-	reuseObjFiles common.Paths
+	reuseObjFiles android.Paths
 }
 
 var _ compiler = (*libraryCompiler)(nil)
@@ -1423,7 +1423,7 @@
 	// MinGW spits out warnings about -fPIC even for -fpie?!) being ignored because
 	// all code is position independent, and then those warnings get promoted to
 	// errors.
-	if ctx.HostType() != common.Windows {
+	if ctx.HostType() != android.Windows {
 		flags.CFlags = append(flags.CFlags, "-fPIC")
 	}
 
@@ -1436,18 +1436,18 @@
 	return flags
 }
 
-func (library *libraryCompiler) compile(ctx ModuleContext, flags Flags, deps PathDeps) common.Paths {
-	var objFiles common.Paths
+func (library *libraryCompiler) compile(ctx ModuleContext, flags Flags, deps PathDeps) android.Paths {
+	var objFiles android.Paths
 
 	objFiles = library.baseCompiler.compile(ctx, flags, deps)
 	library.reuseObjFiles = objFiles
 
 	if library.linker.static() {
-		objFiles = append(objFiles, library.compileObjs(ctx, flags, common.DeviceStaticLibrary,
+		objFiles = append(objFiles, library.compileObjs(ctx, flags, android.DeviceStaticLibrary,
 			library.Properties.Static.Srcs, library.Properties.Static.Exclude_srcs,
 			nil, deps.GeneratedHeaders)...)
 	} else {
-		objFiles = append(objFiles, library.compileObjs(ctx, flags, common.DeviceSharedLibrary,
+		objFiles = append(objFiles, library.compileObjs(ctx, flags, android.DeviceSharedLibrary,
 			library.Properties.Shared.Srcs, library.Properties.Shared.Exclude_srcs,
 			nil, deps.GeneratedHeaders)...)
 	}
@@ -1472,7 +1472,7 @@
 	wholeStaticMissingDeps []string
 
 	// For whole_static_libs
-	objFiles common.Paths
+	objFiles android.Paths
 }
 
 var _ linker = (*libraryLinker)(nil)
@@ -1549,12 +1549,12 @@
 }
 
 func (library *libraryLinker) linkStatic(ctx ModuleContext,
-	flags Flags, deps PathDeps, objFiles common.Paths) common.Path {
+	flags Flags, deps PathDeps, objFiles android.Paths) android.Path {
 
-	library.objFiles = append(common.Paths{}, deps.WholeStaticLibObjFiles...)
+	library.objFiles = append(android.Paths{}, deps.WholeStaticLibObjFiles...)
 	library.objFiles = append(library.objFiles, objFiles...)
 
-	outputFile := common.PathForModuleOut(ctx,
+	outputFile := android.PathForModuleOut(ctx,
 		ctx.ModuleName()+library.Properties.VariantName+staticLibraryExtension)
 
 	if ctx.Darwin() {
@@ -1571,14 +1571,14 @@
 }
 
 func (library *libraryLinker) linkShared(ctx ModuleContext,
-	flags Flags, deps PathDeps, objFiles common.Paths) common.Path {
+	flags Flags, deps PathDeps, objFiles android.Paths) android.Path {
 
-	var linkerDeps common.Paths
+	var linkerDeps android.Paths
 
-	versionScript := common.OptionalPathForModuleSrc(ctx, library.Properties.Version_script)
-	unexportedSymbols := common.OptionalPathForModuleSrc(ctx, library.Properties.Unexported_symbols_list)
-	forceNotWeakSymbols := common.OptionalPathForModuleSrc(ctx, library.Properties.Force_symbols_not_weak_list)
-	forceWeakSymbols := common.OptionalPathForModuleSrc(ctx, library.Properties.Force_symbols_weak_list)
+	versionScript := android.OptionalPathForModuleSrc(ctx, library.Properties.Version_script)
+	unexportedSymbols := android.OptionalPathForModuleSrc(ctx, library.Properties.Unexported_symbols_list)
+	forceNotWeakSymbols := android.OptionalPathForModuleSrc(ctx, library.Properties.Force_symbols_not_weak_list)
+	forceWeakSymbols := android.OptionalPathForModuleSrc(ctx, library.Properties.Force_symbols_weak_list)
 	if !ctx.Darwin() {
 		if versionScript.Valid() {
 			flags.LdFlags = append(flags.LdFlags, "-Wl,--version-script,"+versionScript.String())
@@ -1612,14 +1612,14 @@
 	}
 
 	fileName := ctx.ModuleName() + library.Properties.VariantName + flags.Toolchain.ShlibSuffix()
-	outputFile := common.PathForModuleOut(ctx, fileName)
+	outputFile := android.PathForModuleOut(ctx, fileName)
 	ret := outputFile
 
 	builderFlags := flagsToBuilderFlags(flags)
 
 	if library.stripper.needsStrip(ctx) {
 		strippedOutputFile := outputFile
-		outputFile = common.PathForModuleOut(ctx, "unstripped", fileName)
+		outputFile = android.PathForModuleOut(ctx, "unstripped", fileName)
 		library.stripper.strip(ctx, outputFile, strippedOutputFile, builderFlags)
 	}
 
@@ -1634,11 +1634,11 @@
 }
 
 func (library *libraryLinker) link(ctx ModuleContext,
-	flags Flags, deps PathDeps, objFiles common.Paths) common.Path {
+	flags Flags, deps PathDeps, objFiles android.Paths) android.Path {
 
 	objFiles = append(objFiles, deps.ObjFiles...)
 
-	var out common.Path
+	var out android.Path
 	if library.static() {
 		out = library.linkStatic(ctx, flags, deps, objFiles)
 	} else {
@@ -1678,7 +1678,7 @@
 	sanitize *sanitize
 }
 
-func (library *libraryInstaller) install(ctx ModuleContext, file common.Path) {
+func (library *libraryInstaller) install(ctx ModuleContext, file android.Path) {
 	if !library.linker.static() {
 		library.baseInstaller.install(ctx, file)
 	}
@@ -1688,8 +1688,8 @@
 	return library.baseInstaller.inData() || library.sanitize.inData()
 }
 
-func NewLibrary(hod common.HostOrDeviceSupported, shared, static bool) *Module {
-	module := newModule(hod, common.MultilibBoth)
+func NewLibrary(hod android.HostOrDeviceSupported, shared, static bool) *Module {
+	module := newModule(hod, android.MultilibBoth)
 
 	linker := &libraryLinker{}
 	linker.dynamicProperties.BuildShared = shared
@@ -1712,7 +1712,7 @@
 }
 
 func libraryFactory() (blueprint.Module, []interface{}) {
-	module := NewLibrary(common.HostAndDeviceSupported, true, true)
+	module := NewLibrary(android.HostAndDeviceSupported, true, true)
 	return module.Init()
 }
 
@@ -1725,7 +1725,7 @@
 }
 
 func objectFactory() (blueprint.Module, []interface{}) {
-	module := newBaseModule(common.DeviceSupported, common.MultilibBoth)
+	module := newBaseModule(android.DeviceSupported, android.MultilibBoth)
 	module.compiler = &baseCompiler{}
 	module.linker = &objectLinker{}
 	return module.Init()
@@ -1753,15 +1753,15 @@
 }
 
 func (object *objectLinker) link(ctx ModuleContext,
-	flags Flags, deps PathDeps, objFiles common.Paths) common.Path {
+	flags Flags, deps PathDeps, objFiles android.Paths) android.Path {
 
 	objFiles = append(objFiles, deps.ObjFiles...)
 
-	var outputFile common.Path
+	var outputFile android.Path
 	if len(objFiles) == 1 {
 		outputFile = objFiles[0]
 	} else {
-		output := common.PathForModuleOut(ctx, ctx.ModuleName()+objectExtension)
+		output := android.PathForModuleOut(ctx, ctx.ModuleName()+objectExtension)
 		TransformObjsToObj(ctx, objFiles, flagsToBuilderFlags(flags), output)
 		outputFile = output
 	}
@@ -1784,7 +1784,7 @@
 
 	Properties BinaryLinkerProperties
 
-	hostToolPath common.OptionalPath
+	hostToolPath android.OptionalPath
 }
 
 var _ linker = (*binaryLinker)(nil)
@@ -1861,8 +1861,8 @@
 	return true
 }
 
-func NewBinary(hod common.HostOrDeviceSupported) *Module {
-	module := newModule(hod, common.MultilibFirst)
+func NewBinary(hod android.HostOrDeviceSupported) *Module {
+	module := newModule(hod, android.MultilibFirst)
 	module.compiler = &baseCompiler{}
 	module.linker = &binaryLinker{}
 	module.installer = &baseInstaller{
@@ -1872,7 +1872,7 @@
 }
 
 func binaryFactory() (blueprint.Module, []interface{}) {
-	module := NewBinary(common.HostAndDeviceSupported)
+	module := NewBinary(android.HostAndDeviceSupported)
 	return module.Init()
 }
 
@@ -1881,7 +1881,7 @@
 
 	static := Bool(binary.Properties.Static_executable)
 	if ctx.Host() {
-		if ctx.HostType() == common.Linux {
+		if ctx.HostType() == android.Linux {
 			if binary.Properties.Static_executable == nil && Bool(ctx.AConfig().ProductVariables.HostStaticBinaries) {
 				static = true
 			}
@@ -1901,7 +1901,7 @@
 
 	if ctx.Host() && !binary.staticBinary() {
 		flags.LdFlags = append(flags.LdFlags, "-pie")
-		if ctx.HostType() == common.Windows {
+		if ctx.HostType() == android.Windows {
 			flags.LdFlags = append(flags.LdFlags, "-Wl,-e_mainCRTStartup")
 		}
 	}
@@ -1909,7 +1909,7 @@
 	// MinGW spits out warnings about -fPIC even for -fpie?!) being ignored because
 	// all code is position independent, and then those warnings get promoted to
 	// errors.
-	if ctx.HostType() != common.Windows {
+	if ctx.HostType() != android.Windows {
 		flags.CFlags = append(flags.CFlags, "-fpie")
 	}
 
@@ -1958,16 +1958,16 @@
 }
 
 func (binary *binaryLinker) link(ctx ModuleContext,
-	flags Flags, deps PathDeps, objFiles common.Paths) common.Path {
+	flags Flags, deps PathDeps, objFiles android.Paths) android.Path {
 
 	fileName := binary.getStem(ctx) + flags.Toolchain.ExecutableSuffix()
-	outputFile := common.PathForModuleOut(ctx, fileName)
+	outputFile := android.PathForModuleOut(ctx, fileName)
 	ret := outputFile
 	if ctx.HostOrDevice().Host() {
-		binary.hostToolPath = common.OptionalPathForPath(outputFile)
+		binary.hostToolPath = android.OptionalPathForPath(outputFile)
 	}
 
-	var linkerDeps common.Paths
+	var linkerDeps android.Paths
 
 	sharedLibs := deps.SharedLibs
 	sharedLibs = append(sharedLibs, deps.LateSharedLibs...)
@@ -1980,13 +1980,13 @@
 
 	if binary.stripper.needsStrip(ctx) {
 		strippedOutputFile := outputFile
-		outputFile = common.PathForModuleOut(ctx, "unstripped", fileName)
+		outputFile = android.PathForModuleOut(ctx, "unstripped", fileName)
 		binary.stripper.strip(ctx, outputFile, strippedOutputFile, builderFlags)
 	}
 
 	if binary.Properties.Prefix_symbols != "" {
 		afterPrefixSymbols := outputFile
-		outputFile = common.PathForModuleOut(ctx, "unprefixed", fileName)
+		outputFile = android.PathForModuleOut(ctx, "unprefixed", fileName)
 		TransformBinaryPrefixSymbols(ctx, binary.Properties.Prefix_symbols, outputFile,
 			flagsToBuilderFlags(flags), afterPrefixSymbols)
 	}
@@ -1998,7 +1998,7 @@
 	return ret
 }
 
-func (binary *binaryLinker) HostToolPath() common.OptionalPath {
+func (binary *binaryLinker) HostToolPath() android.OptionalPath {
 	return binary.hostToolPath
 }
 
@@ -2010,7 +2010,7 @@
 	return !ctx.AConfig().EmbeddedInMake() && !stripper.StripProperties.Strip.None
 }
 
-func (stripper *stripper) strip(ctx ModuleContext, in, out common.ModuleOutPath,
+func (stripper *stripper) strip(ctx ModuleContext, in, out android.ModuleOutPath,
 	flags builderFlags) {
 	if ctx.Darwin() {
 		TransformDarwinStrip(ctx, in, out)
@@ -2022,7 +2022,7 @@
 	}
 }
 
-func testPerSrcMutator(mctx common.AndroidBottomUpMutatorContext) {
+func testPerSrcMutator(mctx android.BottomUpMutatorContext) {
 	if m, ok := mctx.Module().(*Module); ok {
 		if test, ok := m.linker.(*testLinker); ok {
 			if Bool(test.Properties.Test_per_src) {
@@ -2071,12 +2071,12 @@
 		flags.CFlags = append(flags.CFlags, "-O0", "-g")
 
 		switch ctx.HostType() {
-		case common.Windows:
+		case android.Windows:
 			flags.CFlags = append(flags.CFlags, "-DGTEST_OS_WINDOWS")
-		case common.Linux:
+		case android.Linux:
 			flags.CFlags = append(flags.CFlags, "-DGTEST_OS_LINUX")
 			flags.LdFlags = append(flags.LdFlags, "-lpthread")
-		case common.Darwin:
+		case android.Darwin:
 			flags.CFlags = append(flags.CFlags, "-DGTEST_OS_MAC")
 			flags.LdFlags = append(flags.LdFlags, "-lpthread")
 		}
@@ -2110,14 +2110,14 @@
 	baseInstaller
 }
 
-func (installer *testInstaller) install(ctx ModuleContext, file common.Path) {
+func (installer *testInstaller) install(ctx ModuleContext, file android.Path) {
 	installer.dir = filepath.Join(installer.dir, ctx.ModuleName())
 	installer.dir64 = filepath.Join(installer.dir64, ctx.ModuleName())
 	installer.baseInstaller.install(ctx, file)
 }
 
-func NewTest(hod common.HostOrDeviceSupported) *Module {
-	module := newModule(hod, common.MultilibBoth)
+func NewTest(hod android.HostOrDeviceSupported) *Module {
+	module := newModule(hod, android.MultilibBoth)
 	module.compiler = &baseCompiler{}
 	linker := &testLinker{}
 	linker.Properties.Gtest = true
@@ -2133,7 +2133,7 @@
 }
 
 func testFactory() (blueprint.Module, []interface{}) {
-	module := NewTest(common.HostAndDeviceSupported)
+	module := NewTest(android.HostAndDeviceSupported)
 	return module.Init()
 }
 
@@ -2147,8 +2147,8 @@
 	return deps
 }
 
-func NewBenchmark(hod common.HostOrDeviceSupported) *Module {
-	module := newModule(hod, common.MultilibFirst)
+func NewBenchmark(hod android.HostOrDeviceSupported) *Module {
+	module := newModule(hod, android.MultilibFirst)
 	module.compiler = &baseCompiler{}
 	module.linker = &benchmarkLinker{}
 	module.installer = &baseInstaller{
@@ -2160,7 +2160,7 @@
 }
 
 func benchmarkFactory() (blueprint.Module, []interface{}) {
-	module := NewBenchmark(common.HostAndDeviceSupported)
+	module := NewBenchmark(android.HostAndDeviceSupported)
 	return module.Init()
 }
 
@@ -2169,7 +2169,7 @@
 //
 
 func libraryStaticFactory() (blueprint.Module, []interface{}) {
-	module := NewLibrary(common.HostAndDeviceSupported, false, true)
+	module := NewLibrary(android.HostAndDeviceSupported, false, true)
 	return module.Init()
 }
 
@@ -2178,7 +2178,7 @@
 //
 
 func librarySharedFactory() (blueprint.Module, []interface{}) {
-	module := NewLibrary(common.HostAndDeviceSupported, true, false)
+	module := NewLibrary(android.HostAndDeviceSupported, true, false)
 	return module.Init()
 }
 
@@ -2187,7 +2187,7 @@
 //
 
 func libraryHostStaticFactory() (blueprint.Module, []interface{}) {
-	module := NewLibrary(common.HostSupported, false, true)
+	module := NewLibrary(android.HostSupported, false, true)
 	return module.Init()
 }
 
@@ -2196,7 +2196,7 @@
 //
 
 func libraryHostSharedFactory() (blueprint.Module, []interface{}) {
-	module := NewLibrary(common.HostSupported, true, false)
+	module := NewLibrary(android.HostSupported, true, false)
 	return module.Init()
 }
 
@@ -2205,7 +2205,7 @@
 //
 
 func binaryHostFactory() (blueprint.Module, []interface{}) {
-	module := NewBinary(common.HostSupported)
+	module := NewBinary(android.HostSupported)
 	return module.Init()
 }
 
@@ -2214,7 +2214,7 @@
 //
 
 func testHostFactory() (blueprint.Module, []interface{}) {
-	module := NewTest(common.HostSupported)
+	module := NewTest(android.HostSupported)
 	return module.Init()
 }
 
@@ -2223,7 +2223,7 @@
 //
 
 func benchmarkHostFactory() (blueprint.Module, []interface{}) {
-	module := NewBenchmark(common.HostSupported)
+	module := NewBenchmark(android.HostSupported)
 	return module.Init()
 }
 
@@ -2231,11 +2231,11 @@
 // Defaults
 //
 type Defaults struct {
-	common.AndroidModuleBase
-	common.DefaultsModule
+	android.ModuleBase
+	android.DefaultsModule
 }
 
-func (*Defaults) GenerateAndroidBuildActions(ctx common.AndroidModuleContext) {
+func (*Defaults) GenerateAndroidBuildActions(ctx android.ModuleContext) {
 }
 
 func defaultsFactory() (blueprint.Module, []interface{}) {
@@ -2256,10 +2256,10 @@
 		&StripProperties{},
 	}
 
-	_, propertyStructs = common.InitAndroidArchModule(module, common.HostAndDeviceDefault,
-		common.MultilibDefault, propertyStructs...)
+	_, propertyStructs = android.InitAndroidArchModule(module, android.HostAndDeviceDefault,
+		android.MultilibDefault, propertyStructs...)
 
-	return common.InitDefaultsModule(module, module, propertyStructs...)
+	return android.InitDefaultsModule(module, module, propertyStructs...)
 }
 
 //
@@ -2286,7 +2286,7 @@
 }
 
 func toolchainLibraryFactory() (blueprint.Module, []interface{}) {
-	module := newBaseModule(common.DeviceSupported, common.MultilibBoth)
+	module := newBaseModule(android.DeviceSupported, android.MultilibBoth)
 	module.compiler = &baseCompiler{}
 	module.linker = &toolchainLibraryLinker{}
 	module.Properties.Clang = proptools.BoolPtr(false)
@@ -2294,10 +2294,10 @@
 }
 
 func (library *toolchainLibraryLinker) link(ctx ModuleContext,
-	flags Flags, deps PathDeps, objFiles common.Paths) common.Path {
+	flags Flags, deps PathDeps, objFiles android.Paths) android.Path {
 
 	libName := ctx.ModuleName() + staticLibraryExtension
-	outputFile := common.PathForModuleOut(ctx, libName)
+	outputFile := android.PathForModuleOut(ctx, libName)
 
 	if flags.Clang {
 		ctx.ModuleErrorf("toolchain_library must use GCC, not Clang")
@@ -2320,19 +2320,19 @@
 // either (with the exception of the shared STLs, which are installed to the app's directory rather
 // than to the system image).
 
-func getNdkLibDir(ctx common.AndroidModuleContext, toolchain Toolchain, version string) common.SourcePath {
+func getNdkLibDir(ctx android.ModuleContext, toolchain Toolchain, version string) android.SourcePath {
 	suffix := ""
 	// Most 64-bit NDK prebuilts store libraries in "lib64", except for arm64 which is not a
 	// multilib toolchain and stores the libraries in "lib".
-	if toolchain.Is64Bit() && ctx.Arch().ArchType != common.Arm64 {
+	if toolchain.Is64Bit() && ctx.Arch().ArchType != android.Arm64 {
 		suffix = "64"
 	}
-	return common.PathForSource(ctx, fmt.Sprintf("prebuilts/ndk/current/platforms/android-%s/arch-%s/usr/lib%s",
+	return android.PathForSource(ctx, fmt.Sprintf("prebuilts/ndk/current/platforms/android-%s/arch-%s/usr/lib%s",
 		version, toolchain.Name(), suffix))
 }
 
-func ndkPrebuiltModuleToPath(ctx common.AndroidModuleContext, toolchain Toolchain,
-	ext string, version string) common.Path {
+func ndkPrebuiltModuleToPath(ctx android.ModuleContext, toolchain Toolchain,
+	ext string, version string) android.Path {
 
 	// NDK prebuilts are named like: ndk_NAME.EXT.SDK_VERSION.
 	// We want to translate to just NAME.EXT
@@ -2351,13 +2351,13 @@
 }
 
 func ndkPrebuiltObjectFactory() (blueprint.Module, []interface{}) {
-	module := newBaseModule(common.DeviceSupported, common.MultilibBoth)
+	module := newBaseModule(android.DeviceSupported, android.MultilibBoth)
 	module.linker = &ndkPrebuiltObjectLinker{}
 	return module.Init()
 }
 
 func (c *ndkPrebuiltObjectLinker) link(ctx ModuleContext, flags Flags,
-	deps PathDeps, objFiles common.Paths) common.Path {
+	deps PathDeps, objFiles android.Paths) android.Path {
 	// A null build step, but it sets up the output path.
 	if !strings.HasPrefix(ctx.ModuleName(), "ndk_crt") {
 		ctx.ModuleErrorf("NDK prebuilts must have an ndk_crt prefixed name")
@@ -2383,7 +2383,7 @@
 }
 
 func ndkPrebuiltLibraryFactory() (blueprint.Module, []interface{}) {
-	module := newBaseModule(common.DeviceSupported, common.MultilibBoth)
+	module := newBaseModule(android.DeviceSupported, android.MultilibBoth)
 	linker := &ndkPrebuiltLibraryLinker{}
 	linker.dynamicProperties.BuildShared = true
 	module.linker = linker
@@ -2391,7 +2391,7 @@
 }
 
 func (ndk *ndkPrebuiltLibraryLinker) link(ctx ModuleContext, flags Flags,
-	deps PathDeps, objFiles common.Paths) common.Path {
+	deps PathDeps, objFiles android.Paths) android.Path {
 	// A null build step, but it sets up the output path.
 	if !strings.HasPrefix(ctx.ModuleName(), "ndk_lib") {
 		ctx.ModuleErrorf("NDK prebuilts must have an ndk_lib prefixed name")
@@ -2412,7 +2412,7 @@
 }
 
 func ndkPrebuiltSharedStlFactory() (blueprint.Module, []interface{}) {
-	module := newBaseModule(common.DeviceSupported, common.MultilibBoth)
+	module := newBaseModule(android.DeviceSupported, android.MultilibBoth)
 	linker := &ndkPrebuiltStlLinker{}
 	linker.dynamicProperties.BuildShared = true
 	module.linker = linker
@@ -2420,14 +2420,14 @@
 }
 
 func ndkPrebuiltStaticStlFactory() (blueprint.Module, []interface{}) {
-	module := newBaseModule(common.DeviceSupported, common.MultilibBoth)
+	module := newBaseModule(android.DeviceSupported, android.MultilibBoth)
 	linker := &ndkPrebuiltStlLinker{}
 	linker.dynamicProperties.BuildStatic = true
 	module.linker = linker
 	return module.Init()
 }
 
-func getNdkStlLibDir(ctx common.AndroidModuleContext, toolchain Toolchain, stl string) common.SourcePath {
+func getNdkStlLibDir(ctx android.ModuleContext, toolchain Toolchain, stl string) android.SourcePath {
 	gccVersion := toolchain.GccVersion()
 	var libDir string
 	switch stl {
@@ -2441,15 +2441,15 @@
 
 	if libDir != "" {
 		ndkSrcRoot := "prebuilts/ndk/current/sources"
-		return common.PathForSource(ctx, ndkSrcRoot).Join(ctx, libDir, ctx.Arch().Abi[0])
+		return android.PathForSource(ctx, ndkSrcRoot).Join(ctx, libDir, ctx.Arch().Abi[0])
 	}
 
 	ctx.ModuleErrorf("Unknown NDK STL: %s", stl)
-	return common.PathForSource(ctx, "")
+	return android.PathForSource(ctx, "")
 }
 
 func (ndk *ndkPrebuiltStlLinker) link(ctx ModuleContext, flags Flags,
-	deps PathDeps, objFiles common.Paths) common.Path {
+	deps PathDeps, objFiles android.Paths) android.Path {
 	// A null build step, but it sets up the output path.
 	if !strings.HasPrefix(ctx.ModuleName(), "ndk_lib") {
 		ctx.ModuleErrorf("NDK prebuilts must have an ndk_lib prefixed name")
@@ -2469,7 +2469,7 @@
 	return libDir.Join(ctx, libName+libExt)
 }
 
-func linkageMutator(mctx common.AndroidBottomUpMutatorContext) {
+func linkageMutator(mctx android.BottomUpMutatorContext) {
 	if m, ok := mctx.Module().(*Module); ok {
 		if m.linker != nil {
 			if linker, ok := m.linker.(baseLinkerInterface); ok {
diff --git a/cc/gen.go b/cc/gen.go
index 94e2304..efcc478 100644
--- a/cc/gen.go
+++ b/cc/gen.go
@@ -21,7 +21,7 @@
 import (
 	"github.com/google/blueprint"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 func init() {
@@ -47,12 +47,12 @@
 		})
 )
 
-func genYacc(ctx common.AndroidModuleContext, yaccFile common.Path, outFile common.ModuleGenPath, yaccFlags string) (headerFile common.ModuleGenPath) {
-	headerFile = common.GenPathWithExt(ctx, yaccFile, "h")
+func genYacc(ctx android.ModuleContext, yaccFile android.Path, outFile android.ModuleGenPath, yaccFlags string) (headerFile android.ModuleGenPath) {
+	headerFile = android.GenPathWithExt(ctx, yaccFile, "h")
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:    yacc,
-		Outputs: common.WritablePaths{outFile, headerFile},
+		Outputs: android.WritablePaths{outFile, headerFile},
 		Input:   yaccFile,
 		Args: map[string]string{
 			"yaccFlags": yaccFlags,
@@ -64,35 +64,35 @@
 	return headerFile
 }
 
-func genLex(ctx common.AndroidModuleContext, lexFile common.Path, outFile common.ModuleGenPath) {
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+func genLex(ctx android.ModuleContext, lexFile android.Path, outFile android.ModuleGenPath) {
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:   lex,
 		Output: outFile,
 		Input:  lexFile,
 	})
 }
 
-func genSources(ctx common.AndroidModuleContext, srcFiles common.Paths,
-	buildFlags builderFlags) (common.Paths, common.Paths) {
+func genSources(ctx android.ModuleContext, srcFiles android.Paths,
+	buildFlags builderFlags) (android.Paths, android.Paths) {
 
-	var deps common.Paths
+	var deps android.Paths
 
 	for i, srcFile := range srcFiles {
 		switch srcFile.Ext() {
 		case ".y":
-			cFile := common.GenPathWithExt(ctx, srcFile, "c")
+			cFile := android.GenPathWithExt(ctx, srcFile, "c")
 			srcFiles[i] = cFile
 			deps = append(deps, genYacc(ctx, srcFile, cFile, buildFlags.yaccFlags))
 		case ".yy":
-			cppFile := common.GenPathWithExt(ctx, srcFile, "cpp")
+			cppFile := android.GenPathWithExt(ctx, srcFile, "cpp")
 			srcFiles[i] = cppFile
 			deps = append(deps, genYacc(ctx, srcFile, cppFile, buildFlags.yaccFlags))
 		case ".l":
-			cFile := common.GenPathWithExt(ctx, srcFile, "c")
+			cFile := android.GenPathWithExt(ctx, srcFile, "c")
 			srcFiles[i] = cFile
 			genLex(ctx, srcFile, cFile)
 		case ".ll":
-			cppFile := common.GenPathWithExt(ctx, srcFile, "cpp")
+			cppFile := android.GenPathWithExt(ctx, srcFile, "cpp")
 			srcFiles[i] = cppFile
 			genLex(ctx, srcFile, cppFile)
 		}
diff --git a/cc/makevars.go b/cc/makevars.go
index b0d371f..3e72a7a 100644
--- a/cc/makevars.go
+++ b/cc/makevars.go
@@ -19,14 +19,14 @@
 	"path/filepath"
 	"strings"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 func init() {
-	common.RegisterMakeVarsProvider(pctx, makeVarsProvider)
+	android.RegisterMakeVarsProvider(pctx, makeVarsProvider)
 }
 
-func makeVarsProvider(ctx common.MakeVarsContext) {
+func makeVarsProvider(ctx android.MakeVarsContext) {
 	ctx.Strict("LLVM_PREBUILTS_VERSION", "${clangVersion}")
 	ctx.Strict("LLVM_PREBUILTS_BASE", "${clangBase}")
 	ctx.Strict("LLVM_PREBUILTS_PATH", "${clangBin}")
@@ -35,32 +35,32 @@
 	ctx.Strict("LLVM_AS", "${clangBin}/llvm-as")
 	ctx.Strict("LLVM_LINK", "${clangBin}/llvm-link")
 
-	hostType := common.CurrentHostType()
+	hostType := android.CurrentHostType()
 	arches := ctx.Config().HostArches[hostType]
-	makeVarsToolchain(ctx, "", common.Host, hostType, arches[0])
+	makeVarsToolchain(ctx, "", android.Host, hostType, arches[0])
 	if len(arches) > 1 {
-		makeVarsToolchain(ctx, "2ND_", common.Host, hostType, arches[1])
+		makeVarsToolchain(ctx, "2ND_", android.Host, hostType, arches[1])
 	}
 
-	if winArches, ok := ctx.Config().HostArches[common.Windows]; ok {
-		makeVarsToolchain(ctx, "", common.Host, common.Windows, winArches[0])
+	if winArches, ok := ctx.Config().HostArches[android.Windows]; ok {
+		makeVarsToolchain(ctx, "", android.Host, android.Windows, winArches[0])
 		if len(winArches) > 1 {
-			makeVarsToolchain(ctx, "2ND_", common.Host, common.Windows, winArches[1])
+			makeVarsToolchain(ctx, "2ND_", android.Host, android.Windows, winArches[1])
 		}
 	}
 
 	arches = ctx.Config().DeviceArches
-	makeVarsToolchain(ctx, "", common.Device, common.NoHostType, arches[0])
+	makeVarsToolchain(ctx, "", android.Device, android.NoHostType, arches[0])
 	if len(arches) > 1 {
-		makeVarsToolchain(ctx, "2ND_", common.Device, common.NoHostType, arches[1])
+		makeVarsToolchain(ctx, "2ND_", android.Device, android.NoHostType, arches[1])
 	}
 }
 
-func makeVarsToolchain(ctx common.MakeVarsContext, secondPrefix string,
-	hod common.HostOrDevice, ht common.HostType, arch common.Arch) {
+func makeVarsToolchain(ctx android.MakeVarsContext, secondPrefix string,
+	hod android.HostOrDevice, ht android.HostType, arch android.Arch) {
 	var typePrefix string
 	if hod.Host() {
-		if ht == common.Windows {
+		if ht == android.Windows {
 			typePrefix = "HOST_CROSS_"
 		} else {
 			typePrefix = "HOST_"
@@ -102,7 +102,7 @@
 	if toolchain.ClangSupported() {
 		clangPrefix := secondPrefix + "CLANG_" + typePrefix
 		clangExtras := "-target " + toolchain.ClangTriple()
-		if ht != common.Darwin {
+		if ht != android.Darwin {
 			clangExtras += " -B" + filepath.Join(toolchain.GccRoot(), toolchain.GccTriple(), "bin")
 		}
 
@@ -131,7 +131,7 @@
 	ctx.Strict(makePrefix+"CC", gccCmd(toolchain, "gcc"))
 	ctx.Strict(makePrefix+"CXX", gccCmd(toolchain, "g++"))
 
-	if ht == common.Darwin {
+	if ht == android.Darwin {
 		ctx.Strict(makePrefix+"AR", "${macArPath}")
 	} else {
 		ctx.Strict(makePrefix+"AR", gccCmd(toolchain, "ar"))
@@ -139,7 +139,7 @@
 		ctx.Strict(makePrefix+"NM", gccCmd(toolchain, "nm"))
 	}
 
-	if ht == common.Windows {
+	if ht == android.Windows {
 		ctx.Strict(makePrefix+"OBJDUMP", gccCmd(toolchain, "objdump"))
 	}
 
diff --git a/cc/mips64_device.go b/cc/mips64_device.go
index 8f85b47..1bd6a3c 100644
--- a/cc/mips64_device.go
+++ b/cc/mips64_device.go
@@ -17,7 +17,7 @@
 import (
 	"strings"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 var (
@@ -87,7 +87,7 @@
 )
 
 func init() {
-	common.RegisterArchFeatures(common.Mips64, "mips64r6",
+	android.RegisterArchFeatures(android.Mips64, "mips64r6",
 		"rev6")
 
 	pctx.StaticVariable("mips64GccVersion", mips64GccVersion)
@@ -185,7 +185,7 @@
 	return "${mips64ClangLdflags}"
 }
 
-func mips64ToolchainFactory(arch common.Arch) Toolchain {
+func mips64ToolchainFactory(arch android.Arch) Toolchain {
 	return &toolchainMips64{
 		cflags:               "${mips64Cflags}",
 		clangCflags:          "${mips64ClangCflags}",
@@ -195,5 +195,5 @@
 }
 
 func init() {
-	registerDeviceToolchainFactory(common.Mips64, mips64ToolchainFactory)
+	registerDeviceToolchainFactory(android.Mips64, mips64ToolchainFactory)
 }
diff --git a/cc/mips_device.go b/cc/mips_device.go
index eed18d6..86e7dee 100644
--- a/cc/mips_device.go
+++ b/cc/mips_device.go
@@ -17,7 +17,7 @@
 import (
 	"strings"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 var (
@@ -122,7 +122,7 @@
 )
 
 func init() {
-	common.RegisterArchFeatures(common.Mips, "mips32r6",
+	android.RegisterArchFeatures(android.Mips, "mips32r6",
 		"rev6")
 
 	pctx.StaticVariable("mipsGccVersion", mipsGccVersion)
@@ -233,7 +233,7 @@
 	return "${mipsClangLdflags}"
 }
 
-func mipsToolchainFactory(arch common.Arch) Toolchain {
+func mipsToolchainFactory(arch android.Arch) Toolchain {
 	return &toolchainMips{
 		cflags:               "${mipsCflags}",
 		clangCflags:          "${mipsClangCflags}",
@@ -243,5 +243,5 @@
 }
 
 func init() {
-	registerDeviceToolchainFactory(common.Mips, mipsToolchainFactory)
+	registerDeviceToolchainFactory(android.Mips, mipsToolchainFactory)
 }
diff --git a/cc/sanitize.go b/cc/sanitize.go
index 94c56ce..4162e97 100644
--- a/cc/sanitize.go
+++ b/cc/sanitize.go
@@ -20,7 +20,7 @@
 
 	"github.com/google/blueprint"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 type sanitizerType int
@@ -213,7 +213,7 @@
 	}
 
 	if sanitize.Properties.Sanitize.Address {
-		if ctx.Arch().ArchType == common.Arm {
+		if ctx.Arch().ArchType == android.Arm {
 			// Frame pointer based unwinder in ASan requires ARM frame setup.
 			// TODO: put in flags?
 			flags.RequiredInstructionSet = "arm"
@@ -268,7 +268,7 @@
 		}
 	}
 
-	blacklist := common.OptionalPathForModuleSrc(ctx, sanitize.Properties.Sanitize.Blacklist)
+	blacklist := android.OptionalPathForModuleSrc(ctx, sanitize.Properties.Sanitize.Blacklist)
 	if blacklist.Valid() {
 		flags.CFlags = append(flags.CFlags, "-fsanitize-blacklist="+blacklist.String())
 		flags.CFlagsDeps = append(flags.CFlagsDeps, blacklist.Path())
@@ -311,8 +311,8 @@
 }
 
 // Propagate asan requirements down from binaries
-func sanitizerDepsMutator(t sanitizerType) func(common.AndroidTopDownMutatorContext) {
-	return func(mctx common.AndroidTopDownMutatorContext) {
+func sanitizerDepsMutator(t sanitizerType) func(android.TopDownMutatorContext) {
+	return func(mctx android.TopDownMutatorContext) {
 		if c, ok := mctx.Module().(*Module); ok && c.sanitize.Sanitizer(t) {
 			mctx.VisitDepsDepthFirst(func(module blueprint.Module) {
 				if d, ok := mctx.Module().(*Module); ok && c.sanitize != nil &&
@@ -325,8 +325,8 @@
 }
 
 // Create asan variants for modules that need them
-func sanitizerMutator(t sanitizerType) func(common.AndroidBottomUpMutatorContext) {
-	return func(mctx common.AndroidBottomUpMutatorContext) {
+func sanitizerMutator(t sanitizerType) func(android.BottomUpMutatorContext) {
+	return func(mctx android.BottomUpMutatorContext) {
 		if c, ok := mctx.Module().(*Module); ok && c.sanitize != nil {
 			if d, ok := c.linker.(baseLinkerInterface); ok && d.isDependencyRoot() && c.sanitize.Sanitizer(t) {
 				modules := mctx.CreateVariations(t.String())
diff --git a/cc/stl.go b/cc/stl.go
index b84bb6a..cdc887e 100644
--- a/cc/stl.go
+++ b/cc/stl.go
@@ -15,7 +15,7 @@
 package cc
 
 import (
-	"android/soong/common"
+	"android/soong/android"
 	"fmt"
 )
 
@@ -52,7 +52,7 @@
 				ctx.ModuleErrorf("stl: %q is not a supported STL with sdk_version set", stl.Properties.Stl)
 				return ""
 			}
-		} else if ctx.HostType() == common.Windows {
+		} else if ctx.HostType() == android.Windows {
 			switch stl.Properties.Stl {
 			case "libc++", "libc++_static", "libstdc++", "":
 				// libc++ is not supported on mingw
@@ -97,7 +97,7 @@
 			deps.StaticLibs = append(deps.StaticLibs, stl.Properties.SelectedStl)
 		}
 		if ctx.Device() {
-			if ctx.Arch().ArchType == common.Arm {
+			if ctx.Arch().ArchType == android.Arm {
 				deps.StaticLibs = append(deps.StaticLibs, "libunwind_llvm")
 			}
 			if ctx.staticBinary() {
@@ -138,7 +138,7 @@
 				flags.LdFlags = append(flags.LdFlags, hostDynamicGccLibs[ctx.HostType()]...)
 			}
 		} else {
-			if ctx.Arch().ArchType == common.Arm {
+			if ctx.Arch().ArchType == android.Arm {
 				flags.LdFlags = append(flags.LdFlags, "-Wl,--exclude-libs,libunwind_llvm.a")
 			}
 		}
@@ -147,14 +147,14 @@
 		// tree is in good enough shape to not need it.
 		// Host builds will use GNU libstdc++.
 		if ctx.Device() {
-			flags.CFlags = append(flags.CFlags, "-I"+common.PathForSource(ctx, "bionic/libstdc++/include").String())
+			flags.CFlags = append(flags.CFlags, "-I"+android.PathForSource(ctx, "bionic/libstdc++/include").String())
 		} else {
 			// Host builds will use the system C++. libc++ on Darwin, GNU libstdc++ everywhere else
 			flags.CppFlags = append(flags.CppFlags, flags.Toolchain.SystemCppCppflags())
 			flags.LdFlags = append(flags.LdFlags, flags.Toolchain.SystemCppLdflags())
 		}
 	case "ndk_system":
-		ndkSrcRoot := common.PathForSource(ctx, "prebuilts/ndk/current/sources/cxx-stl/system/include")
+		ndkSrcRoot := android.PathForSource(ctx, "prebuilts/ndk/current/sources/cxx-stl/system/include")
 		flags.CFlags = append(flags.CFlags, "-isystem "+ndkSrcRoot.String())
 	case "ndk_libc++_shared", "ndk_libc++_static":
 		// TODO(danalbert): This really shouldn't be here...
@@ -179,20 +179,20 @@
 	return flags
 }
 
-var hostDynamicGccLibs, hostStaticGccLibs map[common.HostType][]string
+var hostDynamicGccLibs, hostStaticGccLibs map[android.HostType][]string
 
 func init() {
-	hostDynamicGccLibs = map[common.HostType][]string{
-		common.Linux:  []string{"-lgcc_s", "-lgcc", "-lc", "-lgcc_s", "-lgcc"},
-		common.Darwin: []string{"-lc", "-lSystem"},
-		common.Windows: []string{"-lmsvcr110", "-lmingw32", "-lgcc", "-lmoldname",
+	hostDynamicGccLibs = map[android.HostType][]string{
+		android.Linux:  []string{"-lgcc_s", "-lgcc", "-lc", "-lgcc_s", "-lgcc"},
+		android.Darwin: []string{"-lc", "-lSystem"},
+		android.Windows: []string{"-lmsvcr110", "-lmingw32", "-lgcc", "-lmoldname",
 			"-lmingwex", "-lmsvcrt", "-ladvapi32", "-lshell32", "-luser32",
 			"-lkernel32", "-lmingw32", "-lgcc", "-lmoldname", "-lmingwex",
 			"-lmsvcrt"},
 	}
-	hostStaticGccLibs = map[common.HostType][]string{
-		common.Linux:   []string{"-Wl,--start-group", "-lgcc", "-lgcc_eh", "-lc", "-Wl,--end-group"},
-		common.Darwin:  []string{"NO_STATIC_HOST_BINARIES_ON_DARWIN"},
-		common.Windows: []string{"NO_STATIC_HOST_BINARIES_ON_WINDOWS"},
+	hostStaticGccLibs = map[android.HostType][]string{
+		android.Linux:   []string{"-Wl,--start-group", "-lgcc", "-lgcc_eh", "-lc", "-Wl,--end-group"},
+		android.Darwin:  []string{"NO_STATIC_HOST_BINARIES_ON_DARWIN"},
+		android.Windows: []string{"NO_STATIC_HOST_BINARIES_ON_WINDOWS"},
 	}
 }
diff --git a/cc/toolchain.go b/cc/toolchain.go
index 09dcff2..d85f1ce 100644
--- a/cc/toolchain.go
+++ b/cc/toolchain.go
@@ -17,28 +17,28 @@
 import (
 	"fmt"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
-type toolchainFactory func(arch common.Arch) Toolchain
+type toolchainFactory func(arch android.Arch) Toolchain
 
-var toolchainFactories = map[common.HostOrDevice]map[common.HostType]map[common.ArchType]toolchainFactory{
-	common.Host: map[common.HostType]map[common.ArchType]toolchainFactory{
-		common.Linux:   make(map[common.ArchType]toolchainFactory),
-		common.Darwin:  make(map[common.ArchType]toolchainFactory),
-		common.Windows: make(map[common.ArchType]toolchainFactory),
+var toolchainFactories = map[android.HostOrDevice]map[android.HostType]map[android.ArchType]toolchainFactory{
+	android.Host: map[android.HostType]map[android.ArchType]toolchainFactory{
+		android.Linux:   make(map[android.ArchType]toolchainFactory),
+		android.Darwin:  make(map[android.ArchType]toolchainFactory),
+		android.Windows: make(map[android.ArchType]toolchainFactory),
 	},
-	common.Device: map[common.HostType]map[common.ArchType]toolchainFactory{
-		common.NoHostType: make(map[common.ArchType]toolchainFactory),
+	android.Device: map[android.HostType]map[android.ArchType]toolchainFactory{
+		android.NoHostType: make(map[android.ArchType]toolchainFactory),
 	},
 }
 
-func registerDeviceToolchainFactory(arch common.ArchType, factory toolchainFactory) {
-	toolchainFactories[common.Device][common.NoHostType][arch] = factory
+func registerDeviceToolchainFactory(arch android.ArchType, factory toolchainFactory) {
+	toolchainFactories[android.Device][android.NoHostType][arch] = factory
 }
 
-func registerHostToolchainFactory(ht common.HostType, arch common.ArchType, factory toolchainFactory) {
-	toolchainFactories[common.Host][ht][arch] = factory
+func registerHostToolchainFactory(ht android.HostType, arch android.ArchType, factory toolchainFactory) {
+	toolchainFactories[android.Host][ht][arch] = factory
 }
 
 type Toolchain interface {
diff --git a/cc/util.go b/cc/util.go
index 70433b1..18a13a2 100644
--- a/cc/util.go
+++ b/cc/util.go
@@ -19,25 +19,25 @@
 	"regexp"
 	"strings"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 // Efficiently converts a list of include directories to a single string
 // of cflags with -I prepended to each directory.
-func includeDirsToFlags(dirs common.Paths) string {
-	return common.JoinWithPrefix(dirs.Strings(), "-I")
+func includeDirsToFlags(dirs android.Paths) string {
+	return android.JoinWithPrefix(dirs.Strings(), "-I")
 }
 
-func includeFilesToFlags(files common.Paths) string {
-	return common.JoinWithPrefix(files.Strings(), "-include ")
+func includeFilesToFlags(files android.Paths) string {
+	return android.JoinWithPrefix(files.Strings(), "-include ")
 }
 
 func ldDirsToFlags(dirs []string) string {
-	return common.JoinWithPrefix(dirs, "-L")
+	return android.JoinWithPrefix(dirs, "-L")
 }
 
 func libNamesToFlags(names []string) string {
-	return common.JoinWithPrefix(names, "-l")
+	return android.JoinWithPrefix(names, "-l")
 }
 
 func indexList(s string, list []string) int {
diff --git a/cc/x86_64_device.go b/cc/x86_64_device.go
index 7d9edda..65c7c00 100644
--- a/cc/x86_64_device.go
+++ b/cc/x86_64_device.go
@@ -17,7 +17,7 @@
 import (
 	"strings"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 var (
@@ -99,13 +99,13 @@
 )
 
 func init() {
-	common.RegisterArchFeatures(common.X86_64, "",
+	android.RegisterArchFeatures(android.X86_64, "",
 		"ssse3",
 		"sse4",
 		"sse4_1",
 		"sse4_2",
 		"popcnt")
-	common.RegisterArchFeatures(common.X86_64, "haswell",
+	android.RegisterArchFeatures(android.X86_64, "haswell",
 		"ssse3",
 		"sse4",
 		"sse4_1",
@@ -113,7 +113,7 @@
 		"aes_ni",
 		"avx",
 		"popcnt")
-	common.RegisterArchFeatures(common.X86_64, "ivybridge",
+	android.RegisterArchFeatures(android.X86_64, "ivybridge",
 		"ssse3",
 		"sse4",
 		"sse4_1",
@@ -121,13 +121,13 @@
 		"aes_ni",
 		"avx",
 		"popcnt")
-	common.RegisterArchFeatures(common.X86_64, "sandybridge",
+	android.RegisterArchFeatures(android.X86_64, "sandybridge",
 		"ssse3",
 		"sse4",
 		"sse4_1",
 		"sse4_2",
 		"popcnt")
-	common.RegisterArchFeatures(common.X86_64, "silvermont",
+	android.RegisterArchFeatures(android.X86_64, "silvermont",
 		"ssse3",
 		"sse4",
 		"sse4_1",
@@ -239,7 +239,7 @@
 	return "${x86_64Ldflags}"
 }
 
-func x86_64ToolchainFactory(arch common.Arch) Toolchain {
+func x86_64ToolchainFactory(arch android.Arch) Toolchain {
 	toolchainCflags := []string{
 		"${x86_64ToolchainCflags}",
 		"${x86_64" + arch.ArchVariant + "VariantCflags}",
@@ -262,5 +262,5 @@
 }
 
 func init() {
-	registerDeviceToolchainFactory(common.X86_64, x86_64ToolchainFactory)
+	registerDeviceToolchainFactory(android.X86_64, x86_64ToolchainFactory)
 }
diff --git a/cc/x86_darwin_host.go b/cc/x86_darwin_host.go
index 52add5c..bd164e3 100644
--- a/cc/x86_darwin_host.go
+++ b/cc/x86_darwin_host.go
@@ -5,7 +5,7 @@
 	"os/exec"
 	"strings"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 var (
@@ -97,7 +97,7 @@
 	})
 	pctx.StaticVariable("macToolchainRoot", "${macSdkPath}/Toolchains/XcodeDefault.xctoolchain")
 	pctx.VariableFunc("macSdkRoot", func(config interface{}) (string, error) {
-		return xcrunSdk(config.(common.Config), "--show-sdk-path")
+		return xcrunSdk(config.(android.Config), "--show-sdk-path")
 	})
 	pctx.StaticVariable("macSdkVersion", darwinSupportedSdkVersions[0])
 	pctx.VariableFunc("macArPath", func(config interface{}) (string, error) {
@@ -138,7 +138,7 @@
 	pctx.StaticVariable("darwinX8664ClangLdflags", strings.Join(darwinX8664ClangLdflags, " "))
 }
 
-func xcrunSdk(config common.Config, arg string) (string, error) {
+func xcrunSdk(config android.Config, arg string) (string, error) {
 	if selected := config.Getenv("MAC_SDK_VERSION"); selected != "" {
 		if !inList(selected, darwinSupportedSdkVersions) {
 			return "", fmt.Errorf("MAC_SDK_VERSION %s isn't supported: %q", selected, darwinSupportedSdkVersions)
@@ -261,15 +261,15 @@
 var toolchainDarwinX86Singleton Toolchain = &toolchainDarwinX86{}
 var toolchainDarwinX8664Singleton Toolchain = &toolchainDarwinX8664{}
 
-func darwinX86ToolchainFactory(arch common.Arch) Toolchain {
+func darwinX86ToolchainFactory(arch android.Arch) Toolchain {
 	return toolchainDarwinX86Singleton
 }
 
-func darwinX8664ToolchainFactory(arch common.Arch) Toolchain {
+func darwinX8664ToolchainFactory(arch android.Arch) Toolchain {
 	return toolchainDarwinX8664Singleton
 }
 
 func init() {
-	registerHostToolchainFactory(common.Darwin, common.X86, darwinX86ToolchainFactory)
-	registerHostToolchainFactory(common.Darwin, common.X86_64, darwinX8664ToolchainFactory)
+	registerHostToolchainFactory(android.Darwin, android.X86, darwinX86ToolchainFactory)
+	registerHostToolchainFactory(android.Darwin, android.X86_64, darwinX8664ToolchainFactory)
 }
diff --git a/cc/x86_device.go b/cc/x86_device.go
index 4c0d624..d0bd8a0 100644
--- a/cc/x86_device.go
+++ b/cc/x86_device.go
@@ -17,7 +17,7 @@
 import (
 	"strings"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 var (
@@ -113,16 +113,16 @@
 )
 
 func init() {
-	common.RegisterArchFeatures(common.X86, "x86_64",
+	android.RegisterArchFeatures(android.X86, "x86_64",
 		"ssse3",
 		"sse4",
 		"sse4_1",
 		"sse4_2",
 		"popcnt")
-	common.RegisterArchFeatures(common.X86, "atom",
+	android.RegisterArchFeatures(android.X86, "atom",
 		"ssse3",
 		"movbe")
-	common.RegisterArchFeatures(common.X86, "haswell",
+	android.RegisterArchFeatures(android.X86, "haswell",
 		"ssse3",
 		"sse4",
 		"sse4_1",
@@ -131,7 +131,7 @@
 		"avx",
 		"popcnt",
 		"movbe")
-	common.RegisterArchFeatures(common.X86, "ivybridge",
+	android.RegisterArchFeatures(android.X86, "ivybridge",
 		"ssse3",
 		"sse4",
 		"sse4_1",
@@ -139,13 +139,13 @@
 		"aes_ni",
 		"avx",
 		"popcnt")
-	common.RegisterArchFeatures(common.X86, "sandybridge",
+	android.RegisterArchFeatures(android.X86, "sandybridge",
 		"ssse3",
 		"sse4",
 		"sse4_1",
 		"sse4_2",
 		"popcnt")
-	common.RegisterArchFeatures(common.X86, "silvermont",
+	android.RegisterArchFeatures(android.X86, "silvermont",
 		"ssse3",
 		"sse4",
 		"sse4_1",
@@ -262,7 +262,7 @@
 	return "libclang_rt.asan-i686-android.so"
 }
 
-func x86ToolchainFactory(arch common.Arch) Toolchain {
+func x86ToolchainFactory(arch android.Arch) Toolchain {
 	toolchainCflags := []string{
 		"${x86ToolchainCflags}",
 		"${x86" + arch.ArchVariant + "VariantCflags}",
@@ -285,5 +285,5 @@
 }
 
 func init() {
-	registerDeviceToolchainFactory(common.X86, x86ToolchainFactory)
+	registerDeviceToolchainFactory(android.X86, x86ToolchainFactory)
 }
diff --git a/cc/x86_linux_host.go b/cc/x86_linux_host.go
index 246f83a..6562e6a 100644
--- a/cc/x86_linux_host.go
+++ b/cc/x86_linux_host.go
@@ -3,7 +3,7 @@
 import (
 	"strings"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 var (
@@ -227,15 +227,15 @@
 var toolchainLinuxX86Singleton Toolchain = &toolchainLinuxX86{}
 var toolchainLinuxX8664Singleton Toolchain = &toolchainLinuxX8664{}
 
-func linuxX86ToolchainFactory(arch common.Arch) Toolchain {
+func linuxX86ToolchainFactory(arch android.Arch) Toolchain {
 	return toolchainLinuxX86Singleton
 }
 
-func linuxX8664ToolchainFactory(arch common.Arch) Toolchain {
+func linuxX8664ToolchainFactory(arch android.Arch) Toolchain {
 	return toolchainLinuxX8664Singleton
 }
 
 func init() {
-	registerHostToolchainFactory(common.Linux, common.X86, linuxX86ToolchainFactory)
-	registerHostToolchainFactory(common.Linux, common.X86_64, linuxX8664ToolchainFactory)
+	registerHostToolchainFactory(android.Linux, android.X86, linuxX86ToolchainFactory)
+	registerHostToolchainFactory(android.Linux, android.X86_64, linuxX8664ToolchainFactory)
 }
diff --git a/cc/x86_windows_host.go b/cc/x86_windows_host.go
index 60d88a1..34d63c3 100644
--- a/cc/x86_windows_host.go
+++ b/cc/x86_windows_host.go
@@ -17,7 +17,7 @@
 import (
 	"strings"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 var (
@@ -186,15 +186,15 @@
 var toolchainWindowsX86Singleton Toolchain = &toolchainWindowsX86{}
 var toolchainWindowsX8664Singleton Toolchain = &toolchainWindowsX8664{}
 
-func windowsX86ToolchainFactory(arch common.Arch) Toolchain {
+func windowsX86ToolchainFactory(arch android.Arch) Toolchain {
 	return toolchainWindowsX86Singleton
 }
 
-func windowsX8664ToolchainFactory(arch common.Arch) Toolchain {
+func windowsX8664ToolchainFactory(arch android.Arch) Toolchain {
 	return toolchainWindowsX8664Singleton
 }
 
 func init() {
-	registerHostToolchainFactory(common.Windows, common.X86, windowsX86ToolchainFactory)
-	registerHostToolchainFactory(common.Windows, common.X86_64, windowsX8664ToolchainFactory)
+	registerHostToolchainFactory(android.Windows, android.X86, windowsX86ToolchainFactory)
+	registerHostToolchainFactory(android.Windows, android.X86_64, windowsX8664ToolchainFactory)
 }
diff --git a/cmd/soong_build/main.go b/cmd/soong_build/main.go
index 1bb8fcd..5b0c83c 100644
--- a/cmd/soong_build/main.go
+++ b/cmd/soong_build/main.go
@@ -24,7 +24,7 @@
 
 	"android/soong"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 func main() {
@@ -35,7 +35,7 @@
 
 	ctx := soong.NewContext()
 
-	configuration, err := common.NewConfig(srcDir, bootstrap.BuildDir)
+	configuration, err := android.NewConfig(srcDir, bootstrap.BuildDir)
 	if err != nil {
 		fmt.Fprintf(os.Stderr, "%s", err)
 		os.Exit(1)
diff --git a/genrule/genrule.go b/genrule/genrule.go
index d9b6c77..a195b24 100644
--- a/genrule/genrule.go
+++ b/genrule/genrule.go
@@ -18,18 +18,18 @@
 	"github.com/google/blueprint"
 
 	"android/soong"
-	"android/soong/common"
+	"android/soong/android"
 )
 
 func init() {
 	soong.RegisterModuleType("gensrcs", GenSrcsFactory)
 	soong.RegisterModuleType("genrule", GenRuleFactory)
 
-	common.RegisterBottomUpMutator("genrule_deps", genruleDepsMutator)
+	android.RegisterBottomUpMutator("genrule_deps", genruleDepsMutator)
 }
 
 var (
-	pctx = common.NewPackageContext("android/soong/genrule")
+	pctx = android.NewPackageContext("android/soong/genrule")
 )
 
 func init() {
@@ -38,12 +38,12 @@
 }
 
 type SourceFileGenerator interface {
-	GeneratedSourceFiles() common.Paths
-	GeneratedHeaderDir() common.Path
+	GeneratedSourceFiles() android.Paths
+	GeneratedHeaderDir() android.Path
 }
 
 type HostToolProvider interface {
-	HostToolPath() common.OptionalPath
+	HostToolPath() android.OptionalPath
 }
 
 type generatorProperties struct {
@@ -64,47 +64,47 @@
 }
 
 type generator struct {
-	common.AndroidModuleBase
+	android.ModuleBase
 
 	properties generatorProperties
 
 	tasks taskFunc
 
-	deps common.Paths
+	deps android.Paths
 	rule blueprint.Rule
 
-	genPath common.Path
+	genPath android.Path
 
-	outputFiles common.Paths
+	outputFiles android.Paths
 }
 
-type taskFunc func(ctx common.AndroidModuleContext) []generateTask
+type taskFunc func(ctx android.ModuleContext) []generateTask
 
 type generateTask struct {
-	in  common.Paths
-	out common.ModuleGenPath
+	in  android.Paths
+	out android.ModuleGenPath
 }
 
-func (g *generator) GeneratedSourceFiles() common.Paths {
+func (g *generator) GeneratedSourceFiles() android.Paths {
 	return g.outputFiles
 }
 
-func (g *generator) GeneratedHeaderDir() common.Path {
+func (g *generator) GeneratedHeaderDir() android.Path {
 	return g.genPath
 }
 
-func genruleDepsMutator(ctx common.AndroidBottomUpMutatorContext) {
+func genruleDepsMutator(ctx android.BottomUpMutatorContext) {
 	if g, ok := ctx.Module().(*generator); ok {
 		if g.properties.Tool != "" {
 			ctx.AddFarVariationDependencies([]blueprint.Variation{
-				{"host_or_device", common.Host.String()},
-				{"host_type", common.CurrentHostType().String()},
+				{"host_or_device", android.Host.String()},
+				{"host_type", android.CurrentHostType().String()},
 			}, nil, g.properties.Tool)
 		}
 	}
 }
 
-func (g *generator) GenerateAndroidBuildActions(ctx common.AndroidModuleContext) {
+func (g *generator) GenerateAndroidBuildActions(ctx android.ModuleContext) {
 	if g.properties.Tool != "" && g.properties.Tool_file != "" {
 		ctx.ModuleErrorf("`tool` and `tool_file` may not be specified at the same time")
 		return
@@ -116,7 +116,7 @@
 
 	var tool string
 	if g.properties.Tool_file != "" {
-		toolpath := common.PathForModuleSrc(ctx, g.properties.Tool_file)
+		toolpath := android.PathForModuleSrc(ctx, g.properties.Tool_file)
 		g.deps = append(g.deps, toolpath)
 		tool = toolpath.String()
 	} else if g.properties.Tool != "" {
@@ -135,15 +135,15 @@
 		})
 	}
 
-	g.genPath = common.PathForModuleGen(ctx, "")
+	g.genPath = android.PathForModuleGen(ctx, "")
 
 	for _, task := range g.tasks(ctx) {
 		g.generateSourceFile(ctx, task, tool)
 	}
 }
 
-func (g *generator) generateSourceFile(ctx common.AndroidModuleContext, task generateTask, tool string) {
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+func (g *generator) generateSourceFile(ctx android.ModuleContext, task generateTask, tool string) {
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:      g.rule,
 		Output:    task.out,
 		Inputs:    task.in,
@@ -163,19 +163,19 @@
 
 	props = append(props, &module.properties)
 
-	return common.InitAndroidModule(module, props...)
+	return android.InitAndroidModule(module, props...)
 }
 
 func GenSrcsFactory() (blueprint.Module, []interface{}) {
 	properties := &genSrcsProperties{}
 
-	tasks := func(ctx common.AndroidModuleContext) []generateTask {
+	tasks := func(ctx android.ModuleContext) []generateTask {
 		srcFiles := ctx.ExpandSources(properties.Srcs, nil)
 		tasks := make([]generateTask, 0, len(srcFiles))
 		for _, in := range srcFiles {
 			tasks = append(tasks, generateTask{
-				in:  common.Paths{in},
-				out: common.GenPathWithExt(ctx, in, properties.Output_extension),
+				in:  android.Paths{in},
+				out: android.GenPathWithExt(ctx, in, properties.Output_extension),
 			})
 		}
 		return tasks
@@ -195,11 +195,11 @@
 func GenRuleFactory() (blueprint.Module, []interface{}) {
 	properties := &genRuleProperties{}
 
-	tasks := func(ctx common.AndroidModuleContext) []generateTask {
+	tasks := func(ctx android.ModuleContext) []generateTask {
 		return []generateTask{
 			{
 				in:  ctx.ExpandSources(properties.Srcs, nil),
-				out: common.PathForModuleGen(ctx, properties.Out),
+				out: android.PathForModuleGen(ctx, properties.Out),
 			},
 		}
 	}
diff --git a/java/androidmk.go b/java/androidmk.go
index 6d4dddf..9ffd35f 100644
--- a/java/androidmk.go
+++ b/java/androidmk.go
@@ -17,17 +17,17 @@
 import (
 	"fmt"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
-func (*JavaLibrary) AndroidMk() (ret common.AndroidMkData, err error) {
+func (*JavaLibrary) AndroidMk() (ret android.AndroidMkData, err error) {
 	ret.Class = "JAVA_LIBRARIES"
 	// TODO
 	err = fmt.Errorf("Not yet implemented")
 	return
 }
 
-func (*JavaPrebuilt) AndroidMk() (ret common.AndroidMkData, err error) {
+func (*JavaPrebuilt) AndroidMk() (ret android.AndroidMkData, err error) {
 	ret.Class = "JAVA_LIBRARIES"
 	// TODO
 	err = fmt.Errorf("Not yet implemented")
diff --git a/java/app.go b/java/app.go
index 3d16281..db2f182 100644
--- a/java/app.go
+++ b/java/app.go
@@ -22,7 +22,7 @@
 
 	"github.com/google/blueprint"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 // AAR prebuilts
@@ -61,8 +61,8 @@
 
 	appProperties androidAppProperties
 
-	aaptJavaFileList common.Path
-	exportPackage    common.Path
+	aaptJavaFileList android.Path
+	exportPackage    android.Path
 }
 
 func (a *AndroidApp) JavaDependencies(ctx AndroidJavaModuleContext) []string {
@@ -80,7 +80,7 @@
 	return deps
 }
 
-func (a *AndroidApp) GenerateJavaBuildActions(ctx common.AndroidModuleContext) {
+func (a *AndroidApp) GenerateJavaBuildActions(ctx android.ModuleContext) {
 	aaptFlags, aaptDeps, hasResources := a.aaptFlags(ctx)
 
 	if hasResources {
@@ -143,16 +143,16 @@
 	} else if dir, _ := filepath.Split(certificate); dir == "" {
 		certificate = filepath.Join(ctx.AConfig().DefaultAppCertificateDir(ctx).String(), certificate)
 	} else {
-		certificate = filepath.Join(common.PathForSource(ctx).String(), certificate)
+		certificate = filepath.Join(android.PathForSource(ctx).String(), certificate)
 	}
 
 	certificates := []string{certificate}
 	for _, c := range a.appProperties.Additional_certificates {
-		certificates = append(certificates, filepath.Join(common.PathForSource(ctx).String(), c))
+		certificates = append(certificates, filepath.Join(android.PathForSource(ctx).String(), c))
 	}
 
 	a.outputFile = CreateAppPackage(ctx, aaptPackageFlags, a.outputFile, certificates)
-	ctx.InstallFileName(common.PathForModuleInstall(ctx, "app"), ctx.ModuleName()+".apk", a.outputFile)
+	ctx.InstallFileName(android.PathForModuleInstall(ctx, "app"), ctx.ModuleName()+".apk", a.outputFile)
 }
 
 var aaptIgnoreFilenames = []string{
@@ -167,7 +167,7 @@
 	"*~",
 }
 
-func (a *AndroidApp) aaptFlags(ctx common.AndroidModuleContext) ([]string, common.Paths, bool) {
+func (a *AndroidApp) aaptFlags(ctx android.ModuleContext) ([]string, android.Paths, bool) {
 	aaptFlags := a.appProperties.Aaptflags
 	hasVersionCode := false
 	hasVersionName := false
@@ -183,10 +183,10 @@
 		aaptFlags = append(aaptFlags, "-z")
 	}
 
-	assetDirs := common.PathsWithOptionalDefaultForModuleSrc(ctx, a.appProperties.Asset_dirs, "assets")
-	resourceDirs := common.PathsWithOptionalDefaultForModuleSrc(ctx, a.appProperties.Android_resource_dirs, "res")
+	assetDirs := android.PathsWithOptionalDefaultForModuleSrc(ctx, a.appProperties.Asset_dirs, "assets")
+	resourceDirs := android.PathsWithOptionalDefaultForModuleSrc(ctx, a.appProperties.Android_resource_dirs, "res")
 
-	var overlayResourceDirs common.Paths
+	var overlayResourceDirs android.Paths
 	// For every resource directory, check if there is an overlay directory with the same path.
 	// If found, it will be prepended to the list of resource directories.
 	for _, overlayDir := range ctx.AConfig().ResourceOverlays() {
@@ -204,7 +204,7 @@
 
 	// aapt needs to rerun if any files are added or modified in the assets or resource directories,
 	// use glob to create a filelist.
-	var aaptDeps common.Paths
+	var aaptDeps android.Paths
 	var hasResources bool
 	for _, d := range resourceDirs {
 		newDeps := ctx.Glob("app_resources", filepath.Join(d.String(), "**/*"), aaptIgnoreFilenames)
@@ -225,20 +225,20 @@
 		manifestFile = *a.properties.Manifest
 	}
 
-	manifestPath := common.PathForModuleSrc(ctx, manifestFile)
+	manifestPath := android.PathForModuleSrc(ctx, manifestFile)
 	aaptDeps = append(aaptDeps, manifestPath)
 
 	aaptFlags = append(aaptFlags, "-M "+manifestPath.String())
-	aaptFlags = append(aaptFlags, common.JoinWithPrefix(assetDirs.Strings(), "-A "))
-	aaptFlags = append(aaptFlags, common.JoinWithPrefix(resourceDirs.Strings(), "-S "))
+	aaptFlags = append(aaptFlags, android.JoinWithPrefix(assetDirs.Strings(), "-A "))
+	aaptFlags = append(aaptFlags, android.JoinWithPrefix(resourceDirs.Strings(), "-S "))
 
 	ctx.VisitDirectDeps(func(module blueprint.Module) {
-		var depFile common.OptionalPath
+		var depFile android.OptionalPath
 		if sdkDep, ok := module.(sdkDependency); ok {
-			depFile = common.OptionalPathForPath(sdkDep.ClasspathFile())
+			depFile = android.OptionalPathForPath(sdkDep.ClasspathFile())
 		} else if javaDep, ok := module.(JavaDependency); ok {
 			if ctx.OtherModuleName(module) == "framework-res" {
-				depFile = common.OptionalPathForPath(javaDep.(*javaBase).module.(*AndroidApp).exportPackage)
+				depFile = android.OptionalPathForPath(javaDep.(*javaBase).module.(*AndroidApp).exportPackage)
 			}
 		}
 		if depFile.Valid() {
@@ -278,5 +278,5 @@
 
 	module.properties.Dex = true
 
-	return NewJavaBase(&module.javaBase, module, common.DeviceSupported, &module.appProperties)
+	return NewJavaBase(&module.javaBase, module, android.DeviceSupported, &module.appProperties)
 }
diff --git a/java/app_builder.go b/java/app_builder.go
index 2a47519..d8f2571 100644
--- a/java/app_builder.go
+++ b/java/app_builder.go
@@ -23,7 +23,7 @@
 
 	"github.com/google/blueprint"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 var (
@@ -79,16 +79,16 @@
 	pctx.HostJavaToolVariable("signapkCmd", "signapk.jar")
 }
 
-func CreateResourceJavaFiles(ctx common.AndroidModuleContext, flags []string,
-	deps common.Paths) (common.Path, common.Path, common.Path) {
-	javaDir := common.PathForModuleGen(ctx, "R")
-	javaFileList := common.PathForModuleOut(ctx, "R.filelist")
-	publicResourcesFile := common.PathForModuleOut(ctx, "public_resources.xml")
-	proguardOptionsFile := common.PathForModuleOut(ctx, "proguard.options")
+func CreateResourceJavaFiles(ctx android.ModuleContext, flags []string,
+	deps android.Paths) (android.Path, android.Path, android.Path) {
+	javaDir := android.PathForModuleGen(ctx, "R")
+	javaFileList := android.PathForModuleOut(ctx, "R.filelist")
+	publicResourcesFile := android.PathForModuleOut(ctx, "public_resources.xml")
+	proguardOptionsFile := android.PathForModuleOut(ctx, "proguard.options")
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:      aaptCreateResourceJavaFile,
-		Outputs:   common.WritablePaths{publicResourcesFile, proguardOptionsFile, javaFileList},
+		Outputs:   android.WritablePaths{publicResourcesFile, proguardOptionsFile, javaFileList},
 		Implicits: deps,
 		Args: map[string]string{
 			"aaptFlags":           strings.Join(flags, " "),
@@ -102,10 +102,10 @@
 	return publicResourcesFile, proguardOptionsFile, javaFileList
 }
 
-func CreateExportPackage(ctx common.AndroidModuleContext, flags []string, deps common.Paths) common.ModuleOutPath {
-	outputFile := common.PathForModuleOut(ctx, "package-export.apk")
+func CreateExportPackage(ctx android.ModuleContext, flags []string, deps android.Paths) android.ModuleOutPath {
+	outputFile := android.PathForModuleOut(ctx, "package-export.apk")
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:      aaptCreateAssetsPackage,
 		Output:    outputFile,
 		Implicits: deps,
@@ -117,12 +117,12 @@
 	return outputFile
 }
 
-func CreateAppPackage(ctx common.AndroidModuleContext, flags []string, jarFile common.Path,
-	certificates []string) common.Path {
+func CreateAppPackage(ctx android.ModuleContext, flags []string, jarFile android.Path,
+	certificates []string) android.Path {
 
-	resourceApk := common.PathForModuleOut(ctx, "resources.apk")
+	resourceApk := android.PathForModuleOut(ctx, "resources.apk")
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:   aaptAddResources,
 		Output: resourceApk,
 		Input:  jarFile,
@@ -131,14 +131,14 @@
 		},
 	})
 
-	outputFile := common.PathForModuleOut(ctx, "package.apk")
+	outputFile := android.PathForModuleOut(ctx, "package.apk")
 
 	var certificateArgs []string
 	for _, c := range certificates {
 		certificateArgs = append(certificateArgs, c+".x509.pem", c+".pk8")
 	}
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:   signapk,
 		Output: outputFile,
 		Input:  resourceApk,
diff --git a/java/builder.go b/java/builder.go
index 024af43..5269893 100644
--- a/java/builder.go
+++ b/java/builder.go
@@ -22,14 +22,14 @@
 	"path/filepath"
 	"strings"
 
-	"android/soong/common"
+	"android/soong/android"
 
 	"github.com/google/blueprint"
 	_ "github.com/google/blueprint/bootstrap"
 )
 
 var (
-	pctx = common.NewPackageContext("android/soong/java")
+	pctx = android.NewPackageContext("android/soong/java")
 
 	// Compiling java is not conducive to proper dependency tracking.  The path-matches-class-name
 	// requirement leads to unpredictable generated source file names, and a single .java file
@@ -104,24 +104,24 @@
 }
 
 type jarSpec struct {
-	fileList, dir common.Path
+	fileList, dir android.Path
 }
 
 func (j jarSpec) soongJarArgs() string {
 	return "-C " + j.dir.String() + " -l " + j.fileList.String()
 }
 
-func TransformJavaToClasses(ctx common.AndroidModuleContext, srcFiles common.Paths, srcFileLists common.Paths,
-	flags javaBuilderFlags, deps common.Paths) jarSpec {
+func TransformJavaToClasses(ctx android.ModuleContext, srcFiles android.Paths, srcFileLists android.Paths,
+	flags javaBuilderFlags, deps android.Paths) jarSpec {
 
-	classDir := common.PathForModuleOut(ctx, "classes")
-	classFileList := common.PathForModuleOut(ctx, "classes.list")
+	classDir := android.PathForModuleOut(ctx, "classes")
+	classFileList := android.PathForModuleOut(ctx, "classes.list")
 
-	javacFlags := flags.javacFlags + common.JoinWithPrefix(srcFileLists.Strings(), "@")
+	javacFlags := flags.javacFlags + android.JoinWithPrefix(srcFileLists.Strings(), "@")
 
 	deps = append(deps, srcFileLists...)
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:      javac,
 		Output:    classFileList,
 		Inputs:    srcFiles,
@@ -137,12 +137,12 @@
 	return jarSpec{classFileList, classDir}
 }
 
-func TransformClassesToJar(ctx common.AndroidModuleContext, classes []jarSpec,
-	manifest common.OptionalPath) common.Path {
+func TransformClassesToJar(ctx android.ModuleContext, classes []jarSpec,
+	manifest android.OptionalPath) android.Path {
 
-	outputFile := common.PathForModuleOut(ctx, "classes-full-debug.jar")
+	outputFile := android.PathForModuleOut(ctx, "classes-full-debug.jar")
 
-	deps := common.Paths{}
+	deps := android.Paths{}
 	jarArgs := []string{}
 
 	for _, j := range classes {
@@ -155,7 +155,7 @@
 		jarArgs = append(jarArgs, "-m "+manifest.String())
 	}
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:      jar,
 		Output:    outputFile,
 		Implicits: deps,
@@ -167,13 +167,13 @@
 	return outputFile
 }
 
-func TransformClassesJarToDex(ctx common.AndroidModuleContext, classesJar common.Path,
+func TransformClassesJarToDex(ctx android.ModuleContext, classesJar android.Path,
 	flags javaBuilderFlags) jarSpec {
 
-	outDir := common.PathForModuleOut(ctx, "dex")
-	outputFile := common.PathForModuleOut(ctx, "dex.filelist")
+	outDir := android.PathForModuleOut(ctx, "dex")
+	outputFile := android.PathForModuleOut(ctx, "dex.filelist")
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:   dx,
 		Output: outputFile,
 		Input:  classesJar,
@@ -186,11 +186,11 @@
 	return jarSpec{outputFile, outDir}
 }
 
-func TransformDexToJavaLib(ctx common.AndroidModuleContext, resources []jarSpec,
-	dexJarSpec jarSpec) common.Path {
+func TransformDexToJavaLib(ctx android.ModuleContext, resources []jarSpec,
+	dexJarSpec jarSpec) android.Path {
 
-	outputFile := common.PathForModuleOut(ctx, "javalib.jar")
-	var deps common.Paths
+	outputFile := android.PathForModuleOut(ctx, "javalib.jar")
+	var deps android.Paths
 	var jarArgs []string
 
 	for _, j := range resources {
@@ -201,7 +201,7 @@
 	deps = append(deps, dexJarSpec.fileList)
 	jarArgs = append(jarArgs, dexJarSpec.soongJarArgs())
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:      jar,
 		Output:    outputFile,
 		Implicits: deps,
@@ -213,9 +213,9 @@
 	return outputFile
 }
 
-func TransformJarJar(ctx common.AndroidModuleContext, classesJar common.Path, rulesFile common.Path) common.Path {
-	outputFile := common.PathForModuleOut(ctx, "classes-jarjar.jar")
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+func TransformJarJar(ctx android.ModuleContext, classesJar android.Path, rulesFile android.Path) android.Path {
+	outputFile := android.PathForModuleOut(ctx, "classes-jarjar.jar")
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:     jarjar,
 		Output:   outputFile,
 		Input:    classesJar,
@@ -228,16 +228,16 @@
 	return outputFile
 }
 
-func TransformPrebuiltJarToClasses(ctx common.AndroidModuleContext,
-	prebuilt common.Path) (classJarSpec, resourceJarSpec jarSpec) {
+func TransformPrebuiltJarToClasses(ctx android.ModuleContext,
+	prebuilt android.Path) (classJarSpec, resourceJarSpec jarSpec) {
 
-	classDir := common.PathForModuleOut(ctx, "extracted/classes")
-	classFileList := common.PathForModuleOut(ctx, "extracted/classes.list")
-	resourceFileList := common.PathForModuleOut(ctx, "extracted/resources.list")
+	classDir := android.PathForModuleOut(ctx, "extracted/classes")
+	classFileList := android.PathForModuleOut(ctx, "extracted/classes.list")
+	resourceFileList := android.PathForModuleOut(ctx, "extracted/resources.list")
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:    extractPrebuilt,
-		Outputs: common.WritablePaths{classFileList, resourceFileList},
+		Outputs: android.WritablePaths{classFileList, resourceFileList},
 		Input:   prebuilt,
 		Args: map[string]string{
 			"outDir":       classDir.String(),
diff --git a/java/gen.go b/java/gen.go
index 51f9959..57c4ba2 100644
--- a/java/gen.go
+++ b/java/gen.go
@@ -21,7 +21,7 @@
 import (
 	"github.com/google/blueprint"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 func init() {
@@ -56,11 +56,11 @@
 		})
 )
 
-func genAidl(ctx common.AndroidModuleContext, aidlFile common.Path, aidlFlags string) common.Path {
-	javaFile := common.GenPathWithExt(ctx, aidlFile, "java")
+func genAidl(ctx android.ModuleContext, aidlFile android.Path, aidlFlags string) android.Path {
+	javaFile := android.GenPathWithExt(ctx, aidlFile, "java")
 	depFile := javaFile.String() + ".d"
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:   aidl,
 		Output: javaFile,
 		Input:  aidlFile,
@@ -73,10 +73,10 @@
 	return javaFile
 }
 
-func genLogtags(ctx common.AndroidModuleContext, logtagsFile common.Path) common.Path {
-	javaFile := common.GenPathWithExt(ctx, logtagsFile, "java")
+func genLogtags(ctx android.ModuleContext, logtagsFile android.Path) android.Path {
+	javaFile := android.GenPathWithExt(ctx, logtagsFile, "java")
 
-	ctx.ModuleBuild(pctx, common.ModuleBuildParams{
+	ctx.ModuleBuild(pctx, android.ModuleBuildParams{
 		Rule:   logtags,
 		Output: javaFile,
 		Input:  logtagsFile,
@@ -85,8 +85,8 @@
 	return javaFile
 }
 
-func (j *javaBase) genSources(ctx common.AndroidModuleContext, srcFiles common.Paths,
-	flags javaBuilderFlags) common.Paths {
+func (j *javaBase) genSources(ctx android.ModuleContext, srcFiles android.Paths,
+	flags javaBuilderFlags) android.Paths {
 
 	for i, srcFile := range srcFiles {
 		switch srcFile.Ext() {
@@ -108,13 +108,13 @@
 }
 
 type logtagsProducer interface {
-	logtags() common.Paths
+	logtags() android.Paths
 }
 
 type logtagsSingleton struct{}
 
 func (l *logtagsSingleton) GenerateBuildActions(ctx blueprint.SingletonContext) {
-	var allLogtags common.Paths
+	var allLogtags android.Paths
 	ctx.VisitAllModules(func(module blueprint.Module) {
 		if logtags, ok := module.(logtagsProducer); ok {
 			allLogtags = append(allLogtags, logtags.logtags()...)
diff --git a/java/java.go b/java/java.go
index e594d32..315ee49 100644
--- a/java/java.go
+++ b/java/java.go
@@ -25,7 +25,7 @@
 	"github.com/google/blueprint"
 
 	"android/soong"
-	"android/soong/common"
+	"android/soong/android"
 	"android/soong/genrule"
 )
 
@@ -114,16 +114,16 @@
 // javaBase contains the properties and members used by all java module types, and implements
 // the blueprint.Module interface.
 type javaBase struct {
-	common.AndroidModuleBase
+	android.ModuleBase
 	module JavaModuleType
 
 	properties javaBaseProperties
 
 	// output file suitable for inserting into the classpath of another compile
-	classpathFile common.Path
+	classpathFile android.Path
 
 	// output file suitable for installing or running
-	outputFile common.Path
+	outputFile android.Path
 
 	// jarSpecs suitable for inserting classes from a static library into another jar
 	classJarSpecs []jarSpec
@@ -131,43 +131,43 @@
 	// jarSpecs suitable for inserting resources from a static library into another jar
 	resourceJarSpecs []jarSpec
 
-	exportAidlIncludeDirs common.Paths
+	exportAidlIncludeDirs android.Paths
 
-	logtagsSrcs common.Paths
+	logtagsSrcs android.Paths
 
 	// filelists of extra source files that should be included in the javac command line,
 	// for example R.java generated by aapt for android apps
-	ExtraSrcLists common.Paths
+	ExtraSrcLists android.Paths
 
 	// installed file for binary dependency
-	installFile common.Path
+	installFile android.Path
 }
 
-type AndroidJavaModuleContext common.AndroidBaseContext
+type AndroidJavaModuleContext android.BaseContext
 
 type JavaModuleType interface {
-	GenerateJavaBuildActions(ctx common.AndroidModuleContext)
+	GenerateJavaBuildActions(ctx android.ModuleContext)
 	JavaDependencies(ctx AndroidJavaModuleContext) []string
 }
 
 type JavaDependency interface {
-	ClasspathFile() common.Path
+	ClasspathFile() android.Path
 	ClassJarSpecs() []jarSpec
 	ResourceJarSpecs() []jarSpec
-	AidlIncludeDirs() common.Paths
+	AidlIncludeDirs() android.Paths
 }
 
-func NewJavaBase(base *javaBase, module JavaModuleType, hod common.HostOrDeviceSupported,
+func NewJavaBase(base *javaBase, module JavaModuleType, hod android.HostOrDeviceSupported,
 	props ...interface{}) (blueprint.Module, []interface{}) {
 
 	base.module = module
 
 	props = append(props, &base.properties)
 
-	return common.InitAndroidArchModule(base, hod, common.MultilibCommon, props...)
+	return android.InitAndroidArchModule(base, hod, android.MultilibCommon, props...)
 }
 
-func (j *javaBase) BootClasspath(ctx common.AndroidBaseContext) string {
+func (j *javaBase) BootClasspath(ctx android.BaseContext) string {
 	if ctx.Device() {
 		if j.properties.Sdk_version == "" {
 			return "core-libart"
@@ -191,7 +191,7 @@
 
 var defaultJavaLibraries = []string{"core-libart", "core-junit", "ext", "framework"}
 
-func javaDepsMutator(ctx common.AndroidBottomUpMutatorContext) {
+func javaDepsMutator(ctx android.BottomUpMutatorContext) {
 	if j, ok := ctx.Module().(JavaModuleType); ok {
 		ctx.AddDependency(ctx.Module(), nil, j.JavaDependencies(ctx)...)
 	}
@@ -215,35 +215,35 @@
 	return deps
 }
 
-func (j *javaBase) aidlFlags(ctx common.AndroidModuleContext, aidlPreprocess common.OptionalPath,
-	aidlIncludeDirs common.Paths) []string {
+func (j *javaBase) aidlFlags(ctx android.ModuleContext, aidlPreprocess android.OptionalPath,
+	aidlIncludeDirs android.Paths) []string {
 
-	localAidlIncludes := common.PathsForModuleSrc(ctx, j.properties.Aidl_includes)
+	localAidlIncludes := android.PathsForModuleSrc(ctx, j.properties.Aidl_includes)
 
 	var flags []string
 	if aidlPreprocess.Valid() {
 		flags = append(flags, "-p"+aidlPreprocess.String())
 	} else {
-		flags = append(flags, common.JoinWithPrefix(aidlIncludeDirs.Strings(), "-I"))
+		flags = append(flags, android.JoinWithPrefix(aidlIncludeDirs.Strings(), "-I"))
 	}
 
-	flags = append(flags, common.JoinWithPrefix(j.exportAidlIncludeDirs.Strings(), "-I"))
-	flags = append(flags, common.JoinWithPrefix(localAidlIncludes.Strings(), "-I"))
-	flags = append(flags, "-I"+common.PathForModuleSrc(ctx).String())
-	flags = append(flags, "-I"+common.PathForModuleSrc(ctx, "src").String())
+	flags = append(flags, android.JoinWithPrefix(j.exportAidlIncludeDirs.Strings(), "-I"))
+	flags = append(flags, android.JoinWithPrefix(localAidlIncludes.Strings(), "-I"))
+	flags = append(flags, "-I"+android.PathForModuleSrc(ctx).String())
+	flags = append(flags, "-I"+android.PathForModuleSrc(ctx, "src").String())
 
 	return flags
 }
 
-func (j *javaBase) collectDeps(ctx common.AndroidModuleContext) (classpath common.Paths,
-	bootClasspath common.OptionalPath, classJarSpecs, resourceJarSpecs []jarSpec, aidlPreprocess common.OptionalPath,
-	aidlIncludeDirs common.Paths, srcFileLists common.Paths) {
+func (j *javaBase) collectDeps(ctx android.ModuleContext) (classpath android.Paths,
+	bootClasspath android.OptionalPath, classJarSpecs, resourceJarSpecs []jarSpec, aidlPreprocess android.OptionalPath,
+	aidlIncludeDirs android.Paths, srcFileLists android.Paths) {
 
 	ctx.VisitDirectDeps(func(module blueprint.Module) {
 		otherName := ctx.OtherModuleName(module)
 		if javaDep, ok := module.(JavaDependency); ok {
 			if otherName == j.BootClasspath(ctx) {
-				bootClasspath = common.OptionalPathForPath(javaDep.ClasspathFile())
+				bootClasspath = android.OptionalPathForPath(javaDep.ClasspathFile())
 			} else if inList(otherName, defaultJavaLibraries) {
 				classpath = append(classpath, javaDep.ClasspathFile())
 			} else if inList(otherName, j.properties.Java_libs) {
@@ -279,13 +279,13 @@
 		aidlIncludeDirs, srcFileLists
 }
 
-func (j *javaBase) GenerateAndroidBuildActions(ctx common.AndroidModuleContext) {
+func (j *javaBase) GenerateAndroidBuildActions(ctx android.ModuleContext) {
 	j.module.GenerateJavaBuildActions(ctx)
 }
 
-func (j *javaBase) GenerateJavaBuildActions(ctx common.AndroidModuleContext) {
+func (j *javaBase) GenerateJavaBuildActions(ctx android.ModuleContext) {
 
-	j.exportAidlIncludeDirs = common.PathsForModuleSrc(ctx, j.properties.Export_aidl_include_dirs)
+	j.exportAidlIncludeDirs = android.PathsForModuleSrc(ctx, j.properties.Export_aidl_include_dirs)
 
 	classpath, bootClasspath, classJarSpecs, resourceJarSpecs, aidlPreprocess,
 		aidlIncludeDirs, srcFileLists := j.collectDeps(ctx)
@@ -304,7 +304,7 @@
 		flags.aidlFlags = "$aidlFlags"
 	}
 
-	var javacDeps common.Paths
+	var javacDeps android.Paths
 
 	if bootClasspath.Valid() {
 		flags.bootClasspath = "-bootclasspath " + bootClasspath.String()
@@ -341,7 +341,7 @@
 	resourceJarSpecs = append(ResourceDirsToJarSpecs(ctx, j.properties.Java_resource_dirs, j.properties.Exclude_java_resource_dirs),
 		resourceJarSpecs...)
 
-	manifest := common.OptionalPathForModuleSrc(ctx, j.properties.Manifest)
+	manifest := android.OptionalPathForModuleSrc(ctx, j.properties.Manifest)
 
 	allJarSpecs := append([]jarSpec(nil), classJarSpecs...)
 	allJarSpecs = append(allJarSpecs, resourceJarSpecs...)
@@ -353,7 +353,7 @@
 	}
 
 	if j.properties.Jarjar_rules != nil {
-		jarjar_rules := common.PathForModuleSrc(ctx, *j.properties.Jarjar_rules)
+		jarjar_rules := android.PathForModuleSrc(ctx, *j.properties.Jarjar_rules)
 		// Transform classes-full-debug.jar into classes-jarjar.jar
 		outputFile = TransformJarJar(ctx, outputFile, jarjar_rules)
 		if ctx.Failed() {
@@ -388,7 +388,7 @@
 			dxFlags = append(dxFlags,
 				"--debug",
 				"--verbose",
-				"--dump-to="+common.PathForModuleOut(ctx, "classes.lst").String(),
+				"--dump-to="+android.PathForModuleOut(ctx, "classes.lst").String(),
 				"--dump-width=1000")
 		}
 
@@ -409,7 +409,7 @@
 
 var _ JavaDependency = (*JavaLibrary)(nil)
 
-func (j *javaBase) ClasspathFile() common.Path {
+func (j *javaBase) ClasspathFile() android.Path {
 	return j.classpathFile
 }
 
@@ -421,13 +421,13 @@
 	return j.resourceJarSpecs
 }
 
-func (j *javaBase) AidlIncludeDirs() common.Paths {
+func (j *javaBase) AidlIncludeDirs() android.Paths {
 	return j.exportAidlIncludeDirs
 }
 
 var _ logtagsProducer = (*javaBase)(nil)
 
-func (j *javaBase) logtags() common.Paths {
+func (j *javaBase) logtags() android.Paths {
 	return j.logtagsSrcs
 }
 
@@ -439,10 +439,10 @@
 	javaBase
 }
 
-func (j *JavaLibrary) GenerateJavaBuildActions(ctx common.AndroidModuleContext) {
+func (j *JavaLibrary) GenerateJavaBuildActions(ctx android.ModuleContext) {
 	j.javaBase.GenerateJavaBuildActions(ctx)
 
-	j.installFile = ctx.InstallFileName(common.PathForModuleInstall(ctx, "framework"), ctx.ModuleName()+".jar", j.outputFile)
+	j.installFile = ctx.InstallFileName(android.PathForModuleInstall(ctx, "framework"), ctx.ModuleName()+".jar", j.outputFile)
 }
 
 func JavaLibraryFactory() (blueprint.Module, []interface{}) {
@@ -450,13 +450,13 @@
 
 	module.properties.Dex = true
 
-	return NewJavaBase(&module.javaBase, module, common.HostAndDeviceSupported)
+	return NewJavaBase(&module.javaBase, module, android.HostAndDeviceSupported)
 }
 
 func JavaLibraryHostFactory() (blueprint.Module, []interface{}) {
 	module := &JavaLibrary{}
 
-	return NewJavaBase(&module.javaBase, module, common.HostSupported)
+	return NewJavaBase(&module.javaBase, module, android.HostSupported)
 }
 
 //
@@ -474,12 +474,12 @@
 	binaryProperties javaBinaryProperties
 }
 
-func (j *JavaBinary) GenerateJavaBuildActions(ctx common.AndroidModuleContext) {
+func (j *JavaBinary) GenerateJavaBuildActions(ctx android.ModuleContext) {
 	j.JavaLibrary.GenerateJavaBuildActions(ctx)
 
 	// Depend on the installed jar (j.installFile) so that the wrapper doesn't get executed by
 	// another build rule before the jar has been installed.
-	ctx.InstallFile(common.PathForModuleInstall(ctx, "bin"), common.PathForModuleSrc(ctx, j.binaryProperties.Wrapper),
+	ctx.InstallFile(android.PathForModuleInstall(ctx, "bin"), android.PathForModuleSrc(ctx, j.binaryProperties.Wrapper),
 		j.installFile)
 }
 
@@ -488,13 +488,13 @@
 
 	module.properties.Dex = true
 
-	return NewJavaBase(&module.javaBase, module, common.HostAndDeviceSupported, &module.binaryProperties)
+	return NewJavaBase(&module.javaBase, module, android.HostAndDeviceSupported, &module.binaryProperties)
 }
 
 func JavaBinaryHostFactory() (blueprint.Module, []interface{}) {
 	module := &JavaBinary{}
 
-	return NewJavaBase(&module.javaBase, module, common.HostSupported, &module.binaryProperties)
+	return NewJavaBase(&module.javaBase, module, android.HostSupported, &module.binaryProperties)
 }
 
 //
@@ -506,32 +506,32 @@
 }
 
 type JavaPrebuilt struct {
-	common.AndroidModuleBase
+	android.ModuleBase
 
 	properties javaPrebuiltProperties
 
-	classpathFile                   common.Path
+	classpathFile                   android.Path
 	classJarSpecs, resourceJarSpecs []jarSpec
 }
 
-func (j *JavaPrebuilt) GenerateAndroidBuildActions(ctx common.AndroidModuleContext) {
+func (j *JavaPrebuilt) GenerateAndroidBuildActions(ctx android.ModuleContext) {
 	if len(j.properties.Srcs) != 1 {
 		ctx.ModuleErrorf("expected exactly one jar in srcs")
 		return
 	}
-	prebuilt := common.PathForModuleSrc(ctx, j.properties.Srcs[0])
+	prebuilt := android.PathForModuleSrc(ctx, j.properties.Srcs[0])
 
 	classJarSpec, resourceJarSpec := TransformPrebuiltJarToClasses(ctx, prebuilt)
 
 	j.classpathFile = prebuilt
 	j.classJarSpecs = []jarSpec{classJarSpec}
 	j.resourceJarSpecs = []jarSpec{resourceJarSpec}
-	ctx.InstallFileName(common.PathForModuleInstall(ctx, "framework"), ctx.ModuleName()+".jar", j.classpathFile)
+	ctx.InstallFileName(android.PathForModuleInstall(ctx, "framework"), ctx.ModuleName()+".jar", j.classpathFile)
 }
 
 var _ JavaDependency = (*JavaPrebuilt)(nil)
 
-func (j *JavaPrebuilt) ClasspathFile() common.Path {
+func (j *JavaPrebuilt) ClasspathFile() android.Path {
 	return j.classpathFile
 }
 
@@ -543,15 +543,15 @@
 	return j.resourceJarSpecs
 }
 
-func (j *JavaPrebuilt) AidlIncludeDirs() common.Paths {
+func (j *JavaPrebuilt) AidlIncludeDirs() android.Paths {
 	return nil
 }
 
 func JavaPrebuiltFactory() (blueprint.Module, []interface{}) {
 	module := &JavaPrebuilt{}
 
-	return common.InitAndroidArchModule(module, common.HostAndDeviceSupported,
-		common.MultilibCommon, &module.properties)
+	return android.InitAndroidArchModule(module, android.HostAndDeviceSupported,
+		android.MultilibCommon, &module.properties)
 }
 
 //
@@ -560,7 +560,7 @@
 
 type sdkDependency interface {
 	JavaDependency
-	AidlPreprocessed() common.OptionalPath
+	AidlPreprocessed() android.OptionalPath
 }
 
 var _ sdkDependency = (*sdkPrebuilt)(nil)
@@ -574,24 +574,24 @@
 
 	sdkProperties sdkPrebuiltProperties
 
-	aidlPreprocessed common.OptionalPath
+	aidlPreprocessed android.OptionalPath
 }
 
-func (j *sdkPrebuilt) GenerateAndroidBuildActions(ctx common.AndroidModuleContext) {
+func (j *sdkPrebuilt) GenerateAndroidBuildActions(ctx android.ModuleContext) {
 	j.JavaPrebuilt.GenerateAndroidBuildActions(ctx)
 
-	j.aidlPreprocessed = common.OptionalPathForModuleSrc(ctx, j.sdkProperties.Aidl_preprocessed)
+	j.aidlPreprocessed = android.OptionalPathForModuleSrc(ctx, j.sdkProperties.Aidl_preprocessed)
 }
 
-func (j *sdkPrebuilt) AidlPreprocessed() common.OptionalPath {
+func (j *sdkPrebuilt) AidlPreprocessed() android.OptionalPath {
 	return j.aidlPreprocessed
 }
 
 func SdkPrebuiltFactory() (blueprint.Module, []interface{}) {
 	module := &sdkPrebuilt{}
 
-	return common.InitAndroidArchModule(module, common.HostAndDeviceSupported,
-		common.MultilibCommon, &module.properties, &module.sdkProperties)
+	return android.InitAndroidArchModule(module, android.HostAndDeviceSupported,
+		android.MultilibCommon, &module.properties, &module.sdkProperties)
 }
 
 func inList(s string, l []string) bool {
diff --git a/java/resources.go b/java/resources.go
index 4f734f2..a4783b8 100644
--- a/java/resources.go
+++ b/java/resources.go
@@ -17,7 +17,7 @@
 import (
 	"path/filepath"
 
-	"android/soong/common"
+	"android/soong/android"
 )
 
 var resourceExcludes = []string{
@@ -38,11 +38,11 @@
 	return false
 }
 
-func ResourceDirsToJarSpecs(ctx common.AndroidModuleContext, resourceDirs, excludeDirs []string) []jarSpec {
+func ResourceDirsToJarSpecs(ctx android.ModuleContext, resourceDirs, excludeDirs []string) []jarSpec {
 	var excludes []string
 
 	for _, exclude := range excludeDirs {
-		excludes = append(excludes, common.PathForModuleSrc(ctx, exclude, "**/*").String())
+		excludes = append(excludes, android.PathForModuleSrc(ctx, exclude, "**/*").String())
 	}
 
 	excludes = append(excludes, resourceExcludes...)
@@ -53,14 +53,14 @@
 		if isStringInSlice(resourceDir, excludeDirs) {
 			continue
 		}
-		resourceDir := common.PathForModuleSrc(ctx, resourceDir)
+		resourceDir := android.PathForModuleSrc(ctx, resourceDir)
 		dirs := ctx.Glob("java_resources", resourceDir.String(), nil)
 		for _, dir := range dirs {
-			fileListFile := common.ResPathWithName(ctx, dir, "resources.list")
+			fileListFile := android.ResPathWithName(ctx, dir, "resources.list")
 			depFile := fileListFile.String() + ".d"
 
 			glob := filepath.Join(dir.String(), "**/*")
-			common.GlobRule(ctx, glob, excludes, fileListFile.String(), depFile)
+			android.GlobRule(ctx, glob, excludes, fileListFile.String(), depFile)
 			jarSpecs = append(jarSpecs, jarSpec{fileListFile, dir})
 		}
 	}