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 device_common_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 "net-utils-framework-wifi", 109 "android.hardware.wifi-V1.0-java-constants", 110 "wifi-modules-utils", 111 "PlatformProperties", 112 "android.net.wifi.flags-aconfig-java", 113 "ranging_aconfig_flags_lib", 114 ], 115 libs: [ 116 "androidx.annotation_annotation", 117 "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage 118 "app-compat-annotations", 119 // Add aconfig-annotations-lib as a dependency for the optimization 120 "aconfig-annotations-lib", 121 // library for generated flag code read new storage 122 "aconfig_storage_stub", 123 "framework-configinfrastructure.stubs.module_lib", 124 "android.security.flags-aconfig-java-export", 125 ], 126 aidl: { 127 generate_get_transaction_name: true, 128 include_dirs: [ 129 "packages/modules/Connectivity/framework/aidl-export", 130 ], 131 }, 132 srcs: [ 133 ":framework-wifi-updatable-sources", 134 ":module-utils-os-aidls", 135 ], 136} 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", 144 libs: [ 145 "framework-annotations-lib", 146 "framework-connectivity.stubs.module_lib", 147 "framework-location.stubs.module_lib", 148 "framework-tethering.stubs.module_lib", 149 ], 150 installable: false, 151 visibility: [ 152 "//frameworks/opt/net/wifi/service", 153 "//frameworks/opt/net/wifi/tests/wifitests", 154 "//packages/modules/Wifi/service", 155 "//packages/modules/Wifi/service/tests/wifitests", 156 ], 157} 158 159// post-jarjar version of framework-wifi 160java_sdk_library { 161 name: "framework-wifi", 162 defaults: [ 163 "framework-module-defaults", 164 "framework-wifi-defaults", 165 ], 166 167 impl_only_libs: [ 168 "framework-connectivity.stubs.module_lib", 169 "framework-location.stubs.module_lib", 170 "framework-tethering.stubs.module_lib", 171 ], 172 173 public: { 174 libs: [ 175 "framework-connectivity.stubs", 176 "framework-location.stubs", 177 "framework-tethering.stubs", 178 ], 179 }, 180 system: { 181 libs: [ 182 "framework-connectivity.stubs.system", 183 "framework-location.stubs.system", 184 "framework-tethering.stubs.system", 185 ], 186 }, 187 module_lib: { 188 libs: [ 189 "framework-connectivity.stubs.module_lib", 190 "framework-location.stubs.module_lib", 191 "framework-tethering.stubs.module_lib", 192 ], 193 }, 194 api_srcs: [ 195 ":wifi_javadoc_only_files", 196 ], 197 198 jarjar_rules: ":wifi-jarjar-rules", 199 200 installable: true, 201 optimize: { 202 enabled: false, 203 }, 204 hostdex: true, // for hiddenapi check 205 206 // Restrict access to implementation library. 207 impl_library_visibility: [ 208 "//frameworks/opt/net/wifi/service:__subpackages__", 209 "//packages/modules/Wifi/service:__subpackages__", 210 "//packages/modules/Wifi/WifiDialog:__subpackages__", 211 ] + test_access_hidden_api_whitelist, 212 213 apex_available: [ 214 "com.android.wifi", 215 "test_com.android.wifi", 216 ], 217 permitted_packages: [ 218 "android.hardware.wifi", 219 "android.net.wifi", 220 // Created by jarjar rules. 221 "com.android.wifi.x", 222 ], 223 lint: { 224 strict_updatability_linting: true, 225 baseline_filename: "lint-baseline.xml", 226 }, 227} 228 229// defaults for tests that need to build against framework-wifi's @hide APIs 230java_defaults { 231 name: "framework-wifi-test-defaults", 232 sdk_version: "core_current", 233 libs: [ 234 // order matters: classes in framework-wifi are resolved before framework, meaning 235 // @hide APIs in framework-wifi are resolved before @SystemApi stubs in framework 236 "framework-wifi.impl", 237 "framework", 238 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} 244 245filegroup { 246 name: "wifi-jarjar-rules", 247 srcs: ["jarjar-rules.txt"], 248} 249 250platform_compat_config { 251 name: "wifi-compat-config", 252 src: ":framework-wifi-pre-jarjar", 253} 254