diff options
| -rw-r--r-- | apex/apex.go | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/apex/apex.go b/apex/apex.go index b77568dd3..9a80aa880 100644 --- a/apex/apex.go +++ b/apex/apex.go @@ -141,6 +141,9 @@ type apexBundleProperties struct { // Default: true. Installable *bool + // Whether this APEX ignores the apex_available list defined in its dependencies. + Override_apex_available *bool + // If set true, VNDK libs are considered as stable libs and are not included in this APEX. // Should be only used in non-system apexes (e.g. vendor: true). Default is false. Use_vndk_as_stable *bool @@ -1513,6 +1516,10 @@ func (a *apexBundle) UsePlatformApis() bool { return proptools.BoolDefault(a.properties.Platform_apis, false) } +func (a *apexBundle) OverrideApexAvailable() bool { + return proptools.BoolDefault(a.properties.Override_apex_available, false) +} + // getCertString returns the name of the cert that should be used to sign this APEX. This is // basically from the "certificate" property, but could be overridden by the device config. func (a *apexBundle) getCertString(ctx android.BaseModuleContext) string { @@ -3040,6 +3047,11 @@ func (a *apexBundle) checkApexAvailability(ctx android.ModuleContext) { return } + // Ignore availability when `override_apex_available` is true. + if a.OverrideApexAvailable() { + return + } + a.WalkPayloadDeps(ctx, func(ctx android.ModuleContext, from blueprint.Module, to android.ApexModule, externalDep bool) bool { // As soon as the dependency graph crosses the APEX boundary, don't go further. if externalDep { |