blob: 0730f28ff908368d3e3cfec0177860feb2459c73 [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",
William Escande7dca68d2021-09-20 19:54:45 +020076 "modules-utils-handlerexecutor",
William Escande4367f1e2021-09-03 17:02:38 +020077 "modules-utils-list-slice",
78 "modules-utils-preconditions",
William Escande7dca68d2021-09-20 19:54:45 +020079 "modules-utils-shell-command-handler",
80 "modules-utils-statemachine",
William Escande4367f1e2021-09-03 17:02:38 +020081 ],
82 apex_available: [
83 "com.android.wifi",
84 "test_com.android.wifi",
85 ],
86}
87
David Su0c1d0c92020-10-26 11:12:04 -070088// defaults shared between `framework-wifi` & `framework-wifi-pre-jarjar`
89// java_sdk_library `framework-wifi` needs sources to generate stubs, so it cannot reuse
90// `framework-wifi-pre-jarjar`
91java_defaults {
92 name: "framework-wifi-defaults",
David Su9ca5d402020-06-10 12:39:07 -070093 defaults: ["wifi-module-sdk-version-defaults"],
David Su5d01d6d2020-01-09 14:02:21 -080094 static_libs: [
95 "framework-wifi-util-lib",
David Subcdd4062020-01-09 18:09:56 -080096 "android.hardware.wifi-V1.0-java-constants",
Quang Luonga9d92d92021-04-30 15:57:00 -070097 "androidx.annotation_annotation",
William Escande4367f1e2021-09-03 17:02:38 +020098 "wifi-modules-utils",
David Su5d01d6d2020-01-09 14:02:21 -080099 ],
David Su4b3032f2019-09-04 14:31:58 -0700100 libs: [
David Subcdd4062020-01-09 18:09:56 -0800101 "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage
Remi NGUYEN VANae6f9b72021-03-24 23:04:02 +0900102 "framework-connectivity.stubs.module_lib",
David Su4b3032f2019-09-04 14:31:58 -0700103 ],
Remi NGUYEN VAN37237ba2021-01-14 16:44:22 +0900104 aidl: {
105 include_dirs: [
Baligh Uddinf009d852021-05-22 13:20:05 +0000106 "packages/modules/Connectivity/framework/aidl-export",
Remi NGUYEN VAN37237ba2021-01-14 16:44:22 +0900107 ],
108 },
David Su4b3032f2019-09-04 14:31:58 -0700109 srcs: [
110 ":framework-wifi-updatable-sources",
David Su08f810e2020-12-09 10:40:18 -0800111 ":module-utils-os-aidls",
David Su4b3032f2019-09-04 14:31:58 -0700112 ],
David Su0c1d0c92020-10-26 11:12:04 -0700113}
114
115// wifi-service needs pre-jarjared version of framework-wifi so it can reference copied utility
116// classes before they are renamed.
117java_library {
118 name: "framework-wifi-pre-jarjar",
119 defaults: ["framework-wifi-defaults"],
120 sdk_version: "module_current",
121 libs: ["framework-annotations-lib"],
122 // java_api_finder must accompany `srcs` (`srcs` defined in `framework-wifi-defaults`)
David Su3baa0672020-01-21 16:45:50 -0800123 plugins: ["java_api_finder"],
David Su5d01d6d2020-01-09 14:02:21 -0800124 installable: false,
125 visibility: [
126 "//frameworks/opt/net/wifi/service",
127 "//frameworks/opt/net/wifi/tests/wifitests",
Baligh Uddine65d7662020-12-24 05:49:07 +0000128 "//packages/modules/Wifi/service",
129 "//packages/modules/Wifi/service/tests/wifitests",
David Su5d01d6d2020-01-09 14:02:21 -0800130 ],
131}
132
133// post-jarjar version of framework-wifi
Paul Duffind224b732020-05-13 20:33:29 +0100134java_sdk_library {
David Su5d01d6d2020-01-09 14:02:21 -0800135 name: "framework-wifi",
David Su9ca5d402020-06-10 12:39:07 -0700136 defaults: [
137 "framework-module-defaults",
David Su0c1d0c92020-10-26 11:12:04 -0700138 "framework-wifi-defaults",
Paul Duffind224b732020-05-13 20:33:29 +0100139 ],
140
Remi NGUYEN VANae6f9b72021-03-24 23:04:02 +0900141 stub_only_libs: ["framework-connectivity.stubs.module_lib"],
Remi NGUYEN VAN37237ba2021-01-14 16:44:22 +0900142
David Su5d01d6d2020-01-09 14:02:21 -0800143 jarjar_rules: ":wifi-jarjar-rules",
144
David Su4b3032f2019-09-04 14:31:58 -0700145 installable: true,
146 optimize: {
147 enabled: false
David Sudc878b82019-12-18 18:20:28 -0800148 },
Jiyong Parke954a152020-01-06 13:30:59 +0900149 hostdex: true, // for hiddenapi check
Paul Duffin4b3c6432020-05-31 11:32:06 +0100150
Paul Duffin4b3c6432020-05-31 11:32:06 +0100151 // Restrict access to implementation library.
152 impl_library_visibility: [
David Sudc878b82019-12-18 18:20:28 -0800153 "//frameworks/opt/net/wifi/service:__subpackages__",
Baligh Uddine65d7662020-12-24 05:49:07 +0000154 "//packages/modules/Wifi/service:__subpackages__",
David Sudc878b82019-12-18 18:20:28 -0800155 ] + test_access_hidden_api_whitelist,
Paul Duffin4b3c6432020-05-31 11:32:06 +0100156
Jiyong Parke954a152020-01-06 13:30:59 +0900157 apex_available: [
158 "com.android.wifi",
159 "test_com.android.wifi",
160 ],
Vladimir Marko58338c42020-03-19 14:30:21 +0000161 permitted_packages: [
162 "android.hardware.wifi",
163 "android.net.wifi",
Paul Duffinbc41cb72020-05-28 14:55:44 +0100164 // Created by jarjar rules.
165 "com.android.wifi.x",
Vladimir Marko58338c42020-03-19 14:30:21 +0000166 ],
Nate Jiang71d75862021-05-26 13:09:09 -0700167 lint: {
168 strict_updatability_linting: true,
169 },
David Su4b3032f2019-09-04 14:31:58 -0700170}
171
David Sudc878b82019-12-18 18:20:28 -0800172// defaults for tests that need to build against framework-wifi's @hide APIs
173java_defaults {
174 name: "framework-wifi-test-defaults",
David Su85ef0ad2020-11-25 10:55:11 -0800175 sdk_version: "core_current",
David Sudc878b82019-12-18 18:20:28 -0800176 libs: [
David Su8843a2d2020-01-07 19:47:28 -0800177 // order matters: classes in framework-wifi are resolved before framework, meaning
178 // @hide APIs in framework-wifi are resolved before @SystemApi stubs in framework
Paul Duffind224b732020-05-13 20:33:29 +0100179 "framework-wifi.impl",
David Su8843a2d2020-01-07 19:47:28 -0800180 "framework",
David Sudc878b82019-12-18 18:20:28 -0800181
182 // if sdk_version="" this gets automatically included, but here we need to add manually.
183 "framework-res",
184 ],
185 visibility: test_access_hidden_api_whitelist,
186}
David Su5d01d6d2020-01-09 14:02:21 -0800187
188filegroup {
189 name: "wifi-jarjar-rules",
190 srcs: ["jarjar-rules.txt"],
191}