1// 2// Copyright (C) 2018 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 17// AIDL interfaces between the core system and the networking mainline module. 18package { 19 default_team: "trendy_team_fwk_core_networking", 20 default_applicable_licenses: ["Android-Apache-2.0"], 21} 22 23aidl_interface { 24 name: "ipmemorystore-aidl-interfaces", 25 local_include_dir: "src", 26 srcs: [ 27 "src/android/net/IIpMemoryStore.aidl", 28 "src/android/net/IIpMemoryStoreCallbacks.aidl", 29 "src/android/net/ipmemorystore/**/*.aidl", 30 // New AIDL classes should go into android.net.networkstack.aidl so they can be clearly 31 // identified 32 "src/android/net/networkstack/aidl/quirks/IPv6ProvisioningLossQuirkParcelable.aidl", 33 ], 34 backend: { 35 java: { 36 apex_available: [ 37 "//apex_available:platform", 38 "com.android.bt", 39 "com.android.wifi", 40 "com.android.tethering", 41 ], 42 // this is part of updatable modules(NetworkStack) which targets 30(R) 43 min_sdk_version: "30", 44 }, 45 ndk: { 46 enabled: false, 47 }, 48 cpp: { 49 enabled: false, 50 }, 51 rust: { 52 enabled: false, 53 }, 54 }, 55 56 visibility: [ 57 "//system/tools/aidl/build", 58 ], 59 versions_with_info: [ 60 { 61 version: "1", 62 imports: [], 63 }, 64 { 65 version: "2", 66 imports: [], 67 }, 68 { 69 version: "3", 70 imports: [], 71 }, 72 { 73 version: "4", 74 imports: [], 75 }, 76 { 77 version: "5", 78 imports: [], 79 }, 80 { 81 version: "6", 82 imports: [], 83 }, 84 { 85 version: "7", 86 imports: [], 87 }, 88 { 89 version: "8", 90 imports: [], 91 }, 92 { 93 version: "9", 94 imports: [], 95 }, 96 { 97 version: "10", 98 imports: [], 99 }, 100 { 101 version: "11", 102 imports: [], 103 }, 104 105 ], 106 frozen: true, 107 108} 109 110aidl_interface { 111 name: "networkstack-aidl-interfaces", 112 local_include_dir: "src", 113 include_dirs: [ 114 // For framework parcelables. 115 "frameworks/base/core/java", 116 // For API parcelables in connectivity 117 "packages/modules/Connectivity/framework/aidl-export", 118 "frameworks/native/aidl/binder", // For PersistableBundle.aidl 119 ], 120 srcs: [ 121 "src/android/net/DataStallReportParcelable.aidl", 122 "src/android/net/DhcpResultsParcelable.aidl", 123 "src/android/net/INetworkMonitor.aidl", 124 "src/android/net/INetworkMonitorCallbacks.aidl", 125 "src/android/net/INetworkStackConnector.aidl", 126 "src/android/net/INetworkStackStatusCallback.aidl", 127 "src/android/net/InitialConfigurationParcelable.aidl", 128 "src/android/net/InformationElementParcelable.aidl", 129 "src/android/net/Layer2InformationParcelable.aidl", 130 "src/android/net/Layer2PacketParcelable.aidl", 131 "src/android/net/NattKeepalivePacketDataParcelable.aidl", 132 "src/android/net/NetworkTestResultParcelable.aidl", 133 "src/android/net/PrivateDnsConfigParcel.aidl", 134 "src/android/net/ProvisioningConfigurationParcelable.aidl", 135 "src/android/net/ScanResultInfoParcelable.aidl", 136 "src/android/net/TcpKeepalivePacketDataParcelable.aidl", 137 "src/android/net/dhcp/DhcpLeaseParcelable.aidl", 138 "src/android/net/dhcp/DhcpServingParamsParcel.aidl", 139 "src/android/net/dhcp/IDhcpEventCallbacks.aidl", 140 "src/android/net/dhcp/IDhcpServer.aidl", 141 "src/android/net/dhcp/IDhcpServerCallbacks.aidl", 142 "src/android/net/ip/IIpClient.aidl", 143 "src/android/net/ip/IIpClientCallbacks.aidl", 144 // New AIDL classes should go into android.net.networkstack.aidl so they can be clearly 145 // identified 146 "src/android/net/networkstack/aidl/NetworkMonitorParameters.aidl", 147 "src/android/net/networkstack/aidl/dhcp/DhcpOption.aidl", 148 "src/android/net/networkstack/aidl/ip/ReachabilityLossInfoParcelable.aidl", 149 "src/android/net/networkstack/aidl/ip/ReachabilityLossReason.aidl", 150 ], 151 backend: { 152 java: { 153 apex_available: [ 154 "//apex_available:platform", 155 "com.android.bt", 156 "com.android.wifi", 157 "com.android.tethering", 158 ], 159 // this is part of updatable modules(NetworkStack) which targets 30(R) 160 min_sdk_version: "30", 161 lint: { 162 enabled: false, 163 }, 164 }, 165 ndk: { 166 enabled: false, 167 }, 168 cpp: { 169 enabled: false, 170 }, 171 rust: { 172 enabled: false, 173 }, 174 }, 175 imports: ["ipmemorystore-aidl-interfaces-V11"], 176 // TODO: have tethering depend on networkstack-client and set visibility to private 177 visibility: [ 178 "//system/tools/aidl/build", 179 "//frameworks/base/packages/Tethering", 180 "//packages/modules/Connectivity/Tethering", 181 ], 182 versions_with_info: [ 183 // Remove old networkstack aidl interface version info that is no longer used. 184 { 185 version: "13", 186 imports: ["ipmemorystore-aidl-interfaces-V11"], 187 }, 188 { 189 version: "14", 190 imports: ["ipmemorystore-aidl-interfaces-V11"], 191 }, 192 { 193 version: "15", 194 imports: ["ipmemorystore-aidl-interfaces-V11"], 195 }, 196 { 197 version: "16", 198 imports: ["ipmemorystore-aidl-interfaces-V11"], 199 }, 200 { 201 version: "17", 202 imports: ["ipmemorystore-aidl-interfaces-V11"], 203 }, 204 { 205 version: "18", 206 imports: ["ipmemorystore-aidl-interfaces-V11"], 207 }, 208 { 209 version: "19", 210 imports: ["ipmemorystore-aidl-interfaces-V11"], 211 }, 212 { 213 version: "20", 214 imports: ["ipmemorystore-aidl-interfaces-V11"], 215 }, 216 { 217 version: "21", 218 imports: ["ipmemorystore-aidl-interfaces-V11"], 219 }, 220 { 221 version: "22", 222 imports: ["ipmemorystore-aidl-interfaces-V11"], 223 }, 224 { 225 version: "23", 226 imports: ["ipmemorystore-aidl-interfaces-V11"], 227 }, 228 229 ], 230 frozen: true, 231} 232 233java_library { 234 name: "networkstack-aidl-latest", 235 sdk_version: "system_current", 236 min_sdk_version: "30", 237 static_libs: [ 238 "ipmemorystore-aidl-interfaces-V11-java", 239 "networkstack-aidl-interfaces-V23-java", 240 ], 241 visibility: ["//packages/modules/NetworkStack:__subpackages__"], 242 apex_available: [ 243 "//apex_available:platform", 244 "com.android.bt", 245 "com.android.tethering", 246 "com.android.wifi", 247 ], 248} 249 250java_library { 251 name: "networkstack-client", 252 sdk_version: "module_current", 253 // this is part of updatable modules(NetworkStack) which runs on R and above 254 min_sdk_version: "30", 255 srcs: [ 256 "src/android/net/ip/**/*.java", 257 "src/android/net/IpMemoryStore.java", 258 "src/android/net/IpMemoryStoreClient.java", 259 "src/android/net/ipmemorystore/**/*.java", 260 "src/android/net/NetworkMonitorManager.java", 261 "src/android/net/networkstack/**/*.java", 262 "src/android/net/networkstack/aidl/quirks/**/*.java", 263 "src/android/net/shared/**/*.java", 264 "src/android/net/util/**/*.java", 265 ], 266 libs: [ 267 // Since this library is sdk_version: "module_current", "framework-connectivity.stubs.module_lib" is just 268 // the module_current API stubs of framework-connectivity 269 "framework-connectivity.stubs.module_lib", 270 "framework-annotations-lib", 271 ], 272 static_libs: [ 273 "networkstack-aidl-latest", 274 ], 275 visibility: [ 276 "//packages/modules/Connectivity/Tethering", 277 "//packages/modules/Connectivity/service", 278 "//frameworks/base/services/net", 279 "//frameworks/opt/net/wifi/service", 280 "//packages/apps/Bluetooth", 281 "//packages/modules/Bluetooth/android/app", 282 "//packages/modules/NetworkStack", 283 "//packages/modules/Wifi/service:__subpackages__", 284 ], 285 apex_available: [ 286 "//apex_available:platform", 287 "com.android.bt", 288 "com.android.tethering", 289 "com.android.wifi", 290 ], 291} 292