blob: 3fad3be9c3986b451da7b462a6359ef7e2a70694 [file] [log] [blame]
David Su4b3032f2019-09-04 14:31:58 -07001// Copyright (C) 2019 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
Bob Badourc446a522021-02-04 00:08:31 -080015package {
16 default_applicable_licenses: ["Android-Apache-2.0"],
17}
18
David Su9ca5d402020-06-10 12:39:07 -070019java_defaults {
20 name: "wifi-module-sdk-version-defaults",
21 min_sdk_version: "30",
David Su9ca5d402020-06-10 12:39:07 -070022}
23
David Su005f8902020-01-21 11:23:00 -080024filegroup {
25 name: "framework-wifi-updatable-exported-aidl-sources",
26 srcs: ["aidl-export/**/*.aidl"],
27 path: "aidl-export",
28 visibility: ["//visibility:private"],
29}
David Su4b3032f2019-09-04 14:31:58 -070030
31filegroup {
David Su005f8902020-01-21 11:23:00 -080032 name: "framework-wifi-updatable-java-sources",
David Su4b3032f2019-09-04 14:31:58 -070033 srcs: [
34 "java/**/*.java",
35 "java/**/*.aidl",
36 ],
David Su4b3032f2019-09-04 14:31:58 -070037 path: "java",
David Su005f8902020-01-21 11:23:00 -080038 visibility: ["//visibility:private"],
39}
40
41filegroup {
42 name: "framework-wifi-updatable-sources",
43 srcs: [
44 ":framework-wifi-updatable-java-sources",
45 ":framework-wifi-updatable-exported-aidl-sources",
David Su08f810e2020-12-09 10:40:18 -080046 ":module-utils-os-aidls",
David Su005f8902020-01-21 11:23:00 -080047 ],
David Su4b3032f2019-09-04 14:31:58 -070048}
49
50filegroup {
David Su414e9092019-12-14 21:37:20 -080051 name: "framework-wifi-annotations",
52 srcs: ["java/android/net/wifi/WifiAnnotations.java"],
53}
54
Nate Jiang72c34c122023-11-17 23:44:29 +000055filegroup {
56 name: "wifi_javadoc_only_files",
57 srcs: ["java/android/net/wifi/package.html",
58 "java/android/net/wifi/rtt/package.html",
59 "java/android/net/wifi/p2p/package.html",
60 "java/android/net/wifi/aware/package.html",
61 ],
62 path: "java/android/net/wifi",
63}
64
David Sudc878b82019-12-18 18:20:28 -080065// list of tests that are allowed to access @hide APIs from framework-wifi
66test_access_hidden_api_whitelist = [
67 "//frameworks/base/wifi/tests",
David Su00bb68f2020-12-03 14:28:24 -080068 "//frameworks/base/wifi/non-updatable/tests",
David Sudc878b82019-12-18 18:20:28 -080069 "//frameworks/opt/net/wifi/tests/wifitests:__subpackages__",
David Sue36d77e2019-12-18 21:22:21 -080070
Baligh Uddind5af8cf2020-12-23 04:04:00 +000071 "//packages/modules/Wifi/framework/tests",
72 "//packages/modules/Wifi/service/tests/wifitests:__subpackages__",
73
David Sucd246f72020-01-07 13:01:30 -080074 "//external/robolectric-shadows:__subpackages__",
David Sud9ab8ff2020-01-06 15:24:42 -080075 "//frameworks/base/packages/SettingsLib/tests/integ",
David Su16cbcd12020-01-11 16:22:00 -080076 "//external/sl4a:__subpackages__",
David Sudc878b82019-12-18 18:20:28 -080077]
78
William Escande4367f1e2021-09-03 17:02:38 +020079java_library {
80 name: "wifi-modules-utils",
81 sdk_version: "module_current",
82 min_sdk_version: "30",
83 static_libs: [
84 "modules-utils-build",
William Escande7dca68d2021-09-20 19:54:45 +020085 "modules-utils-handlerexecutor",
William Escande4367f1e2021-09-03 17:02:38 +020086 "modules-utils-list-slice",
87 "modules-utils-preconditions",
William Escande7dca68d2021-09-20 19:54:45 +020088 "modules-utils-shell-command-handler",
89 "modules-utils-statemachine",
William Escande4367f1e2021-09-03 17:02:38 +020090 ],
91 apex_available: [
92 "com.android.wifi",
93 "test_com.android.wifi",
94 ],
95}
96
David Su0c1d0c92020-10-26 11:12:04 -070097// defaults shared between `framework-wifi` & `framework-wifi-pre-jarjar`
98// java_sdk_library `framework-wifi` needs sources to generate stubs, so it cannot reuse
99// `framework-wifi-pre-jarjar`
100java_defaults {
101 name: "framework-wifi-defaults",
David Su9ca5d402020-06-10 12:39:07 -0700102 defaults: ["wifi-module-sdk-version-defaults"],
David Su5d01d6d2020-01-09 14:02:21 -0800103 static_libs: [
104 "framework-wifi-util-lib",
David Subcdd4062020-01-09 18:09:56 -0800105 "android.hardware.wifi-V1.0-java-constants",
William Escande4367f1e2021-09-03 17:02:38 +0200106 "wifi-modules-utils",
Les Leeaf37e392022-03-16 16:06:41 +0800107 "PlatformProperties",
David Su5d01d6d2020-01-09 14:02:21 -0800108 ],
David Su4b3032f2019-09-04 14:31:58 -0700109 libs: [
Anton Hansson29a5afb2022-01-25 16:59:31 +0000110 "androidx.annotation_annotation",
David Subcdd4062020-01-09 18:09:56 -0800111 "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage
Les Leed0c76e42022-01-24 22:19:05 +0800112 "app-compat-annotations",
David Su4b3032f2019-09-04 14:31:58 -0700113 ],
Remi NGUYEN VAN37237ba2021-01-14 16:44:22 +0900114 aidl: {
Siim Sammuld9c0aa82022-08-15 11:34:31 +0000115 generate_get_transaction_name: true,
Remi NGUYEN VAN37237ba2021-01-14 16:44:22 +0900116 include_dirs: [
Baligh Uddinf009d852021-05-22 13:20:05 +0000117 "packages/modules/Connectivity/framework/aidl-export",
Remi NGUYEN VAN37237ba2021-01-14 16:44:22 +0900118 ],
119 },
David Su4b3032f2019-09-04 14:31:58 -0700120 srcs: [
121 ":framework-wifi-updatable-sources",
David Su08f810e2020-12-09 10:40:18 -0800122 ":module-utils-os-aidls",
David Su4b3032f2019-09-04 14:31:58 -0700123 ],
David Su0c1d0c92020-10-26 11:12:04 -0700124}
125
126// wifi-service needs pre-jarjared version of framework-wifi so it can reference copied utility
127// classes before they are renamed.
128java_library {
129 name: "framework-wifi-pre-jarjar",
130 defaults: ["framework-wifi-defaults"],
131 sdk_version: "module_current",
Paul Duffindf9c33f2023-11-02 19:19:40 +0000132 libs: [
133 "framework-annotations-lib",
134 "framework-connectivity.stubs.module_lib",
135 ],
David Su5d01d6d2020-01-09 14:02:21 -0800136 installable: false,
137 visibility: [
138 "//frameworks/opt/net/wifi/service",
139 "//frameworks/opt/net/wifi/tests/wifitests",
Baligh Uddine65d7662020-12-24 05:49:07 +0000140 "//packages/modules/Wifi/service",
141 "//packages/modules/Wifi/service/tests/wifitests",
David Su5d01d6d2020-01-09 14:02:21 -0800142 ],
143}
144
145// post-jarjar version of framework-wifi
Paul Duffind224b732020-05-13 20:33:29 +0100146java_sdk_library {
David Su5d01d6d2020-01-09 14:02:21 -0800147 name: "framework-wifi",
David Su9ca5d402020-06-10 12:39:07 -0700148 defaults: [
149 "framework-module-defaults",
David Su0c1d0c92020-10-26 11:12:04 -0700150 "framework-wifi-defaults",
Paul Duffind224b732020-05-13 20:33:29 +0100151 ],
152
Paul Duffindf9c33f2023-11-02 19:19:40 +0000153 impl_only_libs: [
154 "framework-connectivity.stubs.module_lib",
155 ],
156
157 public: {
158 libs: ["framework-connectivity.stubs"]
159 },
160 system: {
161 libs: ["framework-connectivity.stubs.system"]
162 },
163 module_lib: {
164 libs: ["framework-connectivity.stubs.module_lib"]
165 },
Nate Jiang72c34c122023-11-17 23:44:29 +0000166 api_srcs: [
167 ":wifi_javadoc_only_files",
168 ],
Remi NGUYEN VAN37237ba2021-01-14 16:44:22 +0900169
David Su5d01d6d2020-01-09 14:02:21 -0800170 jarjar_rules: ":wifi-jarjar-rules",
171
David Su4b3032f2019-09-04 14:31:58 -0700172 installable: true,
173 optimize: {
174 enabled: false
David Sudc878b82019-12-18 18:20:28 -0800175 },
Jiyong Parke954a152020-01-06 13:30:59 +0900176 hostdex: true, // for hiddenapi check
Paul Duffin4b3c6432020-05-31 11:32:06 +0100177
Paul Duffin4b3c6432020-05-31 11:32:06 +0100178 // Restrict access to implementation library.
179 impl_library_visibility: [
David Sudc878b82019-12-18 18:20:28 -0800180 "//frameworks/opt/net/wifi/service:__subpackages__",
Baligh Uddine65d7662020-12-24 05:49:07 +0000181 "//packages/modules/Wifi/service:__subpackages__",
Quang Luong79a07cf2021-12-13 12:11:39 -0800182 "//packages/modules/Wifi/WifiDialog:__subpackages__",
David Sudc878b82019-12-18 18:20:28 -0800183 ] + test_access_hidden_api_whitelist,
Paul Duffin4b3c6432020-05-31 11:32:06 +0100184
Jiyong Parke954a152020-01-06 13:30:59 +0900185 apex_available: [
186 "com.android.wifi",
187 "test_com.android.wifi",
188 ],
Vladimir Marko58338c42020-03-19 14:30:21 +0000189 permitted_packages: [
190 "android.hardware.wifi",
191 "android.net.wifi",
Paul Duffinbc41cb72020-05-28 14:55:44 +0100192 // Created by jarjar rules.
193 "com.android.wifi.x",
Vladimir Marko58338c42020-03-19 14:30:21 +0000194 ],
Nate Jiang71d75862021-05-26 13:09:09 -0700195 lint: {
196 strict_updatability_linting: true,
197 },
David Su4b3032f2019-09-04 14:31:58 -0700198}
199
David Sudc878b82019-12-18 18:20:28 -0800200// defaults for tests that need to build against framework-wifi's @hide APIs
201java_defaults {
202 name: "framework-wifi-test-defaults",
David Su85ef0ad2020-11-25 10:55:11 -0800203 sdk_version: "core_current",
David Sudc878b82019-12-18 18:20:28 -0800204 libs: [
David Su8843a2d2020-01-07 19:47:28 -0800205 // order matters: classes in framework-wifi are resolved before framework, meaning
206 // @hide APIs in framework-wifi are resolved before @SystemApi stubs in framework
Paul Duffind224b732020-05-13 20:33:29 +0100207 "framework-wifi.impl",
David Su8843a2d2020-01-07 19:47:28 -0800208 "framework",
David Sudc878b82019-12-18 18:20:28 -0800209
210 // if sdk_version="" this gets automatically included, but here we need to add manually.
211 "framework-res",
212 ],
213 visibility: test_access_hidden_api_whitelist,
214}
David Su5d01d6d2020-01-09 14:02:21 -0800215
216filegroup {
217 name: "wifi-jarjar-rules",
218 srcs: ["jarjar-rules.txt"],
219}
Les Leed0c76e42022-01-24 22:19:05 +0800220
221platform_compat_config
222{
223 name: "wifi-compat-config",
224 src: ":framework-wifi-pre-jarjar",
225}
Jihoon Kangf5092f82022-12-06 18:11:10 +0000226
227java_api_contribution {
228 name: "framework-wifi-public-stubs",
229 api_surface: "public",
230 api_file: "api/current.txt",
231 visibility: [
232 "//build/orchestrator/apis",
233 ],
234}
Jihoon Kang7e8de482023-01-03 20:28:00 +0000235
236java_api_contribution {
237 name: "framework-wifi-system-stubs",
238 api_surface: "system",
239 api_file: "api/system-current.txt",
240 visibility: [
241 "//build/orchestrator/apis",
242 ],
243}
244
245java_api_contribution {
246 name: "framework-wifi-module-lib-stubs",
247 api_surface: "module-lib",
248 api_file: "api/module-lib-current.txt",
249 visibility: [
250 "//build/orchestrator/apis",
251 ],
252}