1// Copyright 2018 The Android Open Source Project 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15package { 16 default_applicable_licenses: ["Android-Apache-2.0"], 17} 18 19java_sdk_library { 20 name: "android.net.ipsec.ike", 21 installable: true, 22 defaults: ["framework-module-defaults"], 23 24 // ike is used as a shared library. 25 shared_library: true, 26 compile_dex: true, 27 28 aidl: { 29 local_include_dirs: ["src/java"], 30 }, 31 srcs: [":ike-srcs"], 32 33 static_libs: [ 34 "ike-internals", 35 ], 36 37 libs: [ 38 "unsupportedappusage", 39 "framework-annotations-lib", 40 "conscrypt.module.public.api.stubs.module_lib", 41 "framework-configinfrastructure.stubs.module_lib", 42 "framework-connectivity.stubs.module_lib", 43 "framework-connectivity-t.stubs.module_lib", 44 "framework-statsd.stubs.module_lib", 45 ], 46 stub_only_libs: [ 47 "framework-connectivity.stubs.module_lib", 48 "framework-connectivity-t.stubs.module_lib", 49 ], 50 51 api_packages: [ 52 "android.net.eap", 53 "android.net.ipsec.ike", 54 "android.net.ipsec.ike.exceptions", 55 "android.net.ipsec.ike.exceptions.protocol", 56 "android.net.ipsec.ike.ike3gpp", 57 ], 58 59 aconfig_declarations: [ 60 "ipsec_aconfig_flags", 61 ], 62 63 lint: { 64 baseline_filename: "lint-baseline.xml", 65 }, 66 67 // Shared filegroups of BouncyCastle and frameworks are jar-jar'ed to avoid 68 // being overwritten by the frameworks class copies. 69 jarjar_rules: "jarjar-rules-shared.txt", 70 71 hostdex: true, // for hiddenapi check 72 apex_available: [ 73 "com.android.ipsec", 74 "test_com.android.ipsec", 75 ], 76 77 permitted_packages: [ 78 "com.android.internal.net", 79 "android.net.ipsec.ike", 80 "android.net.eap", 81 ], 82 min_sdk_version: "30", 83} 84 85filegroup { 86 name: "ike-srcs", 87 defaults: ["framework-sources-module-defaults"], 88 srcs: [ 89 ":ike-internal-srcs", 90 ":framework-ike-shared-srcs", 91 ":statslog-ike-java-gen", 92 ], 93} 94 95filegroup { 96 name: "ike-internal-srcs", 97 srcs: [ 98 "src/java/**/*.java", 99 ], 100 path: "src/java/", 101} 102 103filegroup { 104 name: "ike-aes-xcbc", 105 srcs: ["src/java/**/AesXCbcImpl.java"], 106} 107 108// Provides internal classes needed to build the ike sources. 109java_library { 110 name: "ike-internals", 111 min_sdk_version: "30", 112 apex_available: [ 113 "com.android.ipsec", 114 "test_com.android.ipsec", 115 ], 116 static_libs: [ 117 "bouncycastle_ike_digests", 118 "modules-utils-build", 119 "modules-utils-statemachine", 120 "net-utils-framework-ipsec", 121 ], 122 sdk_version: "module_current", 123} 124 125java_library { 126 name: "ike_test", 127 installable: false, // Used only for testing; never installed alone. 128 srcs: [":ike-srcs"], 129 libs: [ 130 "unsupportedappusage", 131 "conscrypt.module.public.api.stubs", 132 ], 133 static_libs: ["ike-internals"], 134 135 // Shared filegroups of BouncyCastle and frameworks are jar-jar'ed to avoid 136 // being overwritten by the frameworks class copies and break code coverage 137 // reports. IKE source files are jarjared to avoid this test jar being 138 // overshadowed by the IKE jar in framework and bootclasspath which will 139 // cause compiling and runtime errors respectively. 140 jarjar_rules: "jarjar-rules-test.txt", 141} 142 143java_library { 144 name: "ike-test-utils-dependency", 145 installable: false, // Used only for building the "ike-test-utils" 146 srcs: ["src/java/**/IkeCertUtils.java"], 147 jarjar_rules: "jarjar-rules-test.txt", 148} 149 150java_library { 151 name: "ike-test-utils", 152 srcs: [ 153 "src/java/**/PolicyDirection.java", 154 "tests/iketests/src/java/**/CertUtils.java", 155 ], 156 static_libs: ["ike-test-utils-dependency"], 157 libs: ["androidx.test.rules"], 158 visibility: ["//packages/modules/IPsec/tests/cts"], 159} 160 161sdk { 162 name: "ipsec-module-sdk", 163 apexes: [ 164 // Adds exportable dependencies of the APEX to the sdk, 165 // e.g. *classpath_fragments. 166 "com.android.ipsec", 167 ], 168} 169 170genrule { 171 name: "statslog-ike-java-gen", 172 tools: ["stats-log-api-gen"], 173 cmd: "$(location stats-log-api-gen) --java $(out) --module ike" + 174 " --javaPackage com.android.internal.net.ipsec.ike.utils --javaClass IkeMetricsInterface", 175 out: ["com/android/internal/net/ipsec/ike/utils/IkeMetricsInterface.java"], 176} 177