• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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