Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eb22daaf authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN Committed by Mark Chien
Browse files

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
parent 99e648ea
Loading
Loading
Loading
Loading
+0 −11
Original line number Diff line number Diff line
@@ -758,17 +758,6 @@ filegroup {
    ],
}

filegroup {
    name: "framework-tethering-annotations",
    srcs: [
        "core/java/android/annotation/NonNull.java",
        "core/java/android/annotation/Nullable.java",
        "core/java/android/annotation/RequiresPermission.java",
        "core/java/android/annotation/SystemApi.java",
        "core/java/android/annotation/TestApi.java",
        "core/java/com/android/internal/annotations/GuardedBy.java",
    ],
}
// Build ext.jar
// ============================================================
java_library {
+8 −2
Original line number Diff line number Diff line
@@ -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: {
+3 −2
Original line number Diff line number Diff line
@@ -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",
    ],

+1 −2
Original line number Diff line number Diff line
rule android.annotation.** com.android.networkstack.tethering.annotation.@1
rule com.android.internal.annotations.** com.android.networkstack.tethering.annotation.@1
 No newline at end of file
# jarjar rules for the bootclasspath tethering framework library here
 No newline at end of file