diff --git a/android/config.go b/android/config.go
index 6c524e1..21a7233 100644
--- a/android/config.go
+++ b/android/config.go
@@ -75,6 +75,7 @@
 	envFrozen bool
 
 	inMake bool
+
 	OncePer
 }
 
@@ -332,6 +333,14 @@
 	return Bool(c.ProductVariables.Allow_missing_dependencies)
 }
 
+func (c *config) DevicePrefer32BitExecutables() bool {
+	return Bool(c.ProductVariables.DevicePrefer32BitExecutables)
+}
+
+func (c *config) HostPrefer32BitExecutables() bool {
+	return Bool(c.ProductVariables.HostPrefer32BitExecutables)
+}
+
 func (c *config) SkipDeviceInstall() bool {
 	return c.EmbeddedInMake() || Bool(c.Mega_device)
 }
diff --git a/android/module.go b/android/module.go
index fd37ca8..45afec1 100644
--- a/android/module.go
+++ b/android/module.go
@@ -63,6 +63,7 @@
 	Device() bool
 	Darwin() bool
 	Debug() bool
+	PrimaryArch() bool
 	AConfig() Config
 	DeviceConfig() DeviceConfig
 }
@@ -548,6 +549,10 @@
 	return a.debug
 }
 
+func (a *androidBaseContextImpl) PrimaryArch() bool {
+	return a.target.Arch.ArchType == a.config.Targets[a.target.Os.Class][0].Arch.ArchType
+}
+
 func (a *androidBaseContextImpl) AConfig() Config {
 	return a.config
 }
diff --git a/android/variable.go b/android/variable.go
index 531125d..be2407d 100644
--- a/android/variable.go
+++ b/android/variable.go
@@ -102,6 +102,9 @@
 	Schedboost                 *bool `json:",omitempty"`
 	Binder32bit                *bool `json:",omitempty"`
 
+	DevicePrefer32BitExecutables *bool `json:",omitempty"`
+	HostPrefer32BitExecutables   *bool `json:",omitempty"`
+
 	SanitizeHost   *[]string `json:",omitempty"`
 	SanitizeDevice *[]string `json:",omitempty"`
 }
