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_applicable_licenses: ["Android-Apache-2.0"], 17} 18 19java_defaults { 20 name: "wifi-module-sdk-version-defaults", 21 min_sdk_version: "30", 22 target_sdk_version: "31", 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 ], 49} 50 51filegroup { 52 name: "framework-wifi-annotations", 53 srcs: ["java/android/net/wifi/WifiAnnotations.java"], 54} 55 56// list of tests that are allowed to access @hide APIs from framework-wifi 57test_access_hidden_api_whitelist = [ 58 "//frameworks/base/wifi/tests", 59 "//frameworks/base/wifi/non-updatable/tests", 60 "//frameworks/opt/net/wifi/tests/wifitests:__subpackages__", 61 62 "//packages/modules/Wifi/framework/tests", 63 "//packages/modules/Wifi/service/tests/wifitests:__subpackages__", 64 65 "//external/robolectric-shadows:__subpackages__", 66 "//frameworks/base/packages/SettingsLib/tests/integ", 67 "//external/sl4a:__subpackages__", 68] 69 70// defaults shared between `framework-wifi` & `framework-wifi-pre-jarjar` 71// java_sdk_library `framework-wifi` needs sources to generate stubs, so it cannot reuse 72// `framework-wifi-pre-jarjar` 73java_defaults { 74 name: "framework-wifi-defaults", 75 defaults: ["wifi-module-sdk-version-defaults"], 76 static_libs: [ 77 "framework-wifi-util-lib", 78 "android.hardware.wifi-V1.0-java-constants", 79 "modules-utils-build", 80 "modules-utils-os", 81 "androidx.annotation_annotation", 82 ], 83 libs: [ 84 "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage 85 "framework-connectivity.stubs.module_lib", 86 ], 87 aidl: { 88 include_dirs: [ 89 "packages/modules/Connectivity/framework/aidl-export", 90 ], 91 }, 92 srcs: [ 93 ":framework-wifi-updatable-sources", 94 ":module-utils-os-aidls", 95 ], 96} 97 98// wifi-service needs pre-jarjared version of framework-wifi so it can reference copied utility 99// classes before they are renamed. 100java_library { 101 name: "framework-wifi-pre-jarjar", 102 defaults: ["framework-wifi-defaults"], 103 sdk_version: "module_current", 104 libs: ["framework-annotations-lib"], 105 // java_api_finder must accompany `srcs` (`srcs` defined in `framework-wifi-defaults`) 106 plugins: ["java_api_finder"], 107 installable: false, 108 visibility: [ 109 "//frameworks/opt/net/wifi/service", 110 "//frameworks/opt/net/wifi/tests/wifitests", 111 "//packages/modules/Wifi/service", 112 "//packages/modules/Wifi/service/tests/wifitests", 113 ], 114} 115 116// post-jarjar version of framework-wifi 117java_sdk_library { 118 name: "framework-wifi", 119 defaults: [ 120 "framework-module-defaults", 121 "framework-wifi-defaults", 122 ], 123 124 stub_only_libs: ["framework-connectivity.stubs.module_lib"], 125 126 jarjar_rules: ":wifi-jarjar-rules", 127 128 installable: true, 129 optimize: { 130 enabled: false 131 }, 132 hostdex: true, // for hiddenapi check 133 134 // Restrict access to implementation library. 135 impl_library_visibility: [ 136 "//frameworks/opt/net/wifi/service:__subpackages__", 137 "//packages/modules/Wifi/service:__subpackages__", 138 ] + test_access_hidden_api_whitelist, 139 140 apex_available: [ 141 "com.android.wifi", 142 "test_com.android.wifi", 143 ], 144 permitted_packages: [ 145 "android.hardware.wifi", 146 "android.net.wifi", 147 // Created by jarjar rules. 148 "com.android.wifi.x", 149 ], 150 lint: { 151 strict_updatability_linting: true, 152 }, 153} 154 155// defaults for tests that need to build against framework-wifi's @hide APIs 156java_defaults { 157 name: "framework-wifi-test-defaults", 158 sdk_version: "core_current", 159 libs: [ 160 // order matters: classes in framework-wifi are resolved before framework, meaning 161 // @hide APIs in framework-wifi are resolved before @SystemApi stubs in framework 162 "framework-wifi.impl", 163 "framework", 164 165 // if sdk_version="" this gets automatically included, but here we need to add manually. 166 "framework-res", 167 ], 168 visibility: test_access_hidden_api_whitelist, 169} 170 171filegroup { 172 name: "wifi-jarjar-rules", 173 srcs: ["jarjar-rules.txt"], 174} 175