blob: 770c092b9e4dc322252df82c115cc9e42b8b8ae1 [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
markchien0abdd112019-11-28 10:17:03 +080053apex {
markchien8f831c02019-12-18 17:47:26 +080054 name: "com.android.tethering",
Gurpreet Singha12858d2022-03-04 15:34:29 +000055 defaults: [
56 "ConnectivityApexDefaults",
57 "r-launched-apex-module",
58 ],
Remi NGUYEN VAN6d575ca2021-01-13 15:44:38 +090059 compile_multilib: "both",
satayev8bb425a2021-05-12 13:28:58 +010060 bootclasspath_fragments: [
61 "com.android.tethering-bootclasspath-fragment",
62 ],
Jiakai Zhang86c139a2021-12-20 16:54:13 +000063 systemserverclasspath_fragments: [
64 "com.android.tethering-systemserverclasspath-fragment",
Remi NGUYEN VAN2812f602021-01-08 01:19:44 +000065 ],
Remi NGUYEN VAN6d575ca2021-01-13 15:44:38 +090066 multilib: {
67 first: {
markchien8fb75e32021-11-11 17:53:56 +080068 jni_libs: [
69 "libservice-connectivity",
Remi NGUYEN VAN6a20eed2022-01-31 11:21:08 +090070 "libandroid_net_connectivity_com_android_net_module_util_jni",
markchien8fb75e32021-11-11 17:53:56 +080071 ],
Ken Chen1647f602021-10-05 21:55:22 +080072 native_shared_libs: ["libnetd_updatable"],
Remi NGUYEN VAN6d575ca2021-01-13 15:44:38 +090073 },
74 both: {
junyulai6187e7c2022-02-22 16:37:25 +080075 jni_libs: [
76 "libframework-connectivity-jni",
77 "libframework-connectivity-tiramisu-jni"
78 ],
Paul Duffinb28cb442021-05-26 10:46:20 +010079 },
Remi NGUYEN VAN6d575ca2021-01-13 15:44:38 +090080 },
Hungming Chen378e3232021-12-16 21:56:02 +080081 binaries: [
82 "clatd",
83 ],
Hungming Chenf9d40ae2022-01-14 17:42:43 +080084 canned_fs_config: "canned_fs_config",
Maciej Żenczykowskie9810ff2021-01-14 20:02:08 -080085 bpfs: [
Tyler Wearb37f5512021-10-01 13:22:00 -070086 "block.o",
Maciej Żenczykowskid72a5a72022-05-02 00:43:51 -070087 "clatd.o",
Tyler Wear72388212021-09-09 14:49:02 -070088 "dscp_policy.o",
Maciej Żenczykowskid72a5a72022-05-02 00:43:51 -070089 "netd.o",
Maciej Żenczykowskie9810ff2021-01-14 20:02:08 -080090 "offload.o",
Maciej Żenczykowski07d30132022-04-23 12:33:32 -070091 "offload@btf.o",
Maciej Żenczykowskie9810ff2021-01-14 20:02:08 -080092 "test.o",
Maciej Żenczykowski07d30132022-04-23 12:33:32 -070093 "test@btf.o",
Maciej Żenczykowskie9810ff2021-01-14 20:02:08 -080094 ],
Remi NGUYEN VANaffd94b2021-03-08 23:09:31 +090095 apps: [
96 "ServiceConnectivityResources",
Remi NGUYEN VANaffd94b2021-03-08 23:09:31 +090097 ],
Andrei Onea52eac022021-12-03 15:11:27 +000098 prebuilts: [
99 "current_sdkinfo",
100 "privapp_allowlist_com.android.tethering",
Maciej Żenczykowski760d1ed2022-07-08 05:57:10 -0700101 "TetheringOutOfProcessFlag",
Andrei Onea52eac022021-12-03 15:11:27 +0000102 ],
markchien0abdd112019-11-28 10:17:03 +0800103 manifest: "manifest.json",
markchien8f831c02019-12-18 17:47:26 +0800104 key: "com.android.tethering.key",
Nikita Ioffe5f333572021-02-04 01:42:45 +0000105 // Indicates that pre-installed version of this apex can be compressed.
106 // Whether it actually will be compressed is controlled on per-device basis.
107 compressible: true,
markchien0abdd112019-11-28 10:17:03 +0800108
109 androidManifest: "AndroidManifest.xml",
Taras Antoshchuk30d41e52021-08-02 18:06:35 +0200110
111 compat_configs: ["connectivity-platform-compat-config"],
markchien0abdd112019-11-28 10:17:03 +0800112}
113
114apex_key {
markchien8f831c02019-12-18 17:47:26 +0800115 name: "com.android.tethering.key",
116 public_key: "com.android.tethering.avbpubkey",
117 private_key: "com.android.tethering.pem",
markchien0abdd112019-11-28 10:17:03 +0800118}
119
120android_app_certificate {
markchien8f831c02019-12-18 17:47:26 +0800121 name: "com.android.tethering.certificate",
122 certificate: "com.android.tethering",
markchien0abdd112019-11-28 10:17:03 +0800123}
markchiendbaff662020-05-05 17:42:44 +0800124
Remi NGUYEN VANe55a88d2022-04-20 15:59:16 +0900125filegroup {
126 name: "connectivity-hiddenapi-files",
127 srcs: ["hiddenapi/*.txt"],
128 visibility: ["//packages/modules/Connectivity:__subpackages__"],
129}
130
satayev8bb425a2021-05-12 13:28:58 +0100131// Encapsulate the contributions made by the com.android.tethering to the bootclasspath.
132bootclasspath_fragment {
133 name: "com.android.tethering-bootclasspath-fragment",
134 contents: [
135 "framework-connectivity",
paulhu537f7202022-02-08 21:25:28 +0800136 "framework-connectivity-t",
satayev8bb425a2021-05-12 13:28:58 +0100137 "framework-tethering",
138 ],
139 apex_available: ["com.android.tethering"],
Paul Duffinb28cb442021-05-26 10:46:20 +0100140
141 // The bootclasspath_fragments that provide APIs on which this depends.
142 fragments: [
143 {
144 apex: "com.android.art",
145 module: "art-bootclasspath-fragment",
146 },
147 ],
148
149 // Additional stubs libraries that this fragment's contents use which are
150 // not provided by another bootclasspath_fragment.
151 additional_stubs: [
152 "android-non-updatable",
153 ],
154
155 // Additional hidden API flag files to override the defaults. This must only be
156 // modified by the Soong or platform compat team.
157 hidden_api: {
Remi NGUYEN VAN24b3c372021-12-16 15:10:40 +0000158 max_target_r_low_priority: [
159 "hiddenapi/hiddenapi-max-target-r-loprio.txt",
160 ],
161 max_target_o_low_priority: [
162 "hiddenapi/hiddenapi-max-target-o-low-priority.txt",
163 "hiddenapi/hiddenapi-max-target-o-low-priority-tiramisu.txt",
164 ],
junyulai4eccfde2022-02-25 10:37:02 +0800165 unsupported: [
166 "hiddenapi/hiddenapi-unsupported.txt",
167 "hiddenapi/hiddenapi-unsupported-tiramisu.txt",
168 ],
Paul Duffina0c49bc2022-03-10 17:44:54 +0000169
170 // The following packages contain classes from other modules on the
171 // bootclasspath. That means that the hidden API flags for this module
172 // has to explicitly list every single class this module provides in
173 // that package to differentiate them from the classes provided by other
174 // modules. That can include private classes that are not part of the
175 // API.
176 split_packages: [
177 "android.app.usage",
178 "android.net",
179 "android.net.netstats",
180 "android.net.util",
181 ],
182
183 // The following packages and all their subpackages currently only
184 // contain classes from this bootclasspath_fragment. Listing a package
185 // here won't prevent other bootclasspath modules from adding classes in
186 // any of those packages but it will prevent them from adding those
187 // classes into an API surface, e.g. public, system, etc.. Doing so will
188 // result in a build failure due to inconsistent flags.
189 package_prefixes: [
190 "android.net.apf",
191 "android.net.connectivity",
192 "android.net.netstats.provider",
193 "android.net.nsd",
194 ],
Paul Duffinb28cb442021-05-26 10:46:20 +0100195 },
satayev8bb425a2021-05-12 13:28:58 +0100196}
197
Jiakai Zhang86c139a2021-12-20 16:54:13 +0000198systemserverclasspath_fragment {
199 name: "com.android.tethering-systemserverclasspath-fragment",
200 standalone_contents: ["service-connectivity"],
201 apex_available: ["com.android.tethering"],
202}
203
markchiendbaff662020-05-05 17:42:44 +0800204override_apex {
205 name: "com.android.tethering.inprocess",
206 base: "com.android.tethering",
207 package_name: "com.android.tethering.inprocess",
Remi NGUYEN VANf24553d2022-01-27 13:16:12 +0900208 enabled: enable_tethering_next_apex,
Maciej Żenczykowskiccce4a32022-07-17 01:28:38 -0700209 bpfs: [
210 "block.o",
211 "clatd.o",
212 "dscp_policy.o",
213 "netd.o",
214 "offload@inprocess.o",
215 "test@inprocess.o",
216 ],
markchiendbaff662020-05-05 17:42:44 +0800217 apps: [
Remi NGUYEN VANf0f0cca2021-03-12 15:04:29 +0000218 "ServiceConnectivityResources",
markchiendbaff662020-05-05 17:42:44 +0800219 "InProcessTethering",
220 ],
Maciej Żenczykowski760d1ed2022-07-08 05:57:10 -0700221 prebuilts: [
222 "current_sdkinfo",
223 "privapp_allowlist_com.android.tethering",
224 "TetheringInProcessFlag",
225 ],
markchiendbaff662020-05-05 17:42:44 +0800226}