Skip to content
Snippets Groups Projects
  • Remi NGUYEN VAN's avatar
    88998f4f
    Move shared packages to NetworkStack project · 88998f4f
    Remi NGUYEN VAN authored
    Both were already statically linked both in the NetworkStack module and
    the framework, so this change only reorganizes the file locations.
    
    It makes more sense to have the library files in the NetworkStack module
    folder, as changes to these files will be released with the same cadence
    as the module, not the framework.
    
    Bug: 139106271
    Test: built, flashed, WiFi working
    Change-Id: Ifaa882b53d1084ef32db6b27d35b56eb226c468f
    88998f4f
    History
    Move shared packages to NetworkStack project
    Remi NGUYEN VAN authored
    Both were already statically linked both in the NetworkStack module and
    the framework, so this change only reorganizes the file locations.
    
    It makes more sense to have the library files in the NetworkStack module
    folder, as changes to these files will be released with the same cadence
    as the module, not the framework.
    
    Bug: 139106271
    Test: built, flashed, WiFi working
    Change-Id: Ifaa882b53d1084ef32db6b27d35b56eb226c468f
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Android.bp 3.94 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",
        ":net-module-utils-srcs",
        ":services-tethering-shared-srcs",
        ":servicescore-tethering-src",
    ],
    static_libs: [
        "androidx.annotation_annotation",
        "netd_aidl_interface-java",
        "netlink-client",
        "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",
    ],
}