1// 2// Copyright (C) 2019 The Android Open Source Project 3// 4// Licensed under the Apache License, Version 2.0 (the "License"); 5// you may not use this file except in compliance with the License. 6// You may obtain a copy of the License at 7// 8// http://www.apache.org/licenses/LICENSE-2.0 9// 10// Unless required by applicable law or agreed to in writing, software 11// distributed under the License is distributed on an "AS IS" BASIS, 12// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13// See the License for the specific language governing permissions and 14// limitations under the License. 15// 16 17package { 18 default_applicable_licenses: ["Android-Apache-2.0"], 19} 20 21apex_defaults { 22 name: "com.android.wifi-defaults", 23 androidManifest: ":com.android.wifi-androidManifest", 24 bootclasspath_fragments: ["com.android.wifi-bootclasspath-fragment"], 25 systemserverclasspath_fragments: ["com.android.wifi-systemserverclasspath-fragment"], 26 compat_configs: ["wifi-compat-config"], 27 // from build rule `cacerts_wfa` 28 prebuilts: [ 29 "cacerts_wfa", 30 "mainline_supplicant_conf", 31 "mainline_supplicant_rc", 32 ], 33 key: "com.android.wifi.key", 34 certificate: ":com.android.wifi.certificate", 35 apps: [ 36 "OsuLogin", 37 "ServiceWifiResources", 38 "WifiDialog", 39 ], 40 binaries: select(release_flag("RELEASE_WIFI_MAINLINE_SUPPLICANT_BINARY"), { 41 true: ["wpa_supplicant_mainline"], 42 default: [], 43 }), 44 jni_libs: [ 45 "libservice-wifi-jni", 46 ], 47 defaults: ["r-launched-apex-module"], 48 // Indicates that pre-installed version of this apex can be compressed. 49 // Whether it actually will be compressed is controlled on per-device basis. 50 compressible: true, 51} 52 53filegroup { 54 name: "com.android.wifi-androidManifest", 55 srcs: ["AndroidManifest.xml"], 56} 57 58// Mainline wifi apex module. 59apex { 60 name: "com.android.wifi", 61 defaults: ["com.android.wifi-defaults"], 62 manifest: "apex_manifest.json", 63} 64 65apex_key { 66 name: "com.android.wifi.key", 67 public_key: "com.android.wifi.avbpubkey", 68 private_key: "com.android.wifi.pem", 69} 70 71android_app_certificate { 72 name: "com.android.wifi.certificate", 73 certificate: "com.android.wifi", 74} 75 76sdk { 77 name: "wifi-module-sdk", 78 apexes: [ 79 // Adds exportable dependencies of the APEX to the sdk, 80 // e.g. *classpath_fragments. 81 "com.android.wifi", 82 ], 83} 84 85// Encapsulate the contributions made by the com.android.wifi to the bootclasspath. 86bootclasspath_fragment { 87 name: "com.android.wifi-bootclasspath-fragment", 88 contents: ["framework-wifi"], 89 apex_available: ["com.android.wifi"], 90 91 // The bootclasspath_fragments that provide APIs on which this depends. 92 fragments: [ 93 { 94 apex: "com.android.art", 95 module: "art-bootclasspath-fragment", 96 }, 97 ], 98 99 // Additional stubs libraries that this fragment's contents use which are 100 // not provided by another bootclasspath_fragment. 101 additional_stubs: [ 102 "android-non-updatable", 103 ], 104 105 // Additional hidden API flag files to override the defaults. This must only be 106 // modified by the Soong or platform compat team. 107 hidden_api: { 108 max_target_o_low_priority: ["hiddenapi/hiddenapi-max-target-o-low-priority.txt"], 109 max_target_r_low_priority: ["hiddenapi/hiddenapi-max-target-r-low-priority.txt"], 110 unsupported: ["hiddenapi/hiddenapi-unsupported.txt"], 111 112 // The following packages contain classes from other modules on the 113 // bootclasspath. That means that the hidden API flags for this module 114 // has to explicitly list every single class this module provides in 115 // that package to differentiate them from the classes provided by other 116 // modules. That can include private classes that are not part of the 117 // API. 118 split_packages: [ 119 "android.net.wifi", 120 ], 121 122 // The following packages and all their subpackages currently only 123 // contain classes from this bootclasspath_fragment. Listing a package 124 // here won't prevent other bootclasspath modules from adding classes in 125 // any of those packages but it will prevent them from adding those 126 // classes into an API surface, e.g. public, system, etc.. Doing so will 127 // result in a build failure due to inconsistent flags. 128 package_prefixes: [ 129 "android.net.wifi.aware", 130 "android.net.wifi.hotspot2", 131 "android.net.wifi.p2p", 132 "android.net.wifi.rtt", 133 "android.net.wifi.twt", 134 "android.net.wifi.usd", 135 "android.net.wifi.util", 136 "com.android.wifi", 137 ], 138 }, 139} 140 141systemserverclasspath_fragment { 142 name: "com.android.wifi-systemserverclasspath-fragment", 143 standalone_contents: ["service-wifi"], 144 apex_available: ["com.android.wifi"], 145} 146