blob: bc705212ee5dd268635e718dd011cce305421b4e [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
David Su9ca5d402020-06-10 12:39:07 -070015java_defaults {
16 name: "wifi-module-sdk-version-defaults",
17 min_sdk_version: "30",
18 target_sdk_version: "30",
19}
20
David Su005f8902020-01-21 11:23:00 -080021filegroup {
22 name: "framework-wifi-updatable-exported-aidl-sources",
23 srcs: ["aidl-export/**/*.aidl"],
24 path: "aidl-export",
25 visibility: ["//visibility:private"],
26}
David Su4b3032f2019-09-04 14:31:58 -070027
28filegroup {
David Su005f8902020-01-21 11:23:00 -080029 name: "framework-wifi-updatable-java-sources",
David Su4b3032f2019-09-04 14:31:58 -070030 srcs: [
31 "java/**/*.java",
32 "java/**/*.aidl",
33 ],
David Su4b3032f2019-09-04 14:31:58 -070034 path: "java",
David Su005f8902020-01-21 11:23:00 -080035 visibility: ["//visibility:private"],
36}
37
38filegroup {
39 name: "framework-wifi-updatable-sources",
40 srcs: [
41 ":framework-wifi-updatable-java-sources",
42 ":framework-wifi-updatable-exported-aidl-sources",
43 ],
David Su4b3032f2019-09-04 14:31:58 -070044}
45
46filegroup {
David Su414e9092019-12-14 21:37:20 -080047 name: "framework-wifi-annotations",
48 srcs: ["java/android/net/wifi/WifiAnnotations.java"],
49}
50
David Sudc878b82019-12-18 18:20:28 -080051// list of tests that are allowed to access @hide APIs from framework-wifi
52test_access_hidden_api_whitelist = [
53 "//frameworks/base/wifi/tests",
David Su5296cba2020-12-03 14:28:24 -080054 "//frameworks/base/wifi/non-updatable/tests",
David Sudc878b82019-12-18 18:20:28 -080055 "//frameworks/opt/net/wifi/tests/wifitests:__subpackages__",
David Sue36d77e2019-12-18 21:22:21 -080056
Baligh Uddind5af8cf2020-12-23 04:04:00 +000057 "//packages/modules/Wifi/framework/tests",
58 "//packages/modules/Wifi/service/tests/wifitests:__subpackages__",
59
David Sucd246f72020-01-07 13:01:30 -080060 "//external/robolectric-shadows:__subpackages__",
David Sud9ab8ff2020-01-06 15:24:42 -080061 "//frameworks/base/packages/SettingsLib/tests/integ",
David Su16cbcd12020-01-11 16:22:00 -080062 "//external/sl4a:__subpackages__",
Anton Hansson08798562020-07-21 10:20:06 +010063 "//packages/apps/Settings/tests/robotests", // TODO(b/161767237): remove
David Sudc878b82019-12-18 18:20:28 -080064]
65
David Sue15e6652020-10-26 11:12:04 -070066// defaults shared between `framework-wifi` & `framework-wifi-pre-jarjar`
67// java_sdk_library `framework-wifi` needs sources to generate stubs, so it cannot reuse
68// `framework-wifi-pre-jarjar`
69java_defaults {
70 name: "framework-wifi-defaults",
David Su9ca5d402020-06-10 12:39:07 -070071 defaults: ["wifi-module-sdk-version-defaults"],
David Su5d01d6d2020-01-09 14:02:21 -080072 static_libs: [
73 "framework-wifi-util-lib",
David Subcdd4062020-01-09 18:09:56 -080074 "android.hardware.wifi-V1.0-java-constants",
David Sue15e6652020-10-26 11:12:04 -070075 "modules-utils-build",
David Su5d01d6d2020-01-09 14:02:21 -080076 ],
David Su4b3032f2019-09-04 14:31:58 -070077 libs: [
David Subcdd4062020-01-09 18:09:56 -080078 "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage
David Su4b3032f2019-09-04 14:31:58 -070079 ],
80 srcs: [
81 ":framework-wifi-updatable-sources",
David Su88c4f1b2020-02-10 15:58:26 -080082 ":framework-wifi-util-lib-aidls",
David Su4b3032f2019-09-04 14:31:58 -070083 ],
David Sue15e6652020-10-26 11:12:04 -070084}
85
86// wifi-service needs pre-jarjared version of framework-wifi so it can reference copied utility
87// classes before they are renamed.
88java_library {
89 name: "framework-wifi-pre-jarjar",
90 defaults: ["framework-wifi-defaults"],
91 sdk_version: "module_current",
92 libs: ["framework-annotations-lib"],
93 // java_api_finder must accompany `srcs` (`srcs` defined in `framework-wifi-defaults`)
David Su3baa0672020-01-21 16:45:50 -080094 plugins: ["java_api_finder"],
David Su5d01d6d2020-01-09 14:02:21 -080095 installable: false,
96 visibility: [
97 "//frameworks/opt/net/wifi/service",
98 "//frameworks/opt/net/wifi/tests/wifitests",
Baligh Uddine65d7662020-12-24 05:49:07 +000099 "//packages/modules/Wifi/service",
100 "//packages/modules/Wifi/service/tests/wifitests",
David Su5d01d6d2020-01-09 14:02:21 -0800101 ],
102}
103
104// post-jarjar version of framework-wifi
Paul Duffind224b732020-05-13 20:33:29 +0100105java_sdk_library {
David Su5d01d6d2020-01-09 14:02:21 -0800106 name: "framework-wifi",
David Su9ca5d402020-06-10 12:39:07 -0700107 defaults: [
108 "framework-module-defaults",
David Sue15e6652020-10-26 11:12:04 -0700109 "framework-wifi-defaults",
Paul Duffind224b732020-05-13 20:33:29 +0100110 ],
111
David Su5d01d6d2020-01-09 14:02:21 -0800112 jarjar_rules: ":wifi-jarjar-rules",
113
David Su4b3032f2019-09-04 14:31:58 -0700114 installable: true,
115 optimize: {
116 enabled: false
David Sudc878b82019-12-18 18:20:28 -0800117 },
Jiyong Parke954a152020-01-06 13:30:59 +0900118 hostdex: true, // for hiddenapi check
Paul Duffin4b3c6432020-05-31 11:32:06 +0100119
Paul Duffin4b3c6432020-05-31 11:32:06 +0100120 // Restrict access to implementation library.
121 impl_library_visibility: [
David Sudc878b82019-12-18 18:20:28 -0800122 "//frameworks/opt/net/wifi/service:__subpackages__",
Baligh Uddine65d7662020-12-24 05:49:07 +0000123 "//packages/modules/Wifi/service:__subpackages__",
David Sudc878b82019-12-18 18:20:28 -0800124 ] + test_access_hidden_api_whitelist,
Paul Duffin4b3c6432020-05-31 11:32:06 +0100125
Jiyong Parke954a152020-01-06 13:30:59 +0900126 apex_available: [
127 "com.android.wifi",
128 "test_com.android.wifi",
129 ],
Vladimir Marko58338c42020-03-19 14:30:21 +0000130 permitted_packages: [
131 "android.hardware.wifi",
132 "android.net.wifi",
Paul Duffinbc41cb72020-05-28 14:55:44 +0100133 // Created by jarjar rules.
134 "com.android.wifi.x",
Vladimir Marko58338c42020-03-19 14:30:21 +0000135 ],
David Su4b3032f2019-09-04 14:31:58 -0700136}
137
David Sudc878b82019-12-18 18:20:28 -0800138// defaults for tests that need to build against framework-wifi's @hide APIs
139java_defaults {
140 name: "framework-wifi-test-defaults",
141 sdk_version: "core_platform", // tests can use @CorePlatformApi's
142 libs: [
David Su8843a2d2020-01-07 19:47:28 -0800143 // order matters: classes in framework-wifi are resolved before framework, meaning
144 // @hide APIs in framework-wifi are resolved before @SystemApi stubs in framework
Paul Duffind224b732020-05-13 20:33:29 +0100145 "framework-wifi.impl",
David Su8843a2d2020-01-07 19:47:28 -0800146 "framework",
David Sudc878b82019-12-18 18:20:28 -0800147
148 // if sdk_version="" this gets automatically included, but here we need to add manually.
149 "framework-res",
150 ],
151 visibility: test_access_hidden_api_whitelist,
152}
David Su5d01d6d2020-01-09 14:02:21 -0800153
154filegroup {
155 name: "wifi-jarjar-rules",
156 srcs: ["jarjar-rules.txt"],
157}