Allow java_sdk_library in an APEX to have higher min_sdk_version.

Inidividual boot or system server jars may have higher min_sdk_version
than the contianing apex, since the runtime respects the values of
min/max_sdk_version; e.g. runtime would not load a boot jar with
higher min_sdk_version. This allows shipping new boot jars via apexes
that target older platforms.

Bug: 190818041
Test: presubmit
Change-Id: I08ec0b4463a17bc8265b948fe09da55eb4e52ac3
This commit is contained in:
satayev
2021-12-06 11:42:40 +00:00
parent 8f088b09d8
commit 758968a700
4 changed files with 189 additions and 2 deletions

View File

@@ -945,6 +945,14 @@ func CheckMinSdkVersion(ctx ModuleContext, minSdkVersion ApiLevel, walk WalkPayl
if am, ok := from.(DepIsInSameApex); ok && !am.DepIsInSameApex(ctx, to) {
return false
}
if m, ok := to.(ModuleWithMinSdkVersionCheck); ok {
// This dependency performs its own min_sdk_version check, just make sure it sets min_sdk_version
// to trigger the check.
if !m.MinSdkVersion(ctx).Specified() {
ctx.OtherModuleErrorf(m, "must set min_sdk_version")
}
return false
}
if err := to.ShouldSupportSdkVersion(ctx, minSdkVersion); err != nil {
toName := ctx.OtherModuleName(to)
if ver, ok := minSdkVersionAllowlist[toName]; !ok || ver.GreaterThan(minSdkVersion) {