Loading android/apex.go +64 −54 Original line number Diff line number Diff line Loading @@ -805,16 +805,26 @@ var minSdkVersionAllowlist = func(apiMap map[string]int) map[string]ApiLevel { }(map[string]int{ "adbd": 30, "android.net.ipsec.ike": 30, "androidx.annotation_annotation-nodeps": 29, "androidx.arch.core_core-common-nodeps": 29, "androidx.collection_collection-nodeps": 29, "androidx.collection_collection-ktx-nodeps": 30, "androidx.lifecycle_lifecycle-common-java8-nodeps": 30, "androidx.lifecycle_lifecycle-common-nodeps": 29, "androidx-constraintlayout_constraintlayout-solver-nodeps": 29, "apache-commons-compress": 29, "bouncycastle_ike_digests": 30, "brotli-java": 29, "captiveportal-lib": 28, "error_prone_annotations": 30, "flatbuffer_headers": 30, "framework-permission": 30, "gemmlowp_headers": 30, "ike-internals": 30, "kotlinx-coroutines-android": 28, "kotlinx-coroutines-android-nodeps": 30, "kotlinx-coroutines-core": 28, "kotlinx-coroutines-core-nodeps": 30, "libadb_crypto": 30, "libadb_pairing_auth": 30, "libadb_pairing_connection": 30, Loading apex/apex_test.go +35 −1 Original line number Diff line number Diff line Loading @@ -1808,6 +1808,30 @@ func TestApexMinSdkVersion_ErrorIfIncompatibleVersion(t *testing.T) { min_sdk_version: "30", } `) testApexError(t, `module "libfoo".*: should support min_sdk_version\(29\)`, ` apex { name: "myapex", key: "myapex.key", java_libs: ["libfoo"], min_sdk_version: "29", } apex_key { name: "myapex.key", public_key: "testkey.avbpubkey", private_key: "testkey.pem", } java_import { name: "libfoo", jars: ["libfoo.jar"], apex_available: [ "myapex", ], min_sdk_version: "30", } `) } func TestApexMinSdkVersion_Okay(t *testing.T) { Loading Loading @@ -1845,7 +1869,10 @@ func TestApexMinSdkVersion_Okay(t *testing.T) { name: "libbar", sdk_version: "current", srcs: ["a.java"], static_libs: ["libbar_dep"], static_libs: [ "libbar_dep", "libbar_import_dep", ], apex_available: ["myapex"], min_sdk_version: "29", } Loading @@ -1857,6 +1884,13 @@ func TestApexMinSdkVersion_Okay(t *testing.T) { apex_available: ["myapex"], min_sdk_version: "29", } java_import { name: "libbar_import_dep", jars: ["libbar.jar"], apex_available: ["myapex"], min_sdk_version: "29", } `) } Loading java/java.go +23 −1 Original line number Diff line number Diff line Loading @@ -1074,8 +1074,14 @@ func BinaryHostFactory() android.Module { type ImportProperties struct { Jars []string `android:"path,arch_variant"` // The version of the SDK that the source prebuilt file was built against. Defaults to the // current version if not specified. Sdk_version *string // The minimum version of the SDK that this module supports. Defaults to sdk_version if not // specified. Min_sdk_version *string Installable *bool // List of shared java libs that this module has dependencies to Loading Loading @@ -1139,6 +1145,9 @@ func (j *Import) systemModules() string { } func (j *Import) minSdkVersion() sdkSpec { if j.properties.Min_sdk_version != nil { return sdkSpecFrom(*j.properties.Min_sdk_version) } return j.sdkVersion() } Loading Loading @@ -1350,7 +1359,20 @@ func (j *Import) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Modu // Implements android.ApexModule func (j *Import) ShouldSupportSdkVersion(ctx android.BaseModuleContext, sdkVersion android.ApiLevel) error { // Do not check for prebuilts against the min_sdk_version of enclosing APEX sdkSpec := j.minSdkVersion() if !sdkSpec.specified() { return fmt.Errorf("min_sdk_version is not specified") } if sdkSpec.kind == sdkCore { return nil } ver, err := sdkSpec.effectiveVersion(ctx) if err != nil { return err } if ver.ApiLevel(ctx).GreaterThan(sdkVersion) { return fmt.Errorf("newer SDK(%v)", ver) } return nil } Loading Loading
android/apex.go +64 −54 Original line number Diff line number Diff line Loading @@ -805,16 +805,26 @@ var minSdkVersionAllowlist = func(apiMap map[string]int) map[string]ApiLevel { }(map[string]int{ "adbd": 30, "android.net.ipsec.ike": 30, "androidx.annotation_annotation-nodeps": 29, "androidx.arch.core_core-common-nodeps": 29, "androidx.collection_collection-nodeps": 29, "androidx.collection_collection-ktx-nodeps": 30, "androidx.lifecycle_lifecycle-common-java8-nodeps": 30, "androidx.lifecycle_lifecycle-common-nodeps": 29, "androidx-constraintlayout_constraintlayout-solver-nodeps": 29, "apache-commons-compress": 29, "bouncycastle_ike_digests": 30, "brotli-java": 29, "captiveportal-lib": 28, "error_prone_annotations": 30, "flatbuffer_headers": 30, "framework-permission": 30, "gemmlowp_headers": 30, "ike-internals": 30, "kotlinx-coroutines-android": 28, "kotlinx-coroutines-android-nodeps": 30, "kotlinx-coroutines-core": 28, "kotlinx-coroutines-core-nodeps": 30, "libadb_crypto": 30, "libadb_pairing_auth": 30, "libadb_pairing_connection": 30, Loading
apex/apex_test.go +35 −1 Original line number Diff line number Diff line Loading @@ -1808,6 +1808,30 @@ func TestApexMinSdkVersion_ErrorIfIncompatibleVersion(t *testing.T) { min_sdk_version: "30", } `) testApexError(t, `module "libfoo".*: should support min_sdk_version\(29\)`, ` apex { name: "myapex", key: "myapex.key", java_libs: ["libfoo"], min_sdk_version: "29", } apex_key { name: "myapex.key", public_key: "testkey.avbpubkey", private_key: "testkey.pem", } java_import { name: "libfoo", jars: ["libfoo.jar"], apex_available: [ "myapex", ], min_sdk_version: "30", } `) } func TestApexMinSdkVersion_Okay(t *testing.T) { Loading Loading @@ -1845,7 +1869,10 @@ func TestApexMinSdkVersion_Okay(t *testing.T) { name: "libbar", sdk_version: "current", srcs: ["a.java"], static_libs: ["libbar_dep"], static_libs: [ "libbar_dep", "libbar_import_dep", ], apex_available: ["myapex"], min_sdk_version: "29", } Loading @@ -1857,6 +1884,13 @@ func TestApexMinSdkVersion_Okay(t *testing.T) { apex_available: ["myapex"], min_sdk_version: "29", } java_import { name: "libbar_import_dep", jars: ["libbar.jar"], apex_available: ["myapex"], min_sdk_version: "29", } `) } Loading
java/java.go +23 −1 Original line number Diff line number Diff line Loading @@ -1074,8 +1074,14 @@ func BinaryHostFactory() android.Module { type ImportProperties struct { Jars []string `android:"path,arch_variant"` // The version of the SDK that the source prebuilt file was built against. Defaults to the // current version if not specified. Sdk_version *string // The minimum version of the SDK that this module supports. Defaults to sdk_version if not // specified. Min_sdk_version *string Installable *bool // List of shared java libs that this module has dependencies to Loading Loading @@ -1139,6 +1145,9 @@ func (j *Import) systemModules() string { } func (j *Import) minSdkVersion() sdkSpec { if j.properties.Min_sdk_version != nil { return sdkSpecFrom(*j.properties.Min_sdk_version) } return j.sdkVersion() } Loading Loading @@ -1350,7 +1359,20 @@ func (j *Import) DepIsInSameApex(ctx android.BaseModuleContext, dep android.Modu // Implements android.ApexModule func (j *Import) ShouldSupportSdkVersion(ctx android.BaseModuleContext, sdkVersion android.ApiLevel) error { // Do not check for prebuilts against the min_sdk_version of enclosing APEX sdkSpec := j.minSdkVersion() if !sdkSpec.specified() { return fmt.Errorf("min_sdk_version is not specified") } if sdkSpec.kind == sdkCore { return nil } ver, err := sdkSpec.effectiveVersion(ctx) if err != nil { return err } if ver.ApiLevel(ctx).GreaterThan(sdkVersion) { return fmt.Errorf("newer SDK(%v)", ver) } return nil } Loading