blob: 5382c46d6381ec00ba184c5a35038ae24014a836 [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",
Nate Jiangf64ed822021-07-02 17:16:48 -070022 target_sdk_version: "31",
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",
44 srcs: [
45 ":framework-wifi-updatable-java-sources",
46 ":framework-wifi-updatable-exported-aidl-sources",
David Su08f810e2020-12-09 10:40:18 -080047 ":module-utils-os-aidls",
David Su005f8902020-01-21 11:23:00 -080048 ],
David Su4b3032f2019-09-04 14:31:58 -070049}
50
51filegroup {
David Su414e9092019-12-14 21:37:20 -080052 name: "framework-wifi-annotations",
53 srcs: ["java/android/net/wifi/WifiAnnotations.java"],
54}
55
David Sudc878b82019-12-18 18:20:28 -080056// list of tests that are allowed to access @hide APIs from framework-wifi
57test_access_hidden_api_whitelist = [
58 "//frameworks/base/wifi/tests",
David Su00bb68f2020-12-03 14:28:24 -080059 "//frameworks/base/wifi/non-updatable/tests",
David Sudc878b82019-12-18 18:20:28 -080060 "//frameworks/opt/net/wifi/tests/wifitests:__subpackages__",
David Sue36d77e2019-12-18 21:22:21 -080061
Baligh Uddind5af8cf2020-12-23 04:04:00 +000062 "//packages/modules/Wifi/framework/tests",
63 "//packages/modules/Wifi/service/tests/wifitests:__subpackages__",
64
David Sucd246f72020-01-07 13:01:30 -080065 "//external/robolectric-shadows:__subpackages__",
David Sud9ab8ff2020-01-06 15:24:42 -080066 "//frameworks/base/packages/SettingsLib/tests/integ",
David Su16cbcd12020-01-11 16:22:00 -080067 "//external/sl4a:__subpackages__",
David Sudc878b82019-12-18 18:20:28 -080068]
69
William Escande4367f1e2021-09-03 17:02:38 +020070java_library {
71 name: "wifi-modules-utils",
72 sdk_version: "module_current",
73 min_sdk_version: "30",
74 static_libs: [
75 "modules-utils-build",
76 "modules-utils-shell-command-handler",
77 "modules-utils-list-slice",
78 "modules-utils-preconditions",
79 "modules-utils-handlerexecutor",
80 ],
81 apex_available: [
82 "com.android.wifi",
83 "test_com.android.wifi",
84 ],
85}
86
David Su0c1d0c92020-10-26 11:12:04 -070087// defaults shared between `framework-wifi` & `framework-wifi-pre-jarjar`
88// java_sdk_library `framework-wifi` needs sources to generate stubs, so it cannot reuse
89// `framework-wifi-pre-jarjar`
90java_defaults {
91 name: "framework-wifi-defaults",
David Su9ca5d402020-06-10 12:39:07 -070092 defaults: ["wifi-module-sdk-version-defaults"],
David Su5d01d6d2020-01-09 14:02:21 -080093 static_libs: [
94 "framework-wifi-util-lib",
David Subcdd4062020-01-09 18:09:56 -080095 "android.hardware.wifi-V1.0-java-constants",
Quang Luonga9d92d92021-04-30 15:57:00 -070096 "androidx.annotation_annotation",
William Escande4367f1e2021-09-03 17:02:38 +020097 "wifi-modules-utils",
David Su5d01d6d2020-01-09 14:02:21 -080098 ],
David Su4b3032f2019-09-04 14:31:58 -070099 libs: [
David Subcdd4062020-01-09 18:09:56 -0800100 "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage
Remi NGUYEN VANae6f9b72021-03-24 23:04:02 +0900101 "framework-connectivity.stubs.module_lib",
David Su4b3032f2019-09-04 14:31:58 -0700102 ],
Remi NGUYEN VAN37237ba2021-01-14 16:44:22 +0900103 aidl: {
104 include_dirs: [
Baligh Uddinf009d852021-05-22 13:20:05 +0000105 "packages/modules/Connectivity/framework/aidl-export",
Remi NGUYEN VAN37237ba2021-01-14 16:44:22 +0900106 ],
107 },
David Su4b3032f2019-09-04 14:31:58 -0700108 srcs: [
109 ":framework-wifi-updatable-sources",
David Su08f810e2020-12-09 10:40:18 -0800110 ":module-utils-os-aidls",
David Su4b3032f2019-09-04 14:31:58 -0700111 ],
David Su0c1d0c92020-10-26 11:12:04 -0700112}
113
114// wifi-service needs pre-jarjared version of framework-wifi so it can reference copied utility
115// classes before they are renamed.
116java_library {
117 name: "framework-wifi-pre-jarjar",
118 defaults: ["framework-wifi-defaults"],
119 sdk_version: "module_current",
120 libs: ["framework-annotations-lib"],
121 // java_api_finder must accompany `srcs` (`srcs` defined in `framework-wifi-defaults`)
David Su3baa0672020-01-21 16:45:50 -0800122 plugins: ["java_api_finder"],
David Su5d01d6d2020-01-09 14:02:21 -0800123 installable: false,
124 visibility: [
125 "//frameworks/opt/net/wifi/service",
126 "//frameworks/opt/net/wifi/tests/wifitests",
Baligh Uddine65d7662020-12-24 05:49:07 +0000127 "//packages/modules/Wifi/service",
128 "//packages/modules/Wifi/service/tests/wifitests",
David Su5d01d6d2020-01-09 14:02:21 -0800129 ],
130}
131
132// post-jarjar version of framework-wifi
Paul Duffind224b732020-05-13 20:33:29 +0100133java_sdk_library {
David Su5d01d6d2020-01-09 14:02:21 -0800134 name: "framework-wifi",
David Su9ca5d402020-06-10 12:39:07 -0700135 defaults: [
136 "framework-module-defaults",
David Su0c1d0c92020-10-26 11:12:04 -0700137 "framework-wifi-defaults",
Paul Duffind224b732020-05-13 20:33:29 +0100138 ],
139
Remi NGUYEN VANae6f9b72021-03-24 23:04:02 +0900140 stub_only_libs: ["framework-connectivity.stubs.module_lib"],
Remi NGUYEN VAN37237ba2021-01-14 16:44:22 +0900141
David Su5d01d6d2020-01-09 14:02:21 -0800142 jarjar_rules: ":wifi-jarjar-rules",
143
David Su4b3032f2019-09-04 14:31:58 -0700144 installable: true,
145 optimize: {
146 enabled: false
David Sudc878b82019-12-18 18:20:28 -0800147 },
Jiyong Parke954a152020-01-06 13:30:59 +0900148 hostdex: true, // for hiddenapi check
Paul Duffin4b3c6432020-05-31 11:32:06 +0100149
Paul Duffin4b3c6432020-05-31 11:32:06 +0100150 // Restrict access to implementation library.
151 impl_library_visibility: [
David Sudc878b82019-12-18 18:20:28 -0800152 "//frameworks/opt/net/wifi/service:__subpackages__",
Baligh Uddine65d7662020-12-24 05:49:07 +0000153 "//packages/modules/Wifi/service:__subpackages__",
David Sudc878b82019-12-18 18:20:28 -0800154 ] + test_access_hidden_api_whitelist,
Paul Duffin4b3c6432020-05-31 11:32:06 +0100155
Jiyong Parke954a152020-01-06 13:30:59 +0900156 apex_available: [
157 "com.android.wifi",
158 "test_com.android.wifi",
159 ],
Vladimir Marko58338c42020-03-19 14:30:21 +0000160 permitted_packages: [
161 "android.hardware.wifi",
162 "android.net.wifi",
Paul Duffinbc41cb72020-05-28 14:55:44 +0100163 // Created by jarjar rules.
164 "com.android.wifi.x",
Vladimir Marko58338c42020-03-19 14:30:21 +0000165 ],
Nate Jiang71d75862021-05-26 13:09:09 -0700166 lint: {
167 strict_updatability_linting: true,
168 },
David Su4b3032f2019-09-04 14:31:58 -0700169}
170
David Sudc878b82019-12-18 18:20:28 -0800171// defaults for tests that need to build against framework-wifi's @hide APIs
172java_defaults {
173 name: "framework-wifi-test-defaults",
David Su85ef0ad2020-11-25 10:55:11 -0800174 sdk_version: "core_current",
David Sudc878b82019-12-18 18:20:28 -0800175 libs: [
David Su8843a2d2020-01-07 19:47:28 -0800176 // order matters: classes in framework-wifi are resolved before framework, meaning
177 // @hide APIs in framework-wifi are resolved before @SystemApi stubs in framework
Paul Duffind224b732020-05-13 20:33:29 +0100178 "framework-wifi.impl",
David Su8843a2d2020-01-07 19:47:28 -0800179 "framework",
David Sudc878b82019-12-18 18:20:28 -0800180
181 // if sdk_version="" this gets automatically included, but here we need to add manually.
182 "framework-res",
183 ],
184 visibility: test_access_hidden_api_whitelist,
185}
David Su5d01d6d2020-01-09 14:02:21 -0800186
187filegroup {
188 name: "wifi-jarjar-rules",
189 srcs: ["jarjar-rules.txt"],
190}