diff --git a/android/config.go b/android/config.go index d16377d7b..0e3b0a1ef 100644 --- a/android/config.go +++ b/android/config.go @@ -2127,3 +2127,11 @@ func (c *config) BoardUseVbmetaDigestInFingerprint() bool { func (c *config) OemProperties() []string { return c.productVariables.OemProperties } + +func (c *config) UseDebugArt() bool { + if c.productVariables.ArtTargetIncludeDebugBuild != nil { + return Bool(c.productVariables.ArtTargetIncludeDebugBuild) + } + + return Bool(c.productVariables.Eng) +} diff --git a/android/module.go b/android/module.go index 91f2056d4..37e26f9b8 100644 --- a/android/module.go +++ b/android/module.go @@ -2213,6 +2213,9 @@ func (e configurationEvalutor) EvaluateConfiguration(condition proptools.Configu switch variable { case "debuggable": return proptools.ConfigurableValueBool(ctx.Config().Debuggable()) + case "use_debug_art": + // TODO(b/234351700): Remove once ART does not have separated debug APEX + return proptools.ConfigurableValueBool(ctx.Config().UseDebugArt()) default: // TODO(b/323382414): Might add these on a case-by-case basis ctx.OtherModulePropertyErrorf(m, property, fmt.Sprintf("TODO(b/323382414): Product variable %q is not yet supported in selects", variable)) diff --git a/android/variable.go b/android/variable.go index 3b02bc72f..b2173ec37 100644 --- a/android/variable.go +++ b/android/variable.go @@ -520,6 +520,8 @@ type ProductVariables struct { BoardUseVbmetaDigestInFingerprint *bool `json:",omitempty"` OemProperties []string `json:",omitempty"` + + ArtTargetIncludeDebugBuild *bool `json:",omitempty"` } type PartitionQualifiedVariablesType struct {