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_applicable_licenses: ["Android-Apache-2.0"], 20} 21 22aidl_interface { 23 name: "ipmemorystore-aidl-interfaces", 24 local_include_dir: "src", 25 srcs: [ 26 "src/android/net/IIpMemoryStore.aidl", 27 "src/android/net/IIpMemoryStoreCallbacks.aidl", 28 "src/android/net/ipmemorystore/**/*.aidl", 29 // New AIDL classes should go into android.net.networkstack.aidl so they can be clearly 30 // identified 31 "src/android/net/networkstack/aidl/quirks/IPv6ProvisioningLossQuirkParcelable.aidl", 32 ], 33 backend: { 34 java: { 35 apex_available: [ 36 "//apex_available:platform", 37 "com.android.wifi", 38 "com.android.bluetooth.updatable", 39 "com.android.tethering", 40 ], 41 // this is part of updatable modules(NetworkStack) which targets 29(Q) 42 min_sdk_version: "29", 43 }, 44 ndk: { 45 enabled: false, 46 }, 47 cpp: { 48 enabled: false, 49 }, 50 }, 51 versions: [ 52 "1", 53 "2", 54 "3", 55 "4", 56 "5", 57 "6", 58 "7", 59 "8", 60 "9", 61 "10", 62 ], 63 visibility: [ 64 "//system/tools/aidl/build", 65 ], 66} 67 68aidl_interface { 69 name: "networkstack-aidl-interfaces", 70 local_include_dir: "src", 71 include_dirs: [ 72 // For framework parcelables. 73 "frameworks/base/core/java", 74 // For API parcelables in connectivity 75 "packages/modules/Connectivity/framework/aidl-export", 76 "frameworks/native/aidl/binder", // For PersistableBundle.aidl 77 ], 78 srcs: [ 79 "src/android/net/DataStallReportParcelable.aidl", 80 "src/android/net/DhcpResultsParcelable.aidl", 81 "src/android/net/INetworkMonitor.aidl", 82 "src/android/net/INetworkMonitorCallbacks.aidl", 83 "src/android/net/INetworkStackConnector.aidl", 84 "src/android/net/INetworkStackStatusCallback.aidl", 85 "src/android/net/InitialConfigurationParcelable.aidl", 86 "src/android/net/InformationElementParcelable.aidl", 87 "src/android/net/Layer2InformationParcelable.aidl", 88 "src/android/net/Layer2PacketParcelable.aidl", 89 "src/android/net/NattKeepalivePacketDataParcelable.aidl", 90 "src/android/net/NetworkTestResultParcelable.aidl", 91 "src/android/net/PrivateDnsConfigParcel.aidl", 92 "src/android/net/ProvisioningConfigurationParcelable.aidl", 93 "src/android/net/ScanResultInfoParcelable.aidl", 94 "src/android/net/TcpKeepalivePacketDataParcelable.aidl", 95 "src/android/net/dhcp/DhcpLeaseParcelable.aidl", 96 "src/android/net/dhcp/DhcpServingParamsParcel.aidl", 97 "src/android/net/dhcp/IDhcpEventCallbacks.aidl", 98 "src/android/net/dhcp/IDhcpServer.aidl", 99 "src/android/net/dhcp/IDhcpServerCallbacks.aidl", 100 "src/android/net/ip/IIpClient.aidl", 101 "src/android/net/ip/IIpClientCallbacks.aidl", 102 // New AIDL classes should go into android.net.networkstack.aidl so they can be clearly 103 // identified 104 "src/android/net/networkstack/aidl/dhcp/DhcpOption.aidl", 105 ], 106 backend: { 107 java: { 108 apex_available: [ 109 "//apex_available:platform", 110 "com.android.bluetooth.updatable", 111 "com.android.wifi", 112 "com.android.tethering", 113 ], 114 // this is part of updatable modules(NetworkStack) which targets 29(Q) 115 min_sdk_version: "29", 116 }, 117 ndk: { 118 enabled: false, 119 }, 120 cpp: { 121 enabled: false, 122 }, 123 }, 124 imports: ["ipmemorystore-aidl-interfaces"], 125 versions: [ 126 "1", 127 "2", 128 "3", 129 "4", 130 "5", 131 "6", 132 "7", 133 "8", 134 "9", 135 "10", 136 ], 137 // TODO: have tethering depend on networkstack-client and set visibility to private 138 visibility: [ 139 "//system/tools/aidl/build", 140 "//frameworks/base/packages/Tethering", 141 "//packages/modules/Connectivity/Tethering", 142 ], 143} 144 145java_library { 146 name: "networkstack-client", 147 sdk_version: "system_current", 148 // this is part of updatable modules(NetworkStack) which runs on Q and above 149 min_sdk_version: "29", 150 srcs: [ 151 ":framework-annotations", 152 "src/android/net/ip/**/*.java", 153 "src/android/net/IpMemoryStore.java", 154 "src/android/net/IpMemoryStoreClient.java", 155 "src/android/net/ipmemorystore/**/*.java", 156 "src/android/net/NetworkMonitorManager.java", 157 "src/android/net/networkstack/**/*.java", 158 "src/android/net/networkstack/aidl/quirks/**/*.java", 159 "src/android/net/shared/**/*.java", 160 "src/android/net/util/**/*.java", 161 ], 162 libs: [ 163 "net-utils-framework-common", // XXX for IpUtils.java only 164 ], 165 static_libs: [ 166 "ipmemorystore-aidl-interfaces-V10-java", 167 "networkstack-aidl-interfaces-V10-java", 168 ], 169 visibility: [ 170 "//frameworks/base/packages/Connectivity/service", 171 "//packages/modules/Connectivity/Tethering", 172 "//packages/modules/Connectivity/service", 173 "//frameworks/base/services/net", 174 "//frameworks/opt/net/wifi/service", 175 "//packages/apps/Bluetooth", 176 "//packages/modules/NetworkStack", 177 ], 178 apex_available: [ 179 "//apex_available:platform", 180 "com.android.tethering", 181 ], 182} 183