|  | // Copyright (C) 2019 The Android Open Source Project | 
|  | // | 
|  | // Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | // you may not use this file except in compliance with the License. | 
|  | // You may obtain a copy of the License at | 
|  | // | 
|  | //      http://www.apache.org/licenses/LICENSE-2.0 | 
|  | // | 
|  | // Unless required by applicable law or agreed to in writing, software | 
|  | // distributed under the License is distributed on an "AS IS" BASIS, | 
|  | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | // See the License for the specific language governing permissions and | 
|  | // limitations under the License. | 
|  |  | 
|  | java_defaults { | 
|  | name: "wifi-module-sdk-version-defaults", | 
|  | min_sdk_version: "30", | 
|  | target_sdk_version: "30", | 
|  | } | 
|  |  | 
|  | filegroup { | 
|  | name: "framework-wifi-updatable-exported-aidl-sources", | 
|  | srcs: ["aidl-export/**/*.aidl"], | 
|  | path: "aidl-export", | 
|  | visibility: ["//visibility:private"], | 
|  | } | 
|  |  | 
|  | filegroup { | 
|  | name: "framework-wifi-updatable-java-sources", | 
|  | srcs: [ | 
|  | "java/**/*.java", | 
|  | "java/**/*.aidl", | 
|  | ], | 
|  | exclude_srcs: [ | 
|  | ":framework-wifi-non-updatable-sources" | 
|  | ], | 
|  | path: "java", | 
|  | visibility: ["//visibility:private"], | 
|  | } | 
|  |  | 
|  | filegroup { | 
|  | name: "framework-wifi-updatable-sources", | 
|  | srcs: [ | 
|  | ":framework-wifi-updatable-java-sources", | 
|  | ":framework-wifi-updatable-exported-aidl-sources", | 
|  | ], | 
|  | } | 
|  |  | 
|  | filegroup { | 
|  | name: "framework-wifi-non-updatable-sources", | 
|  | srcs: [ | 
|  | // TODO(b/146011398) package android.net.wifi is now split amongst 2 jars: framework.jar and | 
|  | // framework-wifi.jar. This is not a good idea, should move WifiNetworkScoreCache | 
|  | // to a separate package. | 
|  | "java/android/net/wifi/SoftApConfToXmlMigrationUtil.java", | 
|  | "java/android/net/wifi/WifiNetworkScoreCache.java", | 
|  | "java/android/net/wifi/WifiMigration.java", | 
|  | "java/android/net/wifi/nl80211/*.java", | 
|  | ":libwificond_ipc_aidl", | 
|  | ], | 
|  | } | 
|  |  | 
|  | filegroup { | 
|  | name: "framework-wifi-annotations", | 
|  | srcs: ["java/android/net/wifi/WifiAnnotations.java"], | 
|  | } | 
|  |  | 
|  | // list of tests that are allowed to access @hide APIs from framework-wifi | 
|  | test_access_hidden_api_whitelist = [ | 
|  | "//frameworks/base/wifi/tests", | 
|  | "//frameworks/opt/net/wifi/tests/wifitests:__subpackages__", | 
|  |  | 
|  | "//external/robolectric-shadows:__subpackages__", | 
|  | "//frameworks/base/packages/SettingsLib/tests/integ", | 
|  | "//external/sl4a:__subpackages__", | 
|  | ] | 
|  |  | 
|  | // defaults shared between `framework-wifi` & `framework-wifi-pre-jarjar` | 
|  | // java_sdk_library `framework-wifi` needs sources to generate stubs, so it cannot reuse | 
|  | // `framework-wifi-pre-jarjar` | 
|  | java_defaults { | 
|  | name: "framework-wifi-defaults", | 
|  | defaults: ["wifi-module-sdk-version-defaults"], | 
|  | static_libs: [ | 
|  | "framework-wifi-util-lib", | 
|  | "android.hardware.wifi-V1.0-java-constants", | 
|  | "modules-utils-build", | 
|  | ], | 
|  | libs: [ | 
|  | "unsupportedappusage", // for android.compat.annotation.UnsupportedAppUsage | 
|  | ], | 
|  | srcs: [ | 
|  | ":framework-wifi-updatable-sources", | 
|  | ":framework-wifi-util-lib-aidls", | 
|  | ], | 
|  | } | 
|  |  | 
|  | // wifi-service needs pre-jarjared version of framework-wifi so it can reference copied utility | 
|  | // classes before they are renamed. | 
|  | java_library { | 
|  | name: "framework-wifi-pre-jarjar", | 
|  | defaults: ["framework-wifi-defaults"], | 
|  | sdk_version: "module_current", | 
|  | libs: ["framework-annotations-lib"], | 
|  | // java_api_finder must accompany `srcs` (`srcs` defined in `framework-wifi-defaults`) | 
|  | plugins: ["java_api_finder"], | 
|  | installable: false, | 
|  | visibility: [ | 
|  | "//frameworks/opt/net/wifi/service", | 
|  | "//frameworks/opt/net/wifi/tests/wifitests", | 
|  | ], | 
|  | } | 
|  |  | 
|  | // post-jarjar version of framework-wifi | 
|  | java_sdk_library { | 
|  | name: "framework-wifi", | 
|  | defaults: [ | 
|  | "framework-module-defaults", | 
|  | "framework-wifi-defaults", | 
|  | ], | 
|  |  | 
|  | jarjar_rules: ":wifi-jarjar-rules", | 
|  |  | 
|  | installable: true, | 
|  | optimize: { | 
|  | enabled: false | 
|  | }, | 
|  | hostdex: true, // for hiddenapi check | 
|  |  | 
|  | // Restrict access to implementation library. | 
|  | impl_library_visibility: [ | 
|  | "//frameworks/opt/net/wifi/service:__subpackages__", | 
|  | ] + test_access_hidden_api_whitelist, | 
|  |  | 
|  | apex_available: [ | 
|  | "com.android.wifi", | 
|  | "test_com.android.wifi", | 
|  | ], | 
|  | permitted_packages: [ | 
|  | "android.hardware.wifi", | 
|  | "android.net.wifi", | 
|  | // Created by jarjar rules. | 
|  | "com.android.wifi.x", | 
|  | ], | 
|  | } | 
|  |  | 
|  | // defaults for tests that need to build against framework-wifi's @hide APIs | 
|  | java_defaults { | 
|  | name: "framework-wifi-test-defaults", | 
|  | sdk_version: "core_platform", // tests can use @CorePlatformApi's | 
|  | libs: [ | 
|  | // order matters: classes in framework-wifi are resolved before framework, meaning | 
|  | // @hide APIs in framework-wifi are resolved before @SystemApi stubs in framework | 
|  | "framework-wifi.impl", | 
|  | "framework", | 
|  |  | 
|  | // if sdk_version="" this gets automatically included, but here we need to add manually. | 
|  | "framework-res", | 
|  | ], | 
|  | visibility: test_access_hidden_api_whitelist, | 
|  | } | 
|  |  | 
|  | filegroup { | 
|  | name: "wifi-jarjar-rules", | 
|  | srcs: ["jarjar-rules.txt"], | 
|  | } |