1// 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 15package { 16 default_team: "trendy_team_fwk_wifi_hal", 17 default_applicable_licenses: ["Android-Apache-2.0"], 18} 19 20java_defaults { 21 name: "wifi-module-sdk-version-defaults", 22 min_sdk_version: "30", 23} 24 25filegroup { 26 name: "framework-wifi-updatable-exported-aidl-sources", 27 srcs: ["aidl-export/**/*.aidl"], 28 path: "aidl-export", 29 visibility: ["//visibility:private"], 30} 31 32filegroup { 33 name: "framework-wifi-updatable-java-sources", 34 srcs: [ 35 "java/**/*.java", 36 "java/**/*.aidl", 37 ], 38 path: "java", 39 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", 47 ":module-utils-os-aidls", 48 ":wifi_framework_aconfig_flags_lib{.generated_srcjars}", 49 ], 50} 51 52filegroup { 53 name: "framework-wifi-annotations", 54 srcs: ["java/android/net/wifi/WifiAnnotations.java"], 55} 56 57filegroup { 58 name: "wifi_javadoc_only_files", 59 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", 64 ], 65 path: "java/android/net/wifi", 66} 67 68// list of tests that are allowed to access @hide APIs from framework-wifi 69test_access_hidden_api_whitelist = [ 70 "//frameworks/base/wifi/tests", 71 "//frameworks/base/wifi/non-updatable/tests", 72 "//frameworks/opt/net/wifi/tests/wifitests:__subpackages__", 73 74 "//packages/modules/Wifi/framework/tests", 75 "//packages/modules/Wifi/service/tests/wifitests:__subpackages__", 76 77 "//external/robolectric-shadows:__subpackages__", 78 "//frameworks/base/packages/SettingsLib/tests/integ", 79 "//external/sl4a:__subpackages__", 80] 81 82java_library { 83 name: "wifi-modules-utils", 84 sdk_version: "module_current", 85 min_sdk_version: "30", 86 static_libs: [ 87 "modules-utils-build", 88 "modules-utils-handlerexecutor", 89 "modules-utils-list-slice", 90 "modules-utils-preconditions", 91 "modules-utils-shell-command-handler", 92 "modules-utils-statemachine", 93 ], 94 apex_available: [ 95 "com.android.wifi", 96 "test_com.android.wifi", 97 ], 98} 99 100// 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", 105 defaults: ["wifi-module-sdk-version-defaults"], 106 static_libs: [ 107 "framework-wifi-util-lib", 108 "android.hardware.wifi-V1.0-java-constants", 109 "wifi-modules-utils", 110 "PlatformProperties", 111 ], 112 libs: [ 113 "androidx.annotation_annotation", 114 "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage 115 "app-compat-annotations", 116 // Add aconfig-annotations-lib as a dependency for the optimization 117 "aconfig-annotations-lib", 118 "framework-configinfrastructure", 119 ], 120 aidl: { 121 generate_get_transaction_name: true, 122 include_dirs: [ 123 "packages/modules/Connectivity/framework/aidl-export", 124 ], 125 }, 126 srcs: [ 127 ":framework-wifi-updatable-sources", 128 ":module-utils-os-aidls", 129 ], 130} 131 132// wifi-service needs pre-jarjared version of framework-wifi so it can reference copied utility 133// classes before they are renamed. 134java_library { 135 name: "framework-wifi-pre-jarjar", 136 defaults: ["framework-wifi-defaults"], 137 sdk_version: "module_current", 138 libs: [ 139 "framework-annotations-lib", 140 "framework-connectivity.stubs.module_lib", 141 "framework-location.stubs.module_lib", 142 "framework-tethering.stubs.module_lib", 143 ], 144 installable: false, 145 visibility: [ 146 "//frameworks/opt/net/wifi/service", 147 "//frameworks/opt/net/wifi/tests/wifitests", 148 "//packages/modules/Wifi/service", 149 "//packages/modules/Wifi/service/tests/wifitests", 150 ], 151} 152 153// post-jarjar version of framework-wifi 154java_sdk_library { 155 name: "framework-wifi", 156 defaults: [ 157 "framework-module-defaults", 158 "framework-wifi-defaults", 159 ], 160 161 impl_only_libs: [ 162 "framework-connectivity.stubs.module_lib", 163 "framework-location.stubs.module_lib", 164 "framework-tethering.stubs.module_lib", 165 ], 166 167 public: { 168 libs: [ 169 "framework-connectivity.stubs", 170 "framework-location.stubs", 171 "framework-tethering.stubs", 172 ], 173 }, 174 system: { 175 libs: [ 176 "framework-connectivity.stubs.system", 177 "framework-location.stubs.system", 178 "framework-tethering.stubs.system", 179 ], 180 }, 181 module_lib: { 182 libs: [ 183 "framework-connectivity.stubs.module_lib", 184 "framework-location.stubs.module_lib", 185 "framework-tethering.stubs.module_lib", 186 ], 187 }, 188 api_srcs: [ 189 ":wifi_javadoc_only_files", 190 ], 191 192 jarjar_rules: ":wifi-jarjar-rules", 193 194 installable: true, 195 optimize: { 196 enabled: false, 197 }, 198 hostdex: true, // for hiddenapi check 199 200 // Restrict access to implementation library. 201 impl_library_visibility: [ 202 "//frameworks/opt/net/wifi/service:__subpackages__", 203 "//packages/modules/Wifi/service:__subpackages__", 204 "//packages/modules/Wifi/WifiDialog:__subpackages__", 205 ] + test_access_hidden_api_whitelist, 206 207 apex_available: [ 208 "com.android.wifi", 209 "test_com.android.wifi", 210 ], 211 permitted_packages: [ 212 "android.hardware.wifi", 213 "android.net.wifi", 214 // Created by jarjar rules. 215 "com.android.wifi.x", 216 ], 217 lint: { 218 strict_updatability_linting: true, 219 220 }, 221} 222 223// defaults for tests that need to build against framework-wifi's @hide APIs 224java_defaults { 225 name: "framework-wifi-test-defaults", 226 sdk_version: "core_current", 227 libs: [ 228 // order matters: classes in framework-wifi are resolved before framework, meaning 229 // @hide APIs in framework-wifi are resolved before @SystemApi stubs in framework 230 "framework-wifi.impl", 231 "framework", 232 233 // if sdk_version="" this gets automatically included, but here we need to add manually. 234 "framework-res", 235 ], 236 visibility: test_access_hidden_api_whitelist, 237} 238 239filegroup { 240 name: "wifi-jarjar-rules", 241 srcs: ["jarjar-rules.txt"], 242} 243 244platform_compat_config { 245 name: "wifi-compat-config", 246 src: ":framework-wifi-pre-jarjar", 247} 248