// // Copyright (C) 2018 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. // // AIDL interfaces between the core system and the networking mainline module. package { default_applicable_licenses: ["Android-Apache-2.0"], } aidl_interface { name: "ipmemorystore-aidl-interfaces", local_include_dir: "src", srcs: [ "src/android/net/IIpMemoryStore.aidl", "src/android/net/IIpMemoryStoreCallbacks.aidl", "src/android/net/ipmemorystore/**/*.aidl", // New AIDL classes should go into android.net.networkstack.aidl so they can be clearly // identified "src/android/net/networkstack/aidl/quirks/IPv6ProvisioningLossQuirkParcelable.aidl", ], backend: { java: { apex_available: [ "//apex_available:platform", "com.android.wifi", "com.android.bluetooth.updatable", "com.android.tethering", ], // this is part of updatable modules(NetworkStack) which targets 29(Q) min_sdk_version: "29", }, ndk: { enabled: false, }, cpp: { enabled: false, }, }, versions: [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", ], visibility: [ "//system/tools/aidl/build", ], } aidl_interface { name: "networkstack-aidl-interfaces", local_include_dir: "src", include_dirs: [ // For framework parcelables. "frameworks/base/core/java", // For API parcelables in connectivity "packages/modules/Connectivity/framework/aidl-export", "frameworks/native/aidl/binder", // For PersistableBundle.aidl ], srcs: [ "src/android/net/DataStallReportParcelable.aidl", "src/android/net/DhcpResultsParcelable.aidl", "src/android/net/INetworkMonitor.aidl", "src/android/net/INetworkMonitorCallbacks.aidl", "src/android/net/INetworkStackConnector.aidl", "src/android/net/INetworkStackStatusCallback.aidl", "src/android/net/InitialConfigurationParcelable.aidl", "src/android/net/InformationElementParcelable.aidl", "src/android/net/Layer2InformationParcelable.aidl", "src/android/net/Layer2PacketParcelable.aidl", "src/android/net/NattKeepalivePacketDataParcelable.aidl", "src/android/net/NetworkTestResultParcelable.aidl", "src/android/net/PrivateDnsConfigParcel.aidl", "src/android/net/ProvisioningConfigurationParcelable.aidl", "src/android/net/ScanResultInfoParcelable.aidl", "src/android/net/TcpKeepalivePacketDataParcelable.aidl", "src/android/net/dhcp/DhcpLeaseParcelable.aidl", "src/android/net/dhcp/DhcpServingParamsParcel.aidl", "src/android/net/dhcp/IDhcpEventCallbacks.aidl", "src/android/net/dhcp/IDhcpServer.aidl", "src/android/net/dhcp/IDhcpServerCallbacks.aidl", "src/android/net/ip/IIpClient.aidl", "src/android/net/ip/IIpClientCallbacks.aidl", // New AIDL classes should go into android.net.networkstack.aidl so they can be clearly // identified "src/android/net/networkstack/aidl/dhcp/DhcpOption.aidl", ], backend: { java: { apex_available: [ "//apex_available:platform", "com.android.bluetooth.updatable", "com.android.wifi", "com.android.tethering", ], // this is part of updatable modules(NetworkStack) which targets 29(Q) min_sdk_version: "29", }, ndk: { enabled: false, }, cpp: { enabled: false, }, }, imports: ["ipmemorystore-aidl-interfaces"], versions: [ "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", ], // TODO: have tethering depend on networkstack-client and set visibility to private visibility: [ "//system/tools/aidl/build", "//frameworks/base/packages/Tethering", "//packages/modules/Connectivity/Tethering", ], } java_library { name: "networkstack-client", sdk_version: "system_current", // this is part of updatable modules(NetworkStack) which runs on Q and above min_sdk_version: "29", srcs: [ ":framework-annotations", "src/android/net/ip/**/*.java", "src/android/net/IpMemoryStore.java", "src/android/net/IpMemoryStoreClient.java", "src/android/net/ipmemorystore/**/*.java", "src/android/net/NetworkMonitorManager.java", "src/android/net/networkstack/**/*.java", "src/android/net/networkstack/aidl/quirks/**/*.java", "src/android/net/shared/**/*.java", "src/android/net/util/**/*.java", ], libs: [ "net-utils-framework-common", // XXX for IpUtils.java only ], static_libs: [ "ipmemorystore-aidl-interfaces-V10-java", "networkstack-aidl-interfaces-V10-java", ], visibility: [ "//frameworks/base/packages/Connectivity/service", "//packages/modules/Connectivity/Tethering", "//packages/modules/Connectivity/service", "//frameworks/base/services/net", "//frameworks/opt/net/wifi/service", "//packages/apps/Bluetooth", "//packages/modules/NetworkStack", ], apex_available: [ "//apex_available:platform", "com.android.tethering", ], }