// // 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"], } aidl_interface { name: "connectivity_native_aidl_interface", local_include_dir: "binder", vendor_available: true, srcs: [ "binder/android/net/connectivity/aidl/*.aidl", ], backend: { java: { apex_available: [ "com.android.tethering", ], min_sdk_version: "30", }, ndk: { apex_available: [ "com.android.tethering", ], min_sdk_version: "30", }, }, versions: ["1"], } cc_library_static { name: "connectivity_native_aidl_interface-lateststable-ndk", min_sdk_version: "30", whole_static_libs: [ "connectivity_native_aidl_interface-V1-ndk", ], apex_available: [ "com.android.tethering", ], } java_library { name: "connectivity_native_aidl_interface-lateststable-java", sdk_version: "system_current", min_sdk_version: "30", static_libs: [ "connectivity_native_aidl_interface-V1-java", ], apex_available: [ "com.android.tethering", ], } // 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", "libnet_utils_device_common_bpfutils", ], 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 "connectivity_native_aidl_interface-lateststable-java", "dnsresolver_aidl_interface-V9-java", "modules-utils-shell-command-handler", "net-utils-device-common", "net-utils-device-common-bpf", "net-utils-device-common-netlink", "net-utils-services-common", "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__"], }