diff --git a/android/config.go b/android/config.go
index d83bf0a..56d0a39 100644
--- a/android/config.go
+++ b/android/config.go
@@ -468,16 +468,20 @@
 	return "000000"
 }
 
-func (c *config) ProductAaptConfig() []string {
-	return []string{"normal", "large", "xlarge", "hdpi", "xhdpi", "xxhdpi"}
+func (c *config) ProductAAPTConfig() []string {
+	return *c.ProductVariables.AAPTConfig
 }
 
-func (c *config) ProductAaptPreferredConfig() string {
-	return "xhdpi"
+func (c *config) ProductAAPTPreferredConfig() string {
+	return *c.ProductVariables.AAPTPreferredConfig
 }
 
-func (c *config) ProductAaptCharacteristics() string {
-	return "nosdcard"
+func (c *config) ProductAAPTCharacteristics() string {
+	return *c.ProductVariables.AAPTCharacteristics
+}
+
+func (c *config) ProductAAPTPrebuiltDPI() []string {
+	return *c.ProductVariables.AAPTPrebuiltDPI
 }
 
 func (c *config) DefaultAppCertificateDir(ctx PathContext) SourcePath {
diff --git a/android/variable.go b/android/variable.go
index 16a6b11..4b3925c 100644
--- a/android/variable.go
+++ b/android/variable.go
@@ -132,6 +132,17 @@
 	CrossHostArch          *string `json:",omitempty"`
 	CrossHostSecondaryArch *string `json:",omitempty"`
 
+	ResourceOverlays           *[]string `json:",omitempty"`
+	EnforceRROTargets          *[]string `json:",omitempty"`
+	EnforceRROExcludedOverlays *[]string `json:",omitempty"`
+
+	AAPTCharacteristics *string   `json:",omitempty"`
+	AAPTConfig          *[]string `json:",omitempty"`
+	AAPTPreferredConfig *string   `json:",omitempty"`
+	AAPTPrebuiltDPI     *[]string `json:",omitempty"`
+
+	AppsDefaultVersionName *string `json:",omitempty"`
+
 	Allow_missing_dependencies *bool `json:",omitempty"`
 	Unbundled_build            *bool `json:",omitempty"`
 	Brillo                     *bool `json:",omitempty"`
@@ -203,8 +214,14 @@
 		DeviceSecondaryArchVariant: stringPtr("armv7-a-neon"),
 		DeviceSecondaryCpuVariant:  stringPtr("denver"),
 		DeviceSecondaryAbi:         &[]string{"armeabi-v7a"},
-		Malloc_not_svelte:          boolPtr(false),
-		Safestack:                  boolPtr(false),
+
+		AAPTConfig:          &[]string{"normal", "large", "xlarge", "hdpi", "xhdpi", "xxhdpi"},
+		AAPTPreferredConfig: stringPtr("xhdpi"),
+		AAPTCharacteristics: stringPtr("nosdcard"),
+		AAPTPrebuiltDPI:     &[]string{"xhdpi", "xxhdpi"},
+
+		Malloc_not_svelte: boolPtr(false),
+		Safestack:         boolPtr(false),
 	}
 
 	if runtime.GOOS == "linux" {
