Merge "Add an Override_apex_available property for APEX"

This commit is contained in:
Yiming Jing
2023-02-22 00:33:32 +00:00
committed by Gerrit Code Review

View File

@@ -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 {