blob: 15b39389661b2e2581c172f20f41e89700d82451 [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 {
18 default_applicable_licenses: ["Android-Apache-2.0"],
19}
20
Maciej Żenczykowski760d1ed2022-07-08 05:57:10 -070021prebuilt_etc {
22 name: "TetheringInProcessFlag",
23 src: "in-process",
24 filename_from_src: true,
25 sub_dir: "flag",
26}
27
28prebuilt_etc {
29 name: "TetheringOutOfProcessFlag",
30 src: "out-of-process",
31 filename_from_src: true,
32 sub_dir: "flag",
33}
34
markchien598a75b2021-11-22 10:36:32 +080035// Defaults to enable/disable java targets which uses development APIs. "enabled" may have a
36// different value depending on the branch.
37java_defaults {
38 name: "ConnectivityNextEnableDefaults",
39 enabled: true,
40}
41apex_defaults {
42 name: "ConnectivityApexDefaults",
43 // Tethering app to include in the AOSP apex. Branches that disable the "next" targets may use
44 // a stable tethering app instead, but will generally override the AOSP apex to use updatable
45 // package names and keys, so that apex will be unused anyway.
46 apps: ["TetheringNext"], // Replace to "Tethering" if ConnectivityNextEnableDefaults is false.
47}
Remi NGUYEN VANf24553d2022-01-27 13:16:12 +090048enable_tethering_next_apex = true
markchien598a75b2021-11-22 10:36:32 +080049// This is a placeholder comment to avoid merge conflicts
50// as the above target may have different "enabled" values
51// depending on the branch
52
Patrick Rohrc65b4512023-01-16 06:12:04 -080053// cronet_in_tethering_apex_defaults can be used to specify an apex_defaults target that either
54// enables or disables inclusion of Cronet in the Tethering apex. This is used to disable Cronet
55// on tm-mainline-prod. Note: in order for Cronet APIs to work Cronet must also be enabled
56// by the cronet_java_*_defaults in common/TetheringLib/Android.bp.
57cronet_in_tethering_apex_defaults = "CronetInTetheringApexDefaultsEnabled"
58// This is a placeholder comment to avoid merge conflicts
59// as cronet_apex_defaults may have different values
60// depending on the branch
61
Dan Stahre2be25f2023-01-16 18:02:30 +000062apex_defaults {
63 name: "CronetInTetheringApexDefaults",
64 defaults: [cronet_in_tethering_apex_defaults],
65}
66
67apex_defaults {
68 name: "CronetInTetheringApexDefaultsEnabled",
Stefano Duo43d89f62023-03-15 16:11:52 +000069 jni_libs: [
Mohannad Farrag9c6801f2023-03-23 12:45:45 +000070 "cronet_aml_components_cronet_android_cronet",
Stefano Duo43d89f62023-03-15 16:11:52 +000071 "//external/cronet/third_party/boringssl:libcrypto",
72 "//external/cronet/third_party/boringssl:libssl",
73 ],
Dan Stahre2be25f2023-01-16 18:02:30 +000074 arch: {
75 riscv64: {
76 // TODO: remove this when there is a riscv64 libcronet
Stefano Duo43d89f62023-03-15 16:11:52 +000077 exclude_jni_libs: [
Mohannad Farrag9c6801f2023-03-23 12:45:45 +000078 "cronet_aml_components_cronet_android_cronet",
Stefano Duo43d89f62023-03-15 16:11:52 +000079 "//external/cronet/third_party/boringssl:libcrypto",
80 "//external/cronet/third_party/boringssl:libssl",
81 ],
Dan Stahre2be25f2023-01-16 18:02:30 +000082 },
83 },
84}
85
86apex_defaults {
87 name: "CronetInTetheringApexDefaultsDisabled",
88}
89
markchien0abdd112019-11-28 10:17:03 +080090apex {
markchien8f831c02019-12-18 17:47:26 +080091 name: "com.android.tethering",
Gurpreet Singha12858d2022-03-04 15:34:29 +000092 defaults: [
93 "ConnectivityApexDefaults",
Dan Stahre2be25f2023-01-16 18:02:30 +000094 "CronetInTetheringApexDefaults",
Gurpreet Singha12858d2022-03-04 15:34:29 +000095 "r-launched-apex-module",
96 ],
Remi NGUYEN VAN6d575ca2021-01-13 15:44:38 +090097 compile_multilib: "both",
satayev8bb425a2021-05-12 13:28:58 +010098 bootclasspath_fragments: [
99 "com.android.tethering-bootclasspath-fragment",
100 ],
Jiakai Zhang9ecc66d2021-12-20 16:54:13 +0000101 systemserverclasspath_fragments: [
102 "com.android.tethering-systemserverclasspath-fragment",
Remi NGUYEN VAN2812f602021-01-08 01:19:44 +0000103 ],
Remi NGUYEN VAN6d575ca2021-01-13 15:44:38 +0900104 multilib: {
105 first: {
markchien8fb75e32021-11-11 17:53:56 +0800106 jni_libs: [
107 "libservice-connectivity",
Remi NGUYEN VAN6a20eed2022-01-31 11:21:08 +0900108 "libandroid_net_connectivity_com_android_net_module_util_jni",
markchien8fb75e32021-11-11 17:53:56 +0800109 ],
Remi NGUYEN VANfb70eba2022-04-04 20:26:16 +0900110 native_shared_libs: [
111 "libcom.android.tethering.connectivity_native",
112 "libnetd_updatable",
113 ],
Remi NGUYEN VAN6d575ca2021-01-13 15:44:38 +0900114 },
115 both: {
Remi NGUYEN VANc8aa43c2022-02-02 13:03:29 +0900116 jni_libs: [
117 "libframework-connectivity-jni",
118 "libframework-connectivity-tiramisu-jni"
119 ],
Paul Duffinb28cb442021-05-26 10:46:20 +0100120 },
Remi NGUYEN VAN6d575ca2021-01-13 15:44:38 +0900121 },
Hungming Chen378e3232021-12-16 21:56:02 +0800122 binaries: [
123 "clatd",
124 ],
Hungming Chenf9d40ae2022-01-14 17:42:43 +0800125 canned_fs_config: "canned_fs_config",
Maciej Żenczykowskie9810ff2021-01-14 20:02:08 -0800126 bpfs: [
Tyler Wearb37f5512021-10-01 13:22:00 -0700127 "block.o",
Maciej Żenczykowskid72a5a72022-05-02 00:43:51 -0700128 "clatd.o",
Ken Chen74ff3ee2022-07-14 16:46:39 +0800129 "dscpPolicy.o",
Maciej Żenczykowskid72a5a72022-05-02 00:43:51 -0700130 "netd.o",
Maciej Żenczykowskie9810ff2021-01-14 20:02:08 -0800131 "offload.o",
Maciej Żenczykowski07d30132022-04-23 12:33:32 -0700132 "offload@btf.o",
Maciej Żenczykowskie9810ff2021-01-14 20:02:08 -0800133 "test.o",
Maciej Żenczykowski07d30132022-04-23 12:33:32 -0700134 "test@btf.o",
Maciej Żenczykowskie9810ff2021-01-14 20:02:08 -0800135 ],
Remi NGUYEN VANaffd94b2021-03-08 23:09:31 +0900136 apps: [
137 "ServiceConnectivityResources",
Remi NGUYEN VAN51935fc2022-01-07 13:18:54 +0900138 "HalfSheetUX",
Remi NGUYEN VANaffd94b2021-03-08 23:09:31 +0900139 ],
Andrei Onea52eac022021-12-03 15:11:27 +0000140 prebuilts: [
141 "current_sdkinfo",
142 "privapp_allowlist_com.android.tethering",
Maciej Żenczykowski760d1ed2022-07-08 05:57:10 -0700143 "TetheringOutOfProcessFlag",
Andrei Onea52eac022021-12-03 15:11:27 +0000144 ],
markchien0abdd112019-11-28 10:17:03 +0800145 manifest: "manifest.json",
markchien8f831c02019-12-18 17:47:26 +0800146 key: "com.android.tethering.key",
Nikita Ioffe5f333572021-02-04 01:42:45 +0000147 // Indicates that pre-installed version of this apex can be compressed.
148 // Whether it actually will be compressed is controlled on per-device basis.
149 compressible: true,
markchien0abdd112019-11-28 10:17:03 +0800150
151 androidManifest: "AndroidManifest.xml",
Taras Antoshchuk30d41e52021-08-02 18:06:35 +0200152
Remi NGUYEN VAN348bbb02022-07-19 16:33:04 +0900153 compat_configs: [
154 "connectivity-platform-compat-config",
Remi NGUYEN VAN348bbb02022-07-19 16:33:04 +0900155 ],
markchien0abdd112019-11-28 10:17:03 +0800156}
157
158apex_key {
markchien8f831c02019-12-18 17:47:26 +0800159 name: "com.android.tethering.key",
160 public_key: "com.android.tethering.avbpubkey",
161 private_key: "com.android.tethering.pem",
markchien0abdd112019-11-28 10:17:03 +0800162}
163
164android_app_certificate {
markchien8f831c02019-12-18 17:47:26 +0800165 name: "com.android.tethering.certificate",
166 certificate: "com.android.tethering",
markchien0abdd112019-11-28 10:17:03 +0800167}
markchiendbaff662020-05-05 17:42:44 +0800168
Remi NGUYEN VANe55a88d2022-04-20 15:59:16 +0900169filegroup {
170 name: "connectivity-hiddenapi-files",
Paul Duffinc8164e42022-07-28 10:52:09 +0000171 srcs: [
172 ":connectivity-t-hiddenapi-files",
173 "hiddenapi/*.txt",
174 ],
Remi NGUYEN VANe55a88d2022-04-20 15:59:16 +0900175 visibility: ["//packages/modules/Connectivity:__subpackages__"],
176}
177
satayev8bb425a2021-05-12 13:28:58 +0100178// Encapsulate the contributions made by the com.android.tethering to the bootclasspath.
179bootclasspath_fragment {
180 name: "com.android.tethering-bootclasspath-fragment",
181 contents: [
182 "framework-connectivity",
paulhu699477a2022-02-08 21:25:28 +0800183 "framework-connectivity-t",
satayev8bb425a2021-05-12 13:28:58 +0100184 "framework-tethering",
185 ],
186 apex_available: ["com.android.tethering"],
Paul Duffinb28cb442021-05-26 10:46:20 +0100187
188 // The bootclasspath_fragments that provide APIs on which this depends.
189 fragments: [
190 {
191 apex: "com.android.art",
192 module: "art-bootclasspath-fragment",
193 },
194 ],
195
196 // Additional stubs libraries that this fragment's contents use which are
197 // not provided by another bootclasspath_fragment.
198 additional_stubs: [
199 "android-non-updatable",
200 ],
201
202 // Additional hidden API flag files to override the defaults. This must only be
203 // modified by the Soong or platform compat team.
204 hidden_api: {
Remi NGUYEN VAN955c33c2021-12-16 15:10:40 +0000205 max_target_o_low_priority: [
206 "hiddenapi/hiddenapi-max-target-o-low-priority.txt",
Paul Duffin8be17642022-03-10 17:44:54 +0000207 ],
Junyu Lai2ef865e2022-01-17 11:52:57 +0000208 unsupported: [
209 "hiddenapi/hiddenapi-unsupported.txt",
Junyu Lai2ef865e2022-01-17 11:52:57 +0000210 ],
Paul Duffin8be17642022-03-10 17:44:54 +0000211
212 // The following packages contain classes from other modules on the
213 // bootclasspath. That means that the hidden API flags for this module
214 // has to explicitly list every single class this module provides in
215 // that package to differentiate them from the classes provided by other
216 // modules. That can include private classes that are not part of the
217 // API.
218 split_packages: [
219 "android.app.usage",
220 "android.nearby",
221 "android.net",
Dan Stahre2be25f2023-01-16 18:02:30 +0000222 "android.net.http",
Paul Duffin8be17642022-03-10 17:44:54 +0000223 "android.net.netstats",
224 "android.net.util",
225 ],
226
227 // The following packages and all their subpackages currently only
228 // contain classes from this bootclasspath_fragment. Listing a package
229 // here won't prevent other bootclasspath modules from adding classes in
230 // any of those packages but it will prevent them from adding those
231 // classes into an API surface, e.g. public, system, etc.. Doing so will
232 // result in a build failure due to inconsistent flags.
233 package_prefixes: [
234 "android.nearby.aidl",
235 "android.net.apf",
236 "android.net.connectivity",
Dan Stahre2be25f2023-01-16 18:02:30 +0000237 "android.net.http.apihelpers",
238 "android.net.http.internal",
Paul Duffin8be17642022-03-10 17:44:54 +0000239 "android.net.netstats.provider",
240 "android.net.nsd",
Igor Chernyshev9dac6602022-12-13 19:28:32 -0800241 "android.net.wear",
Paul Duffin8be17642022-03-10 17:44:54 +0000242 ],
Paul Duffinb28cb442021-05-26 10:46:20 +0100243 },
satayev8bb425a2021-05-12 13:28:58 +0100244}
245
Jiakai Zhang9ecc66d2021-12-20 16:54:13 +0000246systemserverclasspath_fragment {
247 name: "com.android.tethering-systemserverclasspath-fragment",
248 standalone_contents: ["service-connectivity"],
249 apex_available: ["com.android.tethering"],
250}
251
markchiendbaff662020-05-05 17:42:44 +0800252override_apex {
253 name: "com.android.tethering.inprocess",
254 base: "com.android.tethering",
255 package_name: "com.android.tethering.inprocess",
Remi NGUYEN VANf24553d2022-01-27 13:16:12 +0900256 enabled: enable_tethering_next_apex,
Maciej Żenczykowskiccce4a32022-07-17 01:28:38 -0700257 bpfs: [
258 "block.o",
259 "clatd.o",
Ken Chen74ff3ee2022-07-14 16:46:39 +0800260 "dscpPolicy.o",
Maciej Żenczykowskiccce4a32022-07-17 01:28:38 -0700261 "netd.o",
262 "offload@inprocess.o",
263 "test@inprocess.o",
264 ],
markchiendbaff662020-05-05 17:42:44 +0800265 apps: [
Remi NGUYEN VANf0f0cca2021-03-12 15:04:29 +0000266 "ServiceConnectivityResources",
markchiendbaff662020-05-05 17:42:44 +0800267 "InProcessTethering",
268 ],
Maciej Żenczykowski760d1ed2022-07-08 05:57:10 -0700269 prebuilts: [
270 "current_sdkinfo",
271 "privapp_allowlist_com.android.tethering",
272 "TetheringInProcessFlag",
273 ],
markchiendbaff662020-05-05 17:42:44 +0800274}