blob: 40e10037929d322e957bdc3774e57fba9e3dc541 [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 {
Aditya Choudhary5e4b8202024-01-31 11:10:18 +000016 default_team: "trendy_team_fwk_wifi_hal",
Bob Badourc446a522021-02-04 00:08:31 -080017 default_applicable_licenses: ["Android-Apache-2.0"],
18}
19
David Su9ca5d402020-06-10 12:39:07 -070020java_defaults {
21 name: "wifi-module-sdk-version-defaults",
22 min_sdk_version: "30",
David Su9ca5d402020-06-10 12:39:07 -070023}
24
David Su005f8902020-01-21 11:23:00 -080025filegroup {
26 name: "framework-wifi-updatable-exported-aidl-sources",
27 srcs: ["aidl-export/**/*.aidl"],
28 path: "aidl-export",
29 visibility: ["//visibility:private"],
30}
David Su4b3032f2019-09-04 14:31:58 -070031
32filegroup {
David Su005f8902020-01-21 11:23:00 -080033 name: "framework-wifi-updatable-java-sources",
David Su4b3032f2019-09-04 14:31:58 -070034 srcs: [
35 "java/**/*.java",
36 "java/**/*.aidl",
37 ],
David Su4b3032f2019-09-04 14:31:58 -070038 path: "java",
David Su005f8902020-01-21 11:23:00 -080039 visibility: ["//visibility:private"],
40}
41
42filegroup {
43 name: "framework-wifi-updatable-sources",
Cole Faust16603122024-10-23 22:54:10 +000044 device_common_srcs: [
David Su005f8902020-01-21 11:23:00 -080045 ":framework-wifi-updatable-java-sources",
46 ":framework-wifi-updatable-exported-aidl-sources",
David Su08f810e2020-12-09 10:40:18 -080047 ":module-utils-os-aidls",
Nate Jiangf5522cb2024-01-10 14:41:30 -080048 ":wifi_framework_aconfig_flags_lib{.generated_srcjars}",
David Su005f8902020-01-21 11:23:00 -080049 ],
David Su4b3032f2019-09-04 14:31:58 -070050}
51
52filegroup {
David Su414e9092019-12-14 21:37:20 -080053 name: "framework-wifi-annotations",
54 srcs: ["java/android/net/wifi/WifiAnnotations.java"],
55}
56
Nate Jiang72c34c122023-11-17 23:44:29 +000057filegroup {
58 name: "wifi_javadoc_only_files",
Cole Faustefa0e572023-12-20 11:57:09 -080059 srcs: [
60 "java/android/net/wifi/package.html",
61 "java/android/net/wifi/rtt/package.html",
62 "java/android/net/wifi/p2p/package.html",
63 "java/android/net/wifi/aware/package.html",
Nate Jiang72c34c122023-11-17 23:44:29 +000064 ],
65 path: "java/android/net/wifi",
66}
67
David Sudc878b82019-12-18 18:20:28 -080068// list of tests that are allowed to access @hide APIs from framework-wifi
69test_access_hidden_api_whitelist = [
70 "//frameworks/base/wifi/tests",
David Su00bb68f2020-12-03 14:28:24 -080071 "//frameworks/base/wifi/non-updatable/tests",
David Sudc878b82019-12-18 18:20:28 -080072 "//frameworks/opt/net/wifi/tests/wifitests:__subpackages__",
David Sue36d77e2019-12-18 21:22:21 -080073
Baligh Uddind5af8cf2020-12-23 04:04:00 +000074 "//packages/modules/Wifi/framework/tests",
75 "//packages/modules/Wifi/service/tests/wifitests:__subpackages__",
76
David Sucd246f72020-01-07 13:01:30 -080077 "//external/robolectric-shadows:__subpackages__",
David Sud9ab8ff2020-01-06 15:24:42 -080078 "//frameworks/base/packages/SettingsLib/tests/integ",
David Su16cbcd12020-01-11 16:22:00 -080079 "//external/sl4a:__subpackages__",
David Sudc878b82019-12-18 18:20:28 -080080]
81
William Escande4367f1e2021-09-03 17:02:38 +020082java_library {
83 name: "wifi-modules-utils",
84 sdk_version: "module_current",
85 min_sdk_version: "30",
86 static_libs: [
87 "modules-utils-build",
William Escande7dca68d2021-09-20 19:54:45 +020088 "modules-utils-handlerexecutor",
William Escande4367f1e2021-09-03 17:02:38 +020089 "modules-utils-list-slice",
90 "modules-utils-preconditions",
William Escande7dca68d2021-09-20 19:54:45 +020091 "modules-utils-shell-command-handler",
92 "modules-utils-statemachine",
William Escande4367f1e2021-09-03 17:02:38 +020093 ],
94 apex_available: [
95 "com.android.wifi",
96 "test_com.android.wifi",
97 ],
98}
99
David Su0c1d0c92020-10-26 11:12:04 -0700100// defaults shared between `framework-wifi` & `framework-wifi-pre-jarjar`
101// java_sdk_library `framework-wifi` needs sources to generate stubs, so it cannot reuse
102// `framework-wifi-pre-jarjar`
103java_defaults {
104 name: "framework-wifi-defaults",
David Su9ca5d402020-06-10 12:39:07 -0700105 defaults: ["wifi-module-sdk-version-defaults"],
David Su5d01d6d2020-01-09 14:02:21 -0800106 static_libs: [
107 "framework-wifi-util-lib",
qiangjiang8b0bd812024-07-02 21:03:39 +0000108 "net-utils-framework-wifi",
David Subcdd4062020-01-09 18:09:56 -0800109 "android.hardware.wifi-V1.0-java-constants",
William Escande4367f1e2021-09-03 17:02:38 +0200110 "wifi-modules-utils",
Les Leeaf37e392022-03-16 16:06:41 +0800111 "PlatformProperties",
maheshkkvd7996382024-11-04 19:57:59 -0800112 "android.net.wifi.flags-aconfig-java",
Manaswini Paluri527b4c02024-11-11 10:58:15 +0530113 "ranging_aconfig_flags_lib",
Nate Jiang8b6c1892025-02-03 19:35:11 +0000114 "android.security.flags-aconfig-java-export",
David Su5d01d6d2020-01-09 14:02:21 -0800115 ],
David Su4b3032f2019-09-04 14:31:58 -0700116 libs: [
Anton Hansson29a5afb2022-01-25 16:59:31 +0000117 "androidx.annotation_annotation",
David Subcdd4062020-01-09 18:09:56 -0800118 "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage
Les Leed0c76e42022-01-24 22:19:05 +0800119 "app-compat-annotations",
Nate Jiang8d6db832024-01-05 11:38:08 -0800120 // Add aconfig-annotations-lib as a dependency for the optimization
121 "aconfig-annotations-lib",
Zhi Dou48e2f0c2024-07-26 15:57:05 +0000122 // library for generated flag code read new storage
zhidoua50da372024-11-20 04:04:58 +0000123 "aconfig_storage_stub",
Jihoon Kang295dde82024-09-06 05:20:58 +0000124 "framework-configinfrastructure.stubs.module_lib",
David Su4b3032f2019-09-04 14:31:58 -0700125 ],
Remi NGUYEN VAN37237ba2021-01-14 16:44:22 +0900126 aidl: {
Siim Sammuld9c0aa82022-08-15 11:34:31 +0000127 generate_get_transaction_name: true,
Remi NGUYEN VAN37237ba2021-01-14 16:44:22 +0900128 include_dirs: [
Baligh Uddinf009d852021-05-22 13:20:05 +0000129 "packages/modules/Connectivity/framework/aidl-export",
Remi NGUYEN VAN37237ba2021-01-14 16:44:22 +0900130 ],
131 },
David Su4b3032f2019-09-04 14:31:58 -0700132 srcs: [
133 ":framework-wifi-updatable-sources",
David Su08f810e2020-12-09 10:40:18 -0800134 ":module-utils-os-aidls",
David Su4b3032f2019-09-04 14:31:58 -0700135 ],
David Su0c1d0c92020-10-26 11:12:04 -0700136}
137
138// wifi-service needs pre-jarjared version of framework-wifi so it can reference copied utility
139// classes before they are renamed.
140java_library {
141 name: "framework-wifi-pre-jarjar",
142 defaults: ["framework-wifi-defaults"],
143 sdk_version: "module_current",
Paul Duffindf9c33f2023-11-02 19:19:40 +0000144 libs: [
145 "framework-annotations-lib",
146 "framework-connectivity.stubs.module_lib",
Jihoon Kang201e81a2023-11-02 19:40:56 +0000147 "framework-location.stubs.module_lib",
Quang Anh Luong87bfcfa2024-03-06 16:32:57 +0900148 "framework-tethering.stubs.module_lib",
Paul Duffindf9c33f2023-11-02 19:19:40 +0000149 ],
David Su5d01d6d2020-01-09 14:02:21 -0800150 installable: false,
151 visibility: [
152 "//frameworks/opt/net/wifi/service",
153 "//frameworks/opt/net/wifi/tests/wifitests",
Baligh Uddine65d7662020-12-24 05:49:07 +0000154 "//packages/modules/Wifi/service",
155 "//packages/modules/Wifi/service/tests/wifitests",
David Su5d01d6d2020-01-09 14:02:21 -0800156 ],
157}
158
159// post-jarjar version of framework-wifi
Paul Duffind224b732020-05-13 20:33:29 +0100160java_sdk_library {
David Su5d01d6d2020-01-09 14:02:21 -0800161 name: "framework-wifi",
David Su9ca5d402020-06-10 12:39:07 -0700162 defaults: [
163 "framework-module-defaults",
David Su0c1d0c92020-10-26 11:12:04 -0700164 "framework-wifi-defaults",
Paul Duffind224b732020-05-13 20:33:29 +0100165 ],
166
Paul Duffindf9c33f2023-11-02 19:19:40 +0000167 impl_only_libs: [
168 "framework-connectivity.stubs.module_lib",
Quang Anh Luong87bfcfa2024-03-06 16:32:57 +0900169 "framework-location.stubs.module_lib",
170 "framework-tethering.stubs.module_lib",
Paul Duffindf9c33f2023-11-02 19:19:40 +0000171 ],
172
173 public: {
Xin Lib069bbc2024-01-29 13:04:16 -0800174 libs: [
Xin Lib069bbc2024-01-29 13:04:16 -0800175 "framework-connectivity.stubs",
Quang Anh Luong87bfcfa2024-03-06 16:32:57 +0900176 "framework-location.stubs",
177 "framework-tethering.stubs",
Xin Lib069bbc2024-01-29 13:04:16 -0800178 ],
Paul Duffindf9c33f2023-11-02 19:19:40 +0000179 },
180 system: {
Xin Lib069bbc2024-01-29 13:04:16 -0800181 libs: [
Xin Lib069bbc2024-01-29 13:04:16 -0800182 "framework-connectivity.stubs.system",
Quang Anh Luong87bfcfa2024-03-06 16:32:57 +0900183 "framework-location.stubs.system",
184 "framework-tethering.stubs.system",
Xin Lib069bbc2024-01-29 13:04:16 -0800185 ],
Paul Duffindf9c33f2023-11-02 19:19:40 +0000186 },
187 module_lib: {
Xin Lib069bbc2024-01-29 13:04:16 -0800188 libs: [
Xin Lib069bbc2024-01-29 13:04:16 -0800189 "framework-connectivity.stubs.module_lib",
Quang Anh Luong87bfcfa2024-03-06 16:32:57 +0900190 "framework-location.stubs.module_lib",
191 "framework-tethering.stubs.module_lib",
Xin Lib069bbc2024-01-29 13:04:16 -0800192 ],
Paul Duffindf9c33f2023-11-02 19:19:40 +0000193 },
Nate Jiang72c34c122023-11-17 23:44:29 +0000194 api_srcs: [
195 ":wifi_javadoc_only_files",
196 ],
Remi NGUYEN VAN37237ba2021-01-14 16:44:22 +0900197
David Su5d01d6d2020-01-09 14:02:21 -0800198 jarjar_rules: ":wifi-jarjar-rules",
199
David Su4b3032f2019-09-04 14:31:58 -0700200 installable: true,
201 optimize: {
Cole Faustefa0e572023-12-20 11:57:09 -0800202 enabled: false,
David Sudc878b82019-12-18 18:20:28 -0800203 },
Jiyong Parke954a152020-01-06 13:30:59 +0900204 hostdex: true, // for hiddenapi check
Paul Duffin4b3c6432020-05-31 11:32:06 +0100205
Paul Duffin4b3c6432020-05-31 11:32:06 +0100206 // Restrict access to implementation library.
207 impl_library_visibility: [
David Sudc878b82019-12-18 18:20:28 -0800208 "//frameworks/opt/net/wifi/service:__subpackages__",
Baligh Uddine65d7662020-12-24 05:49:07 +0000209 "//packages/modules/Wifi/service:__subpackages__",
Quang Luong79a07cf2021-12-13 12:11:39 -0800210 "//packages/modules/Wifi/WifiDialog:__subpackages__",
David Sudc878b82019-12-18 18:20:28 -0800211 ] + test_access_hidden_api_whitelist,
Paul Duffin4b3c6432020-05-31 11:32:06 +0100212
Jiyong Parke954a152020-01-06 13:30:59 +0900213 apex_available: [
214 "com.android.wifi",
215 "test_com.android.wifi",
216 ],
Vladimir Marko58338c42020-03-19 14:30:21 +0000217 permitted_packages: [
218 "android.hardware.wifi",
219 "android.net.wifi",
Paul Duffinbc41cb72020-05-28 14:55:44 +0100220 // Created by jarjar rules.
221 "com.android.wifi.x",
Vladimir Marko58338c42020-03-19 14:30:21 +0000222 ],
Nate Jiang71d75862021-05-26 13:09:09 -0700223 lint: {
224 strict_updatability_linting: true,
MÃ¥rten Kongstad1e65fd12024-06-20 09:05:57 +0200225 baseline_filename: "lint-baseline.xml",
Nate Jiang71d75862021-05-26 13:09:09 -0700226 },
David Su4b3032f2019-09-04 14:31:58 -0700227}
228
David Sudc878b82019-12-18 18:20:28 -0800229// defaults for tests that need to build against framework-wifi's @hide APIs
230java_defaults {
231 name: "framework-wifi-test-defaults",
David Su85ef0ad2020-11-25 10:55:11 -0800232 sdk_version: "core_current",
David Sudc878b82019-12-18 18:20:28 -0800233 libs: [
David Su8843a2d2020-01-07 19:47:28 -0800234 // order matters: classes in framework-wifi are resolved before framework, meaning
235 // @hide APIs in framework-wifi are resolved before @SystemApi stubs in framework
Paul Duffind224b732020-05-13 20:33:29 +0100236 "framework-wifi.impl",
David Su8843a2d2020-01-07 19:47:28 -0800237 "framework",
David Sudc878b82019-12-18 18:20:28 -0800238
239 // if sdk_version="" this gets automatically included, but here we need to add manually.
240 "framework-res",
241 ],
242 visibility: test_access_hidden_api_whitelist,
243}
David Su5d01d6d2020-01-09 14:02:21 -0800244
245filegroup {
246 name: "wifi-jarjar-rules",
247 srcs: ["jarjar-rules.txt"],
248}
Les Leed0c76e42022-01-24 22:19:05 +0800249
Cole Faustefa0e572023-12-20 11:57:09 -0800250platform_compat_config {
Les Leed0c76e42022-01-24 22:19:05 +0800251 name: "wifi-compat-config",
252 src: ":framework-wifi-pre-jarjar",
253}