1// 2// Copyright (C) 2021 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_fwk_core_networking", 19 // See: http://go/android-license-faq 20 default_applicable_licenses: ["Android-Apache-2.0"], 21} 22 23service_remoteauth_pre_jarjar_lib = "service-remoteauth-pre-jarjar" 24 25// Include build rules from Sources.bp 26build = ["Sources.bp"] 27 28filegroup { 29 name: "service-connectivity-tiramisu-sources", 30 srcs: [ 31 "src/**/*.java", 32 ], 33 visibility: ["//visibility:private"], 34} 35 36// The above filegroup can be used to specify different sources depending 37// on the branch, while minimizing merge conflicts in the rest of the 38// build rules. 39 40// This builds T+ services depending on framework-connectivity-t 41// hidden symbols separately from the S+ services, to ensure that S+ 42// services cannot accidentally depend on T+ hidden symbols from 43// framework-connectivity-t. 44java_library { 45 name: "service-connectivity-tiramisu-pre-jarjar", 46 sdk_version: "system_server_current", 47 // TODO(b/210962470): Bump this to at least S, and then T. 48 min_sdk_version: "30", 49 srcs: [ 50 ":service-connectivity-tiramisu-sources", 51 ], 52 libs: [ 53 "framework-annotations-lib", 54 "framework-configinfrastructure.stubs.module_lib", 55 "framework-connectivity-pre-jarjar", 56 "framework-connectivity-t-pre-jarjar", 57 // TODO: use framework-tethering-pre-jarjar when it is separated from framework-tethering 58 "framework-tethering.impl", 59 "framework-wifi.stubs.module_lib", 60 "service-connectivity-pre-jarjar", 61 "service-nearby-pre-jarjar", 62 "service-networksecurity-pre-jarjar", 63 "service-thread-pre-jarjar", 64 service_remoteauth_pre_jarjar_lib, 65 "ServiceConnectivityResources", 66 "unsupportedappusage", 67 ], 68 static_libs: [ 69 // Do not add static_libs here if they are already included in framework-connectivity 70 // or in service-connectivity. They are not necessary (included via 71 // service-connectivity-pre-jarjar), and in the case of code that is already in 72 // framework-connectivity, the classes would be included in the apex twice. 73 "modules-utils-statemachine", 74 ], 75 apex_available: [ 76 "com.android.tethering", 77 ], 78 visibility: [ 79 "//frameworks/base/services/tests/VpnTests", 80 "//frameworks/base/tests/vcn", 81 "//packages/modules/Connectivity/service", 82 "//packages/modules/Connectivity/tests:__subpackages__", 83 "//packages/modules/IPsec/tests/iketests", 84 ], 85 lint: { 86 baseline_filename: "lint-baseline.xml", 87 }, 88} 89 90// Test building mDNS as a standalone, so that it can be imported into other repositories as-is. 91// The mDNS code is platform code so it should use framework-annotations-lib, contrary to apps that 92// should use sdk_version: "system_current" and only androidx.annotation_annotation. But this build 93// rule verifies that the mDNS code can be built into apps, if code transformations are applied to 94// the annotations. 95// When using "system_current", framework annotations are not available; they would appear as 96// package-private as they are marked as such in the system_current stubs. So build against 97// core_platform and add the stubs manually in "libs". See http://b/147773144#comment7. 98java_library { 99 name: "service-connectivity-mdns-standalone-build-test", 100 sdk_version: "core_platform", 101 min_sdk_version: "21", 102 lint: { 103 error_checks: ["NewApi"], 104 baseline_filename: "lint-baseline-service-connectivity-mdns-standalone-build-test.xml", 105 }, 106 srcs: [ 107 "src/com/android/server/connectivity/mdns/**/*.java", 108 ":service-mdns-droidstubs", 109 ], 110 exclude_srcs: [ 111 "src/com/android/server/connectivity/mdns/internal/SocketNetlinkMonitor.java", 112 "src/com/android/server/connectivity/mdns/SocketNetLinkMonitorFactory.java", 113 "src/com/android/server/connectivity/mdns/MdnsAdvertiser.java", 114 "src/com/android/server/connectivity/mdns/MdnsAnnouncer.java", 115 "src/com/android/server/connectivity/mdns/MdnsInterfaceAdvertiser.java", 116 "src/com/android/server/connectivity/mdns/MdnsProber.java", 117 "src/com/android/server/connectivity/mdns/MdnsRecordRepository.java", 118 ], 119 static_libs: [ 120 "net-utils-device-common-mdns-standalone-build-test", 121 ], 122 libs: [ 123 "framework-annotations-lib", 124 "android_system_stubs_current", 125 "androidx.annotation_annotation", 126 ], 127 visibility: [ 128 "//visibility:private", 129 ], 130} 131 132droidstubs { 133 name: "service-mdns-droidstubs", 134 srcs: ["src/com/android/server/connectivity/mdns/SocketNetLinkMonitorFactory.java"], 135 libs: [ 136 "net-utils-device-common-mdns-standalone-build-test", 137 "service-connectivity-tiramisu-pre-jarjar", 138 ], 139 visibility: [ 140 "//visibility:private", 141 ], 142} 143