• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1//
2// Copyright (C) 2024 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_team: "trendy_team_enigma",
19    default_applicable_licenses: ["Android-Apache-2.0"],
20}
21
22filegroup {
23    name: "vcn-utils-platform-sources",
24    srcs: [
25        "src/android/net/vcn/persistablebundleutils/**/*.java",
26        "src/android/net/vcn/util/**/*.java",
27    ],
28    path: "src",
29    visibility: [
30        "//frameworks/base", // For VpnProfile.java and Vpn.java
31    ],
32}
33
34java_defaults {
35    name: "framework-connectivity-b-defaults-base",
36    sdk_version: "module_current",
37
38    defaults: ["framework-module-defaults"], // This is a boot jar
39
40    srcs: [
41        "src/**/*.java",
42        "src/**/*.aidl",
43    ],
44
45    libs: [
46        "android.net.ipsec.ike.stubs.module_lib",
47        "framework-wifi.stubs.module_lib",
48        "unsupportedappusage",
49    ],
50
51    aidl: {
52        include_dirs: [
53            // For connectivity-framework classes such as Network.aidl, NetworkCapabilities.aidl
54            "packages/modules/Connectivity/framework/aidl-export",
55        ],
56    },
57}
58
59soong_config_module_type {
60    name: "framework_connectivity_b_defaults_soong_config",
61    module_type: "java_defaults",
62    config_namespace: "ANDROID",
63    bool_variables: [
64        "is_vcn_in_mainline",
65    ],
66    properties: [
67        "min_sdk_version",
68        "static_libs",
69        "apex_available",
70    ],
71}
72
73framework_connectivity_b_defaults_soong_config {
74    name: "framework-connectivity-b-defaults",
75    defaults: [
76        "framework-connectivity-b-defaults-base",
77    ],
78    soong_config_variables: {
79        is_vcn_in_mainline: {
80            min_sdk_version: "36",
81            static_libs: ["android.net.vcn.flags-aconfig-java"],
82            apex_available: ["com.android.tethering"],
83
84            conditions_default: {
85                min_sdk_version: "35",
86                static_libs: ["android.net.vcn.flags-aconfig-java-export"],
87                apex_available: ["//apex_available:platform"],
88            },
89        },
90    },
91}
92
93soong_config_module_type {
94    name: "framework_connectivity_b_java_sdk_library_defaults_soong_config",
95    module_type: "java_defaults",
96    config_namespace: "ANDROID",
97    bool_variables: [
98        "is_vcn_in_mainline",
99    ],
100    properties: [
101        "aconfig_declarations",
102        "jarjar_rules",
103    ],
104}
105
106framework_connectivity_b_java_sdk_library_defaults_soong_config {
107    name: "framework-connectivity-b-java-sdk-library-defaults",
108    soong_config_variables: {
109        is_vcn_in_mainline: {
110            aconfig_declarations: ["android.net.vcn.flags-aconfig-java"],
111
112            // TODO: b/375213246 Use the connectivity jarjar rule generator to create the
113            // jarjar rules. In the end state, use "framework-connectivity-jarjar-rules"
114            // after VCN code is moved to the Connectivity folder
115            jarjar_rules: "framework-vcn-jarjar-rules.txt",
116
117            conditions_default: {
118                aconfig_declarations: ["android.net.vcn.flags-aconfig-java-export"],
119
120                // Use "android.net.connectivity" as prefix would trigger
121                // "Hidden API flags are inconsistent" build error
122                jarjar_rules: "framework-vcn-jarjar-rules-platform.txt",
123            },
124        },
125    },
126}
127
128java_sdk_library {
129    name: "framework-connectivity-b",
130    defaults: [
131        "framework-connectivity-b-defaults",
132        "framework-connectivity-b-java-sdk-library-defaults",
133    ],
134
135    permitted_packages: [
136        "android.net",
137        "android.net.vcn",
138        "com.android.server.vcn.util",
139
140    ],
141    api_packages: [
142        "android.net",
143        "android.net.vcn",
144    ],
145
146    // Allow VCN APIs to reference APIs in IKE and Connectivity
147    stub_only_libs: [
148        "android.net.ipsec.ike.stubs.module_lib",
149        "framework-connectivity.stubs.module_lib",
150    ],
151
152    // To use non-jarjard names of utilities such as android.util.IndentingPrintWriter
153    impl_only_libs: [
154        "framework-connectivity-pre-jarjar",
155    ],
156
157    impl_library_visibility: [
158        // Using for test only
159        "//cts/tests/netlegacy22.api",
160        "//cts/tests/tests/vcn",
161        "//external/sl4a:__subpackages__",
162        "//frameworks/base/core/tests/bandwidthtests",
163        "//frameworks/base/core/tests/benchmarks",
164        "//frameworks/base/core/tests/utillib",
165        "//frameworks/base/services/tests/VpnTests",
166        "//frameworks/base/tests/vcn",
167        "//frameworks/opt/telephony/tests/telephonytests",
168        "//packages/modules/CaptivePortalLogin/tests",
169        "//packages/modules/Connectivity/staticlibs/testutils",
170        "//packages/modules/Connectivity/staticlibs/tests:__subpackages__",
171        "//packages/modules/Connectivity/Tethering/tests:__subpackages__",
172        "//packages/modules/Connectivity/tests:__subpackages__",
173        "//packages/modules/Connectivity/thread/tests:__subpackages__",
174        "//packages/modules/IPsec/tests/iketests",
175        "//packages/modules/NetworkStack",
176        "//packages/modules/NetworkStack/tests:__subpackages__",
177        "//packages/modules/Wifi/service/tests/wifitests",
178    ],
179
180    visibility: ["//packages/modules/Connectivity:__subpackages__"],
181}
182
183java_library {
184    name: "framework-connectivity-b-pre-jarjar",
185    defaults: ["framework-connectivity-b-defaults"],
186    installable: false,
187    libs: [
188        "framework-connectivity-pre-jarjar",
189    ],
190}
191