blob: 531489ddb6b66ae45004b60c45a73d81dfc52b25 [file] [log] [blame]
markchien0abdd112019-11-28 10:17:03 +08001//
2// Copyright (C) 2019 The Android Open Source Project
3//
4// Licensed under the Apache License, Version 2.0 (the "License");
5// you may not use this file except in compliance with the License.
6// You may obtain a copy of the License at
7//
8// http://www.apache.org/licenses/LICENSE-2.0
9//
10// Unless required by applicable law or agreed to in writing, software
11// distributed under the License is distributed on an "AS IS" BASIS,
12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13// See the License for the specific language governing permissions and
14// limitations under the License.
15//
16
Bob Badour97e6be22021-02-12 14:45:04 -080017package {
Aditya Choudhary01b5ede2024-01-31 11:08:57 +000018 default_team: "trendy_team_fwk_core_networking",
Bob Badour97e6be22021-02-12 14:45:04 -080019 default_applicable_licenses: ["Android-Apache-2.0"],
20}
21
markchien598a75b2021-11-22 10:36:32 +080022// Defaults to enable/disable java targets which uses development APIs. "enabled" may have a
23// different value depending on the branch.
24java_defaults {
25 name: "ConnectivityNextEnableDefaults",
26 enabled: true,
27}
Aditya Choudhary01b5ede2024-01-31 11:08:57 +000028
Remi NGUYEN VAN02eee9a2023-01-30 19:19:48 +090029java_defaults {
30 name: "NetworkStackApiShimSettingsForCurrentBranch",
31 // API shims to include in the networking modules built from the branch. Branches that disable
32 // the "next" targets must use stable shims (latest stable API level) instead of current shims
33 // (X_current API level).
34 static_libs: ["NetworkStackApiCurrentShims"],
35}
Aditya Choudhary01b5ede2024-01-31 11:08:57 +000036
markchien598a75b2021-11-22 10:36:32 +080037apex_defaults {
38 name: "ConnectivityApexDefaults",
39 // Tethering app to include in the AOSP apex. Branches that disable the "next" targets may use
40 // a stable tethering app instead, but will generally override the AOSP apex to use updatable
41 // package names and keys, so that apex will be unused anyway.
42 apps: ["TetheringNext"], // Replace to "Tethering" if ConnectivityNextEnableDefaults is false.
43}
Aditya Choudhary01b5ede2024-01-31 11:08:57 +000044
Remi NGUYEN VANf24553d2022-01-27 13:16:12 +090045enable_tethering_next_apex = true
markchien598a75b2021-11-22 10:36:32 +080046// This is a placeholder comment to avoid merge conflicts
47// as the above target may have different "enabled" values
48// depending on the branch
49
markchien0abdd112019-11-28 10:17:03 +080050apex {
markchien8f831c02019-12-18 17:47:26 +080051 name: "com.android.tethering",
Gurpreet Singha12858d2022-03-04 15:34:29 +000052 defaults: [
53 "ConnectivityApexDefaults",
Dan Stahre2be25f2023-01-16 18:02:30 +000054 "CronetInTetheringApexDefaults",
Gurpreet Singha12858d2022-03-04 15:34:29 +000055 "r-launched-apex-module",
56 ],
Remi NGUYEN VAN6d575ca2021-01-13 15:44:38 +090057 compile_multilib: "both",
satayev8bb425a2021-05-12 13:28:58 +010058 bootclasspath_fragments: [
59 "com.android.tethering-bootclasspath-fragment",
60 ],
Jiakai Zhang9ecc66d2021-12-20 16:54:13 +000061 systemserverclasspath_fragments: [
62 "com.android.tethering-systemserverclasspath-fragment",
Remi NGUYEN VAN2812f602021-01-08 01:19:44 +000063 ],
Remi NGUYEN VAN6d575ca2021-01-13 15:44:38 +090064 multilib: {
65 first: {
markchien8fb75e32021-11-11 17:53:56 +080066 jni_libs: [
67 "libservice-connectivity",
Kangping Dongb1c75db2023-08-30 19:15:04 +080068 "libservice-thread-jni",
Remi NGUYEN VAN6a20eed2022-01-31 11:21:08 +090069 "libandroid_net_connectivity_com_android_net_module_util_jni",
markchien8fb75e32021-11-11 17:53:56 +080070 ],
Remi NGUYEN VANfb70eba2022-04-04 20:26:16 +090071 native_shared_libs: [
Ken Chenec0f7ac2023-09-08 14:14:55 +080072 "libcom.android.tethering.dns_helper",
Remi NGUYEN VANfb70eba2022-04-04 20:26:16 +090073 "libcom.android.tethering.connectivity_native",
74 "libnetd_updatable",
75 ],
Remi NGUYEN VAN6d575ca2021-01-13 15:44:38 +090076 },
77 both: {
Remi NGUYEN VANc8aa43c2022-02-02 13:03:29 +090078 jni_libs: [
79 "libframework-connectivity-jni",
Aditya Choudhary01b5ede2024-01-31 11:08:57 +000080 "libframework-connectivity-tiramisu-jni",
Remi NGUYEN VANc8aa43c2022-02-02 13:03:29 +090081 ],
Paul Duffinb28cb442021-05-26 10:46:20 +010082 },
Remi NGUYEN VAN6d575ca2021-01-13 15:44:38 +090083 },
Hungming Chen378e3232021-12-16 21:56:02 +080084 binaries: [
85 "clatd",
Maciej Żenczykowskif36ccc72023-10-15 21:18:48 -070086 "ethtool",
Maciej Żenczykowskia2a3d752023-10-10 15:24:13 -070087 "netbpfload",
Kangping Dongf2060612023-08-28 21:54:35 +080088 "ot-daemon",
Hungming Chen378e3232021-12-16 21:56:02 +080089 ],
Hungming Chenf9d40ae2022-01-14 17:42:43 +080090 canned_fs_config: "canned_fs_config",
Maciej Żenczykowskie9810ff2021-01-14 20:02:08 -080091 bpfs: [
Maciej Żenczykowskid72a5a72022-05-02 00:43:51 -070092 "clatd.o",
Ken Chen74ff3ee2022-07-14 16:46:39 +080093 "dscpPolicy.o",
Maciej Żenczykowskid72a5a72022-05-02 00:43:51 -070094 "netd.o",
Maciej Żenczykowskie9810ff2021-01-14 20:02:08 -080095 "offload.o",
96 "test.o",
97 ],
Remi NGUYEN VANaffd94b2021-03-08 23:09:31 +090098 apps: [
99 "ServiceConnectivityResources",
Remi NGUYEN VANaffd94b2021-03-08 23:09:31 +0900100 ],
Kangping Dongf2060612023-08-28 21:54:35 +0800101 prebuilts: [
Kangping Dongf2060612023-08-28 21:54:35 +0800102 "current_sdkinfo",
Maciej Żenczykowski0b477492025-03-04 22:12:42 -0800103 "netbpfload.31rc",
Maciej Żenczykowski03bf18c2025-03-04 21:52:01 -0800104 "netbpfload.33rc",
Maciej Żenczykowski3218a812024-04-15 00:39:59 -0700105 "netbpfload.35rc",
Maciej Żenczykowskibd1fd222024-08-29 19:42:38 -0700106 "ot-daemon.34rc",
Kangping Dongf2060612023-08-28 21:54:35 +0800107 ],
markchien0abdd112019-11-28 10:17:03 +0800108 manifest: "manifest.json",
markchien8f831c02019-12-18 17:47:26 +0800109 key: "com.android.tethering.key",
Nikita Ioffe5f333572021-02-04 01:42:45 +0000110 // Indicates that pre-installed version of this apex can be compressed.
111 // Whether it actually will be compressed is controlled on per-device basis.
112 compressible: true,
markchien0abdd112019-11-28 10:17:03 +0800113
114 androidManifest: "AndroidManifest.xml",
Taras Antoshchuk30d41e52021-08-02 18:06:35 +0200115
Remi NGUYEN VAN348bbb02022-07-19 16:33:04 +0900116 compat_configs: [
117 "connectivity-platform-compat-config",
Remi NGUYEN VAN348bbb02022-07-19 16:33:04 +0900118 ],
markchien0abdd112019-11-28 10:17:03 +0800119}
120
121apex_key {
markchien8f831c02019-12-18 17:47:26 +0800122 name: "com.android.tethering.key",
123 public_key: "com.android.tethering.avbpubkey",
124 private_key: "com.android.tethering.pem",
markchien0abdd112019-11-28 10:17:03 +0800125}
126
127android_app_certificate {
markchien8f831c02019-12-18 17:47:26 +0800128 name: "com.android.tethering.certificate",
129 certificate: "com.android.tethering",
markchien0abdd112019-11-28 10:17:03 +0800130}
markchiendbaff662020-05-05 17:42:44 +0800131
Remi NGUYEN VANe55a88d2022-04-20 15:59:16 +0900132filegroup {
133 name: "connectivity-hiddenapi-files",
Paul Duffinc8164e42022-07-28 10:52:09 +0000134 srcs: [
135 ":connectivity-t-hiddenapi-files",
136 "hiddenapi/*.txt",
137 ],
Remi NGUYEN VANe55a88d2022-04-20 15:59:16 +0900138 visibility: ["//packages/modules/Connectivity:__subpackages__"],
139}
140
satayev8bb425a2021-05-12 13:28:58 +0100141// Encapsulate the contributions made by the com.android.tethering to the bootclasspath.
142bootclasspath_fragment {
143 name: "com.android.tethering-bootclasspath-fragment",
144 contents: [
145 "framework-connectivity",
paulhu699477a2022-02-08 21:25:28 +0800146 "framework-connectivity-t",
satayev8bb425a2021-05-12 13:28:58 +0100147 "framework-tethering",
Yan Yanb4ccc6a2024-11-02 01:37:17 +0000148 ] + select(release_flag("RELEASE_MOVE_VCN_TO_MAINLINE"), {
149 true: ["framework-connectivity-b"],
150 default: [],
151 }),
satayev8bb425a2021-05-12 13:28:58 +0100152 apex_available: ["com.android.tethering"],
Paul Duffinb28cb442021-05-26 10:46:20 +0100153
154 // The bootclasspath_fragments that provide APIs on which this depends.
155 fragments: [
156 {
157 apex: "com.android.art",
158 module: "art-bootclasspath-fragment",
159 },
160 ],
161
162 // Additional stubs libraries that this fragment's contents use which are
163 // not provided by another bootclasspath_fragment.
164 additional_stubs: [
165 "android-non-updatable",
166 ],
167
168 // Additional hidden API flag files to override the defaults. This must only be
169 // modified by the Soong or platform compat team.
170 hidden_api: {
Remi NGUYEN VAN955c33c2021-12-16 15:10:40 +0000171 max_target_o_low_priority: [
172 "hiddenapi/hiddenapi-max-target-o-low-priority.txt",
Paul Duffin8be17642022-03-10 17:44:54 +0000173 ],
Junyu Lai2ef865e2022-01-17 11:52:57 +0000174 unsupported: [
175 "hiddenapi/hiddenapi-unsupported.txt",
Junyu Lai2ef865e2022-01-17 11:52:57 +0000176 ],
Paul Duffin8be17642022-03-10 17:44:54 +0000177
178 // The following packages contain classes from other modules on the
179 // bootclasspath. That means that the hidden API flags for this module
180 // has to explicitly list every single class this module provides in
181 // that package to differentiate them from the classes provided by other
182 // modules. That can include private classes that are not part of the
183 // API.
184 split_packages: [
185 "android.app.usage",
186 "android.nearby",
187 "android.net",
Dan Stahre2be25f2023-01-16 18:02:30 +0000188 "android.net.http",
Paul Duffin8be17642022-03-10 17:44:54 +0000189 "android.net.netstats",
190 "android.net.util",
Yan Yanb4ccc6a2024-11-02 01:37:17 +0000191 "android.net.vcn",
Paul Duffin8be17642022-03-10 17:44:54 +0000192 ],
193
194 // The following packages and all their subpackages currently only
195 // contain classes from this bootclasspath_fragment. Listing a package
196 // here won't prevent other bootclasspath modules from adding classes in
197 // any of those packages but it will prevent them from adding those
198 // classes into an API surface, e.g. public, system, etc.. Doing so will
199 // result in a build failure due to inconsistent flags.
200 package_prefixes: [
201 "android.nearby.aidl",
Igor Zaslavskyec344f42023-08-08 04:28:45 +0000202 "android.remoteauth.aidl",
203 "android.remoteauth",
Paul Duffin8be17642022-03-10 17:44:54 +0000204 "android.net.apf",
205 "android.net.connectivity",
Dan Stahre2be25f2023-01-16 18:02:30 +0000206 "android.net.http.apihelpers",
Paul Duffin8be17642022-03-10 17:44:54 +0000207 "android.net.netstats.provider",
208 "android.net.nsd",
Kangping Dong1cec48f2023-08-21 18:48:14 +0800209 "android.net.thread",
Igor Chernyshev9dac6602022-12-13 19:28:32 -0800210 "android.net.wear",
Motomu Utsumi2fc11542024-08-15 12:34:15 +0900211 "android.net.http.internal",
Paul Duffin8be17642022-03-10 17:44:54 +0000212 ],
Paul Duffinb28cb442021-05-26 10:46:20 +0100213 },
satayev8bb425a2021-05-12 13:28:58 +0100214}
215
Jiakai Zhang9ecc66d2021-12-20 16:54:13 +0000216systemserverclasspath_fragment {
217 name: "com.android.tethering-systemserverclasspath-fragment",
218 standalone_contents: ["service-connectivity"],
219 apex_available: ["com.android.tethering"],
220}