// // 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. // package { default_applicable_licenses: ["Android-Apache-2.0"], } prebuilt_etc { name: "TetheringOutOfProcessFlag", src: "out-of-process", filename_from_src: true, sub_dir: "flag", } // Defaults to enable/disable java targets which uses development APIs. "enabled" may have a // different value depending on the branch. java_defaults { name: "ConnectivityNextEnableDefaults", enabled: true, } java_defaults { name: "NetworkStackApiShimSettingsForCurrentBranch", // API shims to include in the networking modules built from the branch. Branches that disable // the "next" targets must use stable shims (latest stable API level) instead of current shims // (X_current API level). static_libs: ["NetworkStackApiCurrentShims"], } apex_defaults { name: "ConnectivityApexDefaults", // Tethering app to include in the AOSP apex. Branches that disable the "next" targets may use // a stable tethering app instead, but will generally override the AOSP apex to use updatable // package names and keys, so that apex will be unused anyway. apps: ["TetheringNext"], // Replace to "Tethering" if ConnectivityNextEnableDefaults is false. } enable_tethering_next_apex = true // This is a placeholder comment to avoid merge conflicts // as the above target may have different "enabled" values // depending on the branch apex_defaults { name: "CronetInTetheringApexDefaults", jni_libs: [ "cronet_aml_components_cronet_android_cronet", "//external/cronet/third_party/boringssl:libcrypto", "//external/cronet/third_party/boringssl:libssl", ], arch: { riscv64: { // TODO: remove this when there is a riscv64 libcronet exclude_jni_libs: [ "cronet_aml_components_cronet_android_cronet", "//external/cronet/third_party/boringssl:libcrypto", "//external/cronet/third_party/boringssl:libssl", ], }, }, } apex { name: "com.android.tethering", defaults: [ "ConnectivityApexDefaults", "CronetInTetheringApexDefaults", "r-launched-apex-module", ], compile_multilib: "both", bootclasspath_fragments: [ "com.android.tethering-bootclasspath-fragment", ], systemserverclasspath_fragments: [ "com.android.tethering-systemserverclasspath-fragment", ], multilib: { first: { jni_libs: [ "libservice-connectivity", "libandroid_net_connectivity_com_android_net_module_util_jni", ], native_shared_libs: [ "libcom.android.tethering.connectivity_native", "libnetd_updatable", ], }, both: { jni_libs: [ "libframework-connectivity-jni", "libframework-connectivity-tiramisu-jni" ], }, }, binaries: [ "clatd", ], canned_fs_config: "canned_fs_config", bpfs: [ "block.o", "clatd.o", "dscpPolicy.o", "netd.o", "offload.o", "offload@btf.o", "test.o", "test@btf.o", ], apps: [ "ServiceConnectivityResources", "HalfSheetUX", ], prebuilts: [ "current_sdkinfo", "privapp_allowlist_com.android.tethering", "TetheringOutOfProcessFlag", ], manifest: "manifest.json", key: "com.android.tethering.key", // Indicates that pre-installed version of this apex can be compressed. // Whether it actually will be compressed is controlled on per-device basis. compressible: true, androidManifest: "AndroidManifest.xml", compat_configs: [ "connectivity-platform-compat-config", ], } apex_key { name: "com.android.tethering.key", public_key: "com.android.tethering.avbpubkey", private_key: "com.android.tethering.pem", } android_app_certificate { name: "com.android.tethering.certificate", certificate: "com.android.tethering", } filegroup { name: "connectivity-hiddenapi-files", srcs: [ ":connectivity-t-hiddenapi-files", "hiddenapi/*.txt", ], visibility: ["//packages/modules/Connectivity:__subpackages__"], } // Encapsulate the contributions made by the com.android.tethering to the bootclasspath. bootclasspath_fragment { name: "com.android.tethering-bootclasspath-fragment", contents: [ "framework-connectivity", "framework-connectivity-t", "framework-tethering", ], apex_available: ["com.android.tethering"], // The bootclasspath_fragments that provide APIs on which this depends. fragments: [ { apex: "com.android.art", module: "art-bootclasspath-fragment", }, ], // Additional stubs libraries that this fragment's contents use which are // not provided by another bootclasspath_fragment. additional_stubs: [ "android-non-updatable", ], // Additional hidden API flag files to override the defaults. This must only be // modified by the Soong or platform compat team. hidden_api: { max_target_o_low_priority: [ "hiddenapi/hiddenapi-max-target-o-low-priority.txt", ], unsupported: [ "hiddenapi/hiddenapi-unsupported.txt", ], // The following packages contain classes from other modules on the // bootclasspath. That means that the hidden API flags for this module // has to explicitly list every single class this module provides in // that package to differentiate them from the classes provided by other // modules. That can include private classes that are not part of the // API. split_packages: [ "android.app.usage", "android.nearby", "android.net", "android.net.http", "android.net.netstats", "android.net.util", ], // The following packages and all their subpackages currently only // contain classes from this bootclasspath_fragment. Listing a package // here won't prevent other bootclasspath modules from adding classes in // any of those packages but it will prevent them from adding those // classes into an API surface, e.g. public, system, etc.. Doing so will // result in a build failure due to inconsistent flags. package_prefixes: [ "android.nearby.aidl", "android.net.apf", "android.net.connectivity", "android.net.http.apihelpers", "android.net.netstats.provider", "android.net.nsd", "android.net.wear", ], }, } systemserverclasspath_fragment { name: "com.android.tethering-systemserverclasspath-fragment", standalone_contents: ["service-connectivity"], apex_available: ["com.android.tethering"], }