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

Commit 2d14a4b3 authored by Remi NGUYEN VAN's avatar Remi NGUYEN VAN Committed by markchien
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
Merged-In: I1fae97a1c1e0ba07fa3e2d64cde7650cd26d0acd
parent 8cf2a558
Loading
Loading
Loading
Loading
+2 −11
Original line number Diff line number Diff line
@@ -613,7 +613,9 @@ filegroup {
        "core/java/android/annotation/Nullable.java",
        "core/java/android/annotation/IntDef.java",
        "core/java/android/annotation/IntRange.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",
        "core/java/com/android/internal/annotations/VisibleForTesting.java",
    ],
@@ -676,17 +678,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",
@@ -35,6 +36,8 @@ java_defaults {
    libs: [
        "framework-tethering",
        "unsupportedappusage",
        "android_system_stubs_current",
        "framework-res",
    ],
    plugins: ["java_api_finder"],
    manifest: "AndroidManifestBase.xml",
@@ -82,7 +85,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