From 2ba9dbe163a7355b33483c7a68a359f1d54011cf Mon Sep 17 00:00:00 2001 From: Remi NGUYEN VAN Date: Tue, 1 Feb 2022 23:07:33 +0900 Subject: [PATCH 1/2] Split out connectivity-t-pre-jarjar and tests The pre-jarjar variant is necessary so that service-t can depend on hidden symbols in framework-t that reference (for example as parameter) classes that are jarjared. Without this, when depending on framework-connectivity-tiramisu.impl, service-connectivity-t would see post-jarjar symbols that do not match the classnames it uses in its code. Also split FrameworksNetTestsLib so that the same jarjar rules can be applied between the tests and the module, avoiding different errors between FrameworksNetTests and ConnectivityCoverageTests. Ignore-AOSP-First: Avoiding conflicts; cherry-pick will follow Bug: 204830222 Test: m Change-Id: I3d0c081c4a7422e128beee11c0156f01b0377c96 Merged-In: I3d0c081c4a7422e128beee11c0156f01b0377c96 --- framework-t/Android.bp | 38 +++++++++++++++++++++++++++++--------- service-t/Android.bp | 3 ++- tests/common/Android.bp | 1 + tests/unit/Android.bp | 30 +++++++++++++++--------------- 4 files changed, 47 insertions(+), 25 deletions(-) diff --git a/framework-t/Android.bp b/framework-t/Android.bp index b5aedeb0da..6e83ad1d2c 100644 --- a/framework-t/Android.bp +++ b/framework-t/Android.bp @@ -29,8 +29,8 @@ java_defaults { // SDK library for connectivity bootclasspath classes that were part of the non-updatable API before // T, and were moved to the module in T. Other bootclasspath classes in connectivity should go to // framework-connectivity. -java_sdk_library { - name: "framework-connectivity-tiramisu", +java_defaults { + name: "framework-connectivity-tiramisu-defaults", sdk_version: "module_current", min_sdk_version: "Tiramisu", defaults: [ @@ -41,10 +41,6 @@ java_sdk_library { ":framework-connectivity-tiramisu-updatable-sources", ":framework-nearby-java-sources", ], - // Do not add static_libs to this library: put them in framework-connectivity instead. - // The jarjar rules are only so that references to jarjared utils in - // framework-connectivity-pre-jarjar match at runtime. - jarjar_rules: ":connectivity-jarjar-rules", stub_only_libs: [ // Use prebuilt framework-connectivity stubs to avoid circular dependencies "sdk_module-lib_current_framework-connectivity", @@ -67,6 +63,33 @@ java_sdk_library { // non-jarjard names of widely-used packages such as com.android.net.module.util. "framework-connectivity-pre-jarjar", ], + apex_available: [ + "com.android.tethering", + ], +} + +java_library { + name: "framework-connectivity-tiramisu-pre-jarjar", + defaults: ["framework-connectivity-tiramisu-defaults"], + libs: [ + "framework-bluetooth", + "framework-connectivity-pre-jarjar", + ], + visibility: ["//packages/modules/Connectivity:__subpackages__"], +} + +// SDK library for connectivity bootclasspath classes that were part of the non-updatable API before +// T, and were moved to the module in T. Other bootclasspath classes in connectivity should go to +// framework-connectivity. +java_sdk_library { + name: "framework-connectivity-tiramisu", + defaults: [ + "framework-connectivity-tiramisu-defaults", + ], + // Do not add static_libs to this library: put them in framework-connectivity instead. + // The jarjar rules are only so that references to jarjared utils in + // framework-connectivity-pre-jarjar match at runtime. + jarjar_rules: ":connectivity-jarjar-rules", permitted_packages: [ "android.net", "android.net.nsd", @@ -74,9 +97,6 @@ java_sdk_library { "com.android.connectivity", "com.android.nearby", ], - apex_available: [ - "com.android.tethering", - ], impl_library_visibility: [ "//packages/modules/Connectivity/Tethering/apex", // In preparation for future move diff --git a/service-t/Android.bp b/service-t/Android.bp index f33be63452..cacff563c1 100644 --- a/service-t/Android.bp +++ b/service-t/Android.bp @@ -37,7 +37,8 @@ java_library { libs: [ "framework-annotations-lib", "framework-connectivity-pre-jarjar", - "framework-connectivity-tiramisu.impl", + "framework-connectivity-tiramisu-pre-jarjar", + "framework-tethering.stubs.module_lib", "service-connectivity-pre-jarjar", "unsupportedappusage", ], diff --git a/tests/common/Android.bp b/tests/common/Android.bp index acf04bfac6..87826849da 100644 --- a/tests/common/Android.bp +++ b/tests/common/Android.bp @@ -88,6 +88,7 @@ android_test { "libstaticjvmtiagent", // For NetworkStackUtils included in NetworkStackBase "libnetworkstackutilsjni", + "libandroid_net_connectivity_com_android_net_module_util_jni", "libcom_android_networkstack_tethering_util_jni", // For framework tests "libservice-connectivity", diff --git a/tests/unit/Android.bp b/tests/unit/Android.bp index 25b391a40b..7ae5333d3d 100644 --- a/tests/unit/Android.bp +++ b/tests/unit/Android.bp @@ -107,8 +107,8 @@ java_library { visibility: ["//visibility:private"], } -android_library { - name: "FrameworksNetTestsLib", +java_defaults { + name: "FrameworksNetTestsDefaults", min_sdk_version: "30", defaults: [ "framework-connectivity-test-defaults", @@ -117,8 +117,6 @@ android_library { "java/**/*.java", "java/**/*.kt", ], - exclude_srcs: [":non-connectivity-module-test"], - jarjar_rules: "jarjar-rules.txt", static_libs: [ "androidx.test.rules", "androidx.test.uiautomator", @@ -144,31 +142,33 @@ android_library { "android.test.mock", "ServiceConnectivityResources", ], - visibility: ["//packages/modules/Connectivity/tests:__subpackages__"], exclude_kotlinc_generated_files: false, } +android_library { + name: "FrameworksNetTestsLib", + defaults: [ + "FrameworksNetTestsDefaults", + ], + exclude_srcs: [":non-connectivity-module-test"], + visibility: ["//packages/modules/Connectivity/tests:__subpackages__"], +} + android_test { name: "FrameworksNetTests", enabled: enable_frameworks_net_tests, - min_sdk_version: "30", defaults: [ - "framework-connectivity-test-defaults", + "FrameworksNetTestsDefaults", "FrameworksNetTests-jni-defaults", ], - // this is in addition to FrameworksNetTestsLib. - srcs: [":non-connectivity-module-test"], + jarjar_rules: ":connectivity-jarjar-rules", test_suites: ["device-tests"], static_libs: [ "services.core", "services.net", - "FrameworksNetTestsLib", - ], - libs: [ - "android.test.mock", - "android.test.base", ], jni_libs: [ "libservice-connectivity", - ] + "libandroid_net_connectivity_com_android_net_module_util_jni", + ], } From 91e3dc2fe6735a2b1eb1a1620baa40cac0a5582e Mon Sep 17 00:00:00 2001 From: junyulai Date: Wed, 9 Feb 2022 18:21:56 +0800 Subject: [PATCH 2/2] Enable framework-connectivity-t-pre-jarjar for service-t framework-connectivity-t-pre-jarjar build target is needed by service-t, thus, enabled this target on sc-mainline-prod but still keep framework-connectivity-t disabled. Bug: 204830222 Test: m Change-Id: I03cbdb57966b746f3c93e989394a4dc999fe863a --- framework-t/Android.bp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/framework-t/Android.bp b/framework-t/Android.bp index 6e83ad1d2c..09c7fdb2d7 100644 --- a/framework-t/Android.bp +++ b/framework-t/Android.bp @@ -35,7 +35,6 @@ java_defaults { min_sdk_version: "Tiramisu", defaults: [ "framework-module-defaults", - "enable-framework-connectivity-t-targets", ], srcs: [ ":framework-connectivity-tiramisu-updatable-sources", @@ -85,6 +84,7 @@ java_sdk_library { name: "framework-connectivity-tiramisu", defaults: [ "framework-connectivity-tiramisu-defaults", + "enable-framework-connectivity-t-targets", ], // Do not add static_libs to this library: put them in framework-connectivity instead. // The jarjar rules are only so that references to jarjared utils in