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