// // 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", ], }