Skip to content
Snippets Groups Projects
  • markchien's avatar
    6aa38890
    [Tether06] Migrate tether offload controller into module · 6aa38890
    markchien authored
    The tether offload JNI library in this patch still have many dependencies
    with internal libraries. Will have follow up changes to cut the
    dependencies to let it be a unbundled library.
    
    Bug: 136040414
    Test: -build, flash, boot
          -atest TetheringTests
          -atest FrameworksNetTests
    
    Change-Id: Iacf8e0b94135e35672de3ee77c474ee39a00c591
    6aa38890
    History
    [Tether06] Migrate tether offload controller into module
    markchien authored
    The tether offload JNI library in this patch still have many dependencies
    with internal libraries. Will have follow up changes to cut the
    dependencies to let it be a unbundled library.
    
    Bug: 136040414
    Test: -build, flash, boot
          -atest TetheringTests
          -atest FrameworksNetTests
    
    Change-Id: Iacf8e0b94135e35672de3ee77c474ee39a00c591
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Android.bp 3.88 KiB
//
// Copyright (C) 2019 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

java_defaults {
    name: "TetheringAndroidLibraryDefaults",
    platform_apis: true,
    srcs: [
        "src/**/*.java",
        ":framework-tethering-shared-srcs",
        ":services-tethering-shared-srcs",
        ":servicescore-tethering-src",
    ],
    static_libs: [
        "androidx.annotation_annotation",
        "netd_aidl_interface-java",
        "networkstack-aidl-interfaces-java",
        "android.hardware.tetheroffload.control-V1.0-java",
        "tethering-client",
    ],
    manifest: "AndroidManifestBase.xml",
}

// Build tethering static library, used to compile both variants of the tethering.
android_library {
    name: "TetheringApiCurrentLib",
    defaults: ["TetheringAndroidLibraryDefaults"],
}

cc_library_shared {
    name: "libtetheroffloadjni",
    srcs: [
        "jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp",
    ],
    shared_libs: [
        "libnativehelper",
        "libcutils",
        "android.hardware.tetheroffload.config@1.0",
    ],
    static_libs: [
        "liblog",
        "libbase",
        "libhidlbase",
        "libutils",
    ],

    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-unused-parameter",
        "-Wthread-safety",
    ],
}

// Common defaults for compiling the actual APK.
java_defaults {
    name: "TetheringAppDefaults",
    platform_apis: true,
    privileged: true,
    jni_libs: [
        "libtetheroffloadjni",
    ],
    resource_dirs: [
        "res",
    ],
    optimize: {
        proguard_flags_files: ["proguard.flags"],
    },
}

// Non-updatable tethering running in the system server process for devices not using the module
// TODO: build in-process tethering APK here.

// Updatable tethering packaged as an application
android_app {
    name: "Tethering",
    defaults: ["TetheringAppDefaults"],
    static_libs: ["TetheringApiCurrentLib"],
    certificate: "networkstack",
    manifest: "AndroidManifest.xml",
    use_embedded_native_libs: true,
    // The permission configuration *must* be included to ensure security of the device
    required: ["NetworkPermissionConfig"],
}

// This group will be removed when tethering migration is done.
filegroup {
    name: "tethering-servicescore-srcs",
    srcs: [
        "src/com/android/server/connectivity/tethering/EntitlementManager.java",
        "src/com/android/server/connectivity/tethering/OffloadController.java",
        "src/com/android/server/connectivity/tethering/OffloadHardwareInterface.java",
        "src/com/android/server/connectivity/tethering/TetheringConfiguration.java",
        "src/com/android/server/connectivity/tethering/UpstreamNetworkMonitor.java",
    ],
}

// This group will be removed when tethering migration is done.
filegroup {
    name: "tethering-servicesnet-srcs",
    srcs: [
        "src/android/net/dhcp/DhcpServerCallbacks.java",
        "src/android/net/dhcp/DhcpServingParamsParcelExt.java",
        "src/android/net/ip/IpServer.java",
        "src/android/net/ip/RouterAdvertisementDaemon.java",
        "src/android/net/util/InterfaceSet.java",
        "src/android/net/util/PrefixUtils.java",
    ],
}

// This group would be removed when tethering migration is done.
filegroup {
    name: "tethering-jni-srcs",
    srcs: [
        "jni/com_android_server_connectivity_tethering_OffloadHardwareInterface.cpp",
    ],
}