Merge "Revert "Revert "Add min_sdk_version to java_import."""
This commit is contained in:
commit
d0afefa4b1
121
android/apex.go
121
android/apex.go
|
@ -803,60 +803,73 @@ var minSdkVersionAllowlist = func(apiMap map[string]int) map[string]ApiLevel {
|
|||
}
|
||||
return list
|
||||
}(map[string]int{
|
||||
"adbd": 30,
|
||||
"android.net.ipsec.ike": 30,
|
||||
"apache-commons-compress": 29,
|
||||
"bouncycastle_ike_digests": 30,
|
||||
"brotli-java": 29,
|
||||
"captiveportal-lib": 28,
|
||||
"flatbuffer_headers": 30,
|
||||
"framework-permission": 30,
|
||||
"gemmlowp_headers": 30,
|
||||
"ike-internals": 30,
|
||||
"kotlinx-coroutines-android": 28,
|
||||
"kotlinx-coroutines-core": 28,
|
||||
"libadb_crypto": 30,
|
||||
"libadb_pairing_auth": 30,
|
||||
"libadb_pairing_connection": 30,
|
||||
"libadb_pairing_server": 30,
|
||||
"libadb_protos": 30,
|
||||
"libadb_tls_connection": 30,
|
||||
"libadbconnection_client": 30,
|
||||
"libadbconnection_server": 30,
|
||||
"libadbd_core": 30,
|
||||
"libadbd_services": 30,
|
||||
"libadbd": 30,
|
||||
"libapp_processes_protos_lite": 30,
|
||||
"libasyncio": 30,
|
||||
"libbrotli": 30,
|
||||
"libbuildversion": 30,
|
||||
"libcrypto_static": 30,
|
||||
"libcrypto_utils": 30,
|
||||
"libdiagnose_usb": 30,
|
||||
"libeigen": 30,
|
||||
"liblz4": 30,
|
||||
"libmdnssd": 30,
|
||||
"libneuralnetworks_common": 30,
|
||||
"libneuralnetworks_headers": 30,
|
||||
"libneuralnetworks": 30,
|
||||
"libprocpartition": 30,
|
||||
"libprotobuf-java-lite": 30,
|
||||
"libprotoutil": 30,
|
||||
"libqemu_pipe": 30,
|
||||
"libsync": 30,
|
||||
"libtextclassifier_hash_headers": 30,
|
||||
"libtextclassifier_hash_static": 30,
|
||||
"libtflite_kernel_utils": 30,
|
||||
"libwatchdog": 29,
|
||||
"libzstd": 30,
|
||||
"metrics-constants-protos": 28,
|
||||
"net-utils-framework-common": 29,
|
||||
"permissioncontroller-statsd": 28,
|
||||
"philox_random_headers": 30,
|
||||
"philox_random": 30,
|
||||
"service-permission": 30,
|
||||
"tensorflow_headers": 30,
|
||||
"xz-java": 29,
|
||||
"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.concurrent_concurrent-futures-nodeps": 30,
|
||||
"androidx.lifecycle_lifecycle-common-java8-nodeps": 30,
|
||||
"androidx.lifecycle_lifecycle-common-nodeps": 29,
|
||||
"androidx.room_room-common-nodeps": 30,
|
||||
"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,
|
||||
"guava-listenablefuture-prebuilt-jar": 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,
|
||||
"libadb_pairing_server": 30,
|
||||
"libadb_protos": 30,
|
||||
"libadb_tls_connection": 30,
|
||||
"libadbconnection_client": 30,
|
||||
"libadbconnection_server": 30,
|
||||
"libadbd_core": 30,
|
||||
"libadbd_services": 30,
|
||||
"libadbd": 30,
|
||||
"libapp_processes_protos_lite": 30,
|
||||
"libasyncio": 30,
|
||||
"libbrotli": 30,
|
||||
"libbuildversion": 30,
|
||||
"libcrypto_static": 30,
|
||||
"libcrypto_utils": 30,
|
||||
"libdiagnose_usb": 30,
|
||||
"libeigen": 30,
|
||||
"liblz4": 30,
|
||||
"libmdnssd": 30,
|
||||
"libneuralnetworks_common": 30,
|
||||
"libneuralnetworks_headers": 30,
|
||||
"libneuralnetworks": 30,
|
||||
"libprocpartition": 30,
|
||||
"libprotobuf-java-lite": 30,
|
||||
"libprotoutil": 30,
|
||||
"libqemu_pipe": 30,
|
||||
"libsync": 30,
|
||||
"libtextclassifier_hash_headers": 30,
|
||||
"libtextclassifier_hash_static": 30,
|
||||
"libtflite_kernel_utils": 30,
|
||||
"libwatchdog": 29,
|
||||
"libzstd": 30,
|
||||
"metrics-constants-protos": 28,
|
||||
"net-utils-framework-common": 29,
|
||||
"permissioncontroller-statsd": 28,
|
||||
"philox_random_headers": 30,
|
||||
"philox_random": 30,
|
||||
"service-permission": 30,
|
||||
"tensorflow_headers": 30,
|
||||
"xz-java": 29,
|
||||
})
|
||||
|
||||
// Function called while walking an APEX's payload dependencies.
|
||||
|
|
|
@ -1836,6 +1836,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) {
|
||||
|
@ -1873,7 +1897,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",
|
||||
}
|
||||
|
@ -1885,6 +1912,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",
|
||||
}
|
||||
`)
|
||||
}
|
||||
|
||||
|
|
24
java/java.go
24
java/java.go
|
@ -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
|
||||
|
@ -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()
|
||||
}
|
||||
|
||||
|
@ -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…
Reference in New Issue