| // | 
 | // 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: "TetheringInProcessFlag", | 
 |     src: "in-process", | 
 |     filename_from_src: true, | 
 |     sub_dir: "flag", | 
 | } | 
 |  | 
 | 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, | 
 | } | 
 | 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 { | 
 |     name: "com.android.tethering", | 
 |     defaults: [ | 
 |         "ConnectivityApexDefaults", | 
 |         "CronetApexDefaults", | 
 |         "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", | 
 |         "connectivity-t-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.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.netstats.provider", | 
 |             "android.net.nsd", | 
 |         ], | 
 |     }, | 
 | } | 
 |  | 
 | systemserverclasspath_fragment { | 
 |     name: "com.android.tethering-systemserverclasspath-fragment", | 
 |     standalone_contents: ["service-connectivity"], | 
 |     apex_available: ["com.android.tethering"], | 
 | } | 
 |  | 
 | override_apex { | 
 |     name: "com.android.tethering.inprocess", | 
 |     base: "com.android.tethering", | 
 |     package_name: "com.android.tethering.inprocess", | 
 |     enabled: enable_tethering_next_apex, | 
 |     bpfs: [ | 
 |         "block.o", | 
 |         "clatd.o", | 
 |         "dscpPolicy.o", | 
 |         "netd.o", | 
 |         "offload@inprocess.o", | 
 |         "test@inprocess.o", | 
 |     ], | 
 |     apps: [ | 
 |         "ServiceConnectivityResources", | 
 |         "InProcessTethering", | 
 |     ], | 
 |     prebuilts: [ | 
 |         "current_sdkinfo", | 
 |         "privapp_allowlist_com.android.tethering", | 
 |         "TetheringInProcessFlag", | 
 |     ], | 
 | } |