Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Android.bp 5.51 KiB
//
// Copyright (C) 2020 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.
//

package {
    // See: http://go/android-license-faq
    default_applicable_licenses: ["Android-Apache-2.0"],
}

// The library name match the service-connectivity jarjar rules that put the JNI utils in the
// android.net.connectivity.com.android.net.module.util package.
cc_library_shared {
    name: "libandroid_net_connectivity_com_android_net_module_util_jni",
    min_sdk_version: "30",
    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-unused-parameter",
        "-Wthread-safety",
    ],
    srcs: [
        "jni/com_android_net_module_util/onload.cpp",
    ],
    static_libs: [
        "libnet_utils_device_common_bpfjni",
    ],
    shared_libs: [
        "liblog",
        "libnativehelper",
    ],
    apex_available: [
        "com.android.tethering",
    ],
}

cc_library_shared {
    name: "libservice-connectivity",
    min_sdk_version: "30",
    cflags: [
        "-Wall",
        "-Werror",
        "-Wno-unused-parameter",
        "-Wthread-safety",
    ],
    srcs: [
        ":services.connectivity-netstats-jni-sources",
        "jni/com_android_server_BpfNetMaps.cpp",
        "jni/com_android_server_connectivity_ClatCoordinator.cpp",
        "jni/com_android_server_TestNetworkService.cpp",
        "jni/onload.cpp",
    ],
    header_libs: [
        "bpf_connectivity_headers",
    ],
    static_libs: [
        "libclat",
        "libip_checksum",
        "libmodules-utils-build",
        "libnetjniutils",
        "libnet_utils_device_common_bpfjni",
        "libtraffic_controller",
        "netd_aidl_interface-lateststable-ndk",
    ],
    shared_libs: [
        "libbase",
        "libcutils",
        "libnetdutils",
        "liblog",
        "libnativehelper",
        "libnetworkstats",
    ],
    apex_available: [
        "com.android.tethering",
    ],
}

java_library {
    name: "service-connectivity-pre-jarjar",
    sdk_version: "system_server_current",
    min_sdk_version: "30",
    srcs: [
        "src/**/*.java",
        ":framework-connectivity-shared-srcs",
        ":services-connectivity-shared-srcs",
        // TODO: move to net-utils-device-common
        ":connectivity-module-utils-srcs",
    ],
    libs: [
        "framework-annotations-lib",
        "framework-connectivity-pre-jarjar",
        "framework-connectivity-t.stubs.module_lib",
        "framework-tethering.stubs.module_lib",
        "framework-wifi.stubs.module_lib",
        "unsupportedappusage",
        "ServiceConnectivityResources",
    ],
    static_libs: [
        // Do not add libs here if they are already included
        // in framework-connectivity
        "dnsresolver_aidl_interface-V9-java",
        "modules-utils-shell-command-handler",
        "net-utils-device-common",
        "net-utils-device-common-bpf",
        "net-utils-device-common-netlink",
        "netd-client",
        "networkstack-client",
        "PlatformProperties",
        "service-connectivity-protos",
        "NetworkStackApiCurrentShims",
    ],
    apex_available: [
        "com.android.tethering",
    ],
    lint: { strict_updatability_linting: true },
    visibility: [
        "//packages/modules/Connectivity/service-t",
        "//packages/modules/Connectivity/tests:__subpackages__",
    ],
}

java_library {
    name: "service-connectivity-protos",
    sdk_version: "system_current",
    min_sdk_version: "30",
    proto: {
        type: "nano",
    },
    srcs: [
        ":system-messages-proto-src",
    ],
    libs: ["libprotobuf-java-nano"],
    apex_available: [
        "com.android.tethering",
    ],
    lint: { strict_updatability_linting: true },
}

java_library {
    name: "service-connectivity",
    sdk_version: "system_server_current",
    min_sdk_version: "30",
    installable: true,
    // This library combines system server jars that have access to different bootclasspath jars.
    // Lower SDK service jars must not depend on higher SDK jars as that would let them
    // transitively depend on the wrong bootclasspath jars. Sources also cannot be added here as
    // they would transitively depend on bootclasspath jars that may not be available.
    static_libs: [
        "service-connectivity-pre-jarjar",
        "service-connectivity-tiramisu-pre-jarjar",
        "service-nearby-pre-jarjar",
    ],
    jarjar_rules: ":connectivity-jarjar-rules",
    apex_available: [
        "com.android.tethering",
    ],
    optimize: {
        enabled: true,
        shrink: true,
        proguard_flags_files: ["proguard.flags"],
    },
    lint: { strict_updatability_linting: true },
}

filegroup {
    name: "connectivity-jarjar-rules",
    srcs: ["jarjar-rules.txt"],
    visibility: ["//packages/modules/Connectivity:__subpackages__"],
}

// TODO: This filegroup temporary exposes for NetworkStats. It should be
// removed right after NetworkStats moves into mainline module.
filegroup {
    name: "traffic-controller-utils",
    srcs: ["src/com/android/server/BpfNetMaps.java"],
    visibility: ["//packages/modules/Connectivity:__subpackages__"],
}