Fix usage of annotations in TetheringLib

Annotations such as @SystemApi cannot be jarjared to a different
package, as the members would not match the system API declarations.

Instead, only build against the annotations from
framework-annotations-lib, but do not include them as classes in the
output jar; annotations are not required to be available to the
classloader at runtime.

Test: builds, boots, tethering working
Bug: 147812912
Fixes: 148609988
Change-Id: I1fae97a1c1e0ba07fa3e2d64cde7650cd26d0acd
This commit is contained in:
Remi NGUYEN VAN
2020-01-31 15:05:22 +09:00
committed by Mark Chien
parent d2ab0eeb13
commit 63dc279dfc
3 changed files with 12 additions and 6 deletions

View File

@@ -16,7 +16,8 @@
java_defaults {
name: "TetheringAndroidLibraryDefaults",
sdk_version: "system_current",
// TODO (b/146757305): change to module API once available
sdk_version: "core_platform",
srcs: [
"src/**/*.java",
":framework-tethering-shared-srcs",
@@ -34,6 +35,8 @@ java_defaults {
libs: [
"framework-tethering",
"unsupportedappusage",
"android_system_stubs_current",
"framework-res",
],
plugins: ["java_api_finder"],
manifest: "AndroidManifestBase.xml",
@@ -81,7 +84,8 @@ cc_library {
// Common defaults for compiling the actual APK.
java_defaults {
name: "TetheringAppDefaults",
sdk_version: "system_current",
// TODO (b/146757305): change to module API once available
sdk_version: "core_platform",
privileged: true,
// Build system doesn't track transitive dependeicies for jni_libs, list all the dependencies
// explicitly.
@@ -96,6 +100,8 @@ java_defaults {
],
libs: [
"framework-tethering",
"android_system_stubs_current",
"framework-res",
],
jarjar_rules: "jarjar-rules.txt",
optimize: {

View File

@@ -41,12 +41,12 @@ aidl_interface {
java_library {
name: "framework-tethering",
sdk_version: "system_current",
// TODO (b/146757305): change to module_app_current once available
sdk_version: "core_platform",
srcs: [
"src/android/net/TetheredClient.java",
"src/android/net/TetheringManager.java",
"src/android/net/TetheringConstants.java",
":framework-tethering-annotations",
],
static_libs: [
"tethering-aidl-interfaces-java",
@@ -55,6 +55,7 @@ java_library {
installable: true,
libs: [
"framework-annotations-lib",
"android_system_stubs_current",
],

View File

@@ -1,2 +1 @@
rule android.annotation.** com.android.networkstack.tethering.annotation.@1
rule com.android.internal.annotations.** com.android.networkstack.tethering.annotation.@1
# jarjar rules for the bootclasspath tethering framework library here