diff --git a/android/config.go b/android/config.go index f95010e05..9cfbc9e4f 100644 --- a/android/config.go +++ b/android/config.go @@ -1355,6 +1355,10 @@ func (c *config) BazelModulesForceEnabledByFlag() map[string]struct{} { return c.bazelForceEnabledModules } +func (c *config) IsVndkDeprecated() bool { + return !Bool(c.productVariables.KeepVndk) +} + func (c *deviceConfig) Arches() []Arch { var arches []Arch for _, target := range c.config.Targets[Android] { diff --git a/android/variable.go b/android/variable.go index f5dddafd8..1c81f3c3d 100644 --- a/android/variable.go +++ b/android/variable.go @@ -475,6 +475,8 @@ type ProductVariables struct { ReleaseVersion string `json:",omitempty"` ReleaseAconfigValueSets []string `json:",omitempty"` + + KeepVndk *bool `json:",omitempty"` } func boolPtr(v bool) *bool { diff --git a/cc/library.go b/cc/library.go index 3dcb5d958..266fa7511 100644 --- a/cc/library.go +++ b/cc/library.go @@ -2275,7 +2275,7 @@ func (library *libraryDecorator) install(ctx ModuleContext, file android.Path) { // do not install vndk libs // vndk libs are packaged into VNDK APEX - if ctx.isVndk() && !ctx.IsVndkExt() { + if ctx.isVndk() && !ctx.IsVndkExt() && !ctx.Config().IsVndkDeprecated() { return } } else if library.hasStubsVariants() && !ctx.Host() && ctx.directlyInAnyApex() {