Add RemoteAuthService APIs and Stubs (hide) for Settings of D2DA This CL introduces new SystemApi allow user to discover remote devices compatible to be registered as remote authenticators via RemoteAuthManager Design doc: go/remote-auth-manager-fishfood-design Test: built successfully. Bug: 290092977 API-Coverage-Bug: 294934095 Change-Id: Iaaae1126065fdc3db469eeb8d85ac654b8199a12
291 lines
9.5 KiB
Plaintext
291 lines
9.5 KiB
Plaintext
//
|
|
// Copyright (C) 2020 The Android Open Source Project
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
//
|
|
|
|
package {
|
|
// See: http://go/android-license-faq
|
|
default_applicable_licenses: ["Android-Apache-2.0"],
|
|
}
|
|
|
|
filegroup {
|
|
name: "framework-connectivity-internal-sources",
|
|
srcs: [
|
|
"src/**/*.java",
|
|
"src/**/*.aidl",
|
|
],
|
|
path: "src",
|
|
visibility: [
|
|
"//visibility:private",
|
|
],
|
|
}
|
|
|
|
filegroup {
|
|
name: "framework-connectivity-aidl-export-sources",
|
|
srcs: [
|
|
"aidl-export/**/*.aidl",
|
|
],
|
|
path: "aidl-export",
|
|
visibility: [
|
|
"//visibility:private",
|
|
],
|
|
}
|
|
|
|
// TODO: use a java_library in the bootclasspath instead
|
|
filegroup {
|
|
name: "framework-connectivity-sources",
|
|
defaults: ["framework-sources-module-defaults"],
|
|
srcs: [
|
|
":framework-connectivity-internal-sources",
|
|
":framework-connectivity-aidl-export-sources",
|
|
],
|
|
visibility: ["//packages/modules/Connectivity:__subpackages__"],
|
|
}
|
|
|
|
java_defaults {
|
|
name: "framework-connectivity-defaults",
|
|
defaults: ["framework-module-defaults"],
|
|
sdk_version: "module_current",
|
|
min_sdk_version: "30",
|
|
srcs: [
|
|
":framework-connectivity-sources",
|
|
":net-utils-framework-common-srcs",
|
|
":framework-connectivity-api-shared-srcs",
|
|
],
|
|
aidl: {
|
|
generate_get_transaction_name: true,
|
|
include_dirs: [
|
|
// Include directories for parcelables that are part of the stable API, and need a
|
|
// one-line "parcelable X" .aidl declaration to be used in AIDL interfaces.
|
|
// TODO(b/180293679): remove these dependencies as they should not be necessary once
|
|
// the module builds against API (the parcelable declarations exist in framework.aidl)
|
|
"frameworks/base/core/java", // For framework parcelables
|
|
"frameworks/native/aidl/binder", // For PersistableBundle.aidl
|
|
],
|
|
},
|
|
stub_only_libs: [
|
|
"framework-connectivity-t.stubs.module_lib",
|
|
],
|
|
impl_only_libs: [
|
|
// TODO: figure out why just using "framework-tethering" uses the stubs, even though both
|
|
// framework-connectivity and framework-tethering are in the same APEX.
|
|
"framework-tethering.impl",
|
|
"framework-wifi.stubs.module_lib",
|
|
"net-utils-device-common",
|
|
],
|
|
static_libs: [
|
|
"mdns_aidl_interface-lateststable-java",
|
|
"modules-utils-backgroundthread",
|
|
"modules-utils-build",
|
|
"modules-utils-preconditions",
|
|
"framework-connectivity-javastream-protos",
|
|
],
|
|
libs: [
|
|
"androidx.annotation_annotation",
|
|
"app-compat-annotations",
|
|
"framework-connectivity-t.stubs.module_lib",
|
|
"unsupportedappusage",
|
|
],
|
|
apex_available: [
|
|
"com.android.tethering",
|
|
],
|
|
lint: { strict_updatability_linting: true },
|
|
}
|
|
|
|
java_library {
|
|
name: "framework-connectivity-pre-jarjar",
|
|
defaults: [
|
|
"framework-connectivity-defaults",
|
|
],
|
|
static_libs: [
|
|
"httpclient_api",
|
|
"httpclient_impl",
|
|
"http_client_logging",
|
|
],
|
|
libs: [
|
|
// This cannot be in the defaults clause above because if it were, it would be used
|
|
// to generate the connectivity stubs. That would create a circular dependency
|
|
// because the tethering impl depend on the connectivity stubs (e.g.,
|
|
// TetheringRequest depends on LinkAddress).
|
|
"framework-tethering.impl",
|
|
"framework-wifi.stubs.module_lib",
|
|
],
|
|
visibility: ["//packages/modules/Connectivity:__subpackages__"]
|
|
}
|
|
|
|
java_defaults {
|
|
name: "CronetJavaDefaults",
|
|
srcs: [":httpclient_api_sources"],
|
|
libs: [
|
|
"androidx.annotation_annotation",
|
|
],
|
|
impl_only_static_libs: [
|
|
"httpclient_impl",
|
|
"http_client_logging",
|
|
],
|
|
}
|
|
|
|
java_sdk_library {
|
|
name: "framework-connectivity",
|
|
defaults: [
|
|
"framework-connectivity-defaults",
|
|
"CronetJavaDefaults",
|
|
],
|
|
installable: true,
|
|
jarjar_rules: ":framework-connectivity-jarjar-rules",
|
|
permitted_packages: ["android.net"],
|
|
impl_library_visibility: [
|
|
"//packages/modules/Connectivity/Tethering/apex",
|
|
// In preparation for future move
|
|
"//packages/modules/Connectivity/apex",
|
|
"//packages/modules/Connectivity/framework-t",
|
|
"//packages/modules/Connectivity/service",
|
|
"//packages/modules/Connectivity/service-t",
|
|
"//frameworks/base/packages/Connectivity/service",
|
|
"//frameworks/base",
|
|
|
|
// Tests using hidden APIs
|
|
"//cts/tests/netlegacy22.api",
|
|
"//cts/tests/tests/app.usage", // NetworkUsageStatsTest
|
|
"//external/sl4a:__subpackages__",
|
|
"//frameworks/base/packages/Connectivity/tests:__subpackages__",
|
|
"//frameworks/base/core/tests/bandwidthtests",
|
|
"//frameworks/base/core/tests/benchmarks",
|
|
"//frameworks/base/core/tests/utillib",
|
|
"//frameworks/base/tests/vcn",
|
|
"//frameworks/libs/net/common/testutils",
|
|
"//frameworks/libs/net/common/tests:__subpackages__",
|
|
"//frameworks/opt/net/ethernet/tests:__subpackages__",
|
|
"//frameworks/opt/telephony/tests/telephonytests",
|
|
"//packages/modules/CaptivePortalLogin/tests",
|
|
"//packages/modules/Connectivity/Cronet/tests:__subpackages__",
|
|
"//packages/modules/Connectivity/Tethering/tests:__subpackages__",
|
|
"//packages/modules/Connectivity/tests:__subpackages__",
|
|
"//packages/modules/IPsec/tests/iketests",
|
|
"//packages/modules/NetworkStack/tests:__subpackages__",
|
|
"//packages/modules/Wifi/service/tests/wifitests",
|
|
],
|
|
}
|
|
|
|
platform_compat_config {
|
|
name: "connectivity-platform-compat-config",
|
|
src: ":framework-connectivity",
|
|
}
|
|
|
|
cc_library_shared {
|
|
name: "libframework-connectivity-jni",
|
|
min_sdk_version: "30",
|
|
cflags: [
|
|
"-Wall",
|
|
"-Werror",
|
|
"-Wno-unused-parameter",
|
|
// Don't warn about S API usage even with
|
|
// min_sdk 30: the library is only loaded
|
|
// on S+ devices
|
|
"-Wno-unguarded-availability",
|
|
"-Wthread-safety",
|
|
],
|
|
srcs: [
|
|
"jni/android_net_NetworkUtils.cpp",
|
|
"jni/onload.cpp",
|
|
],
|
|
shared_libs: [
|
|
"libandroid",
|
|
"liblog",
|
|
"libnativehelper",
|
|
],
|
|
header_libs: [
|
|
"bpf_headers",
|
|
"dnsproxyd_protocol_headers",
|
|
],
|
|
stl: "none",
|
|
apex_available: [
|
|
"com.android.tethering",
|
|
],
|
|
}
|
|
|
|
filegroup {
|
|
name: "framework-connectivity-protos",
|
|
srcs: [
|
|
"proto/**/*.proto",
|
|
],
|
|
visibility: ["//frameworks/base"],
|
|
}
|
|
|
|
java_library {
|
|
name: "framework-connectivity-javastream-protos",
|
|
proto: {
|
|
type: "stream",
|
|
},
|
|
srcs: [":framework-connectivity-protos"],
|
|
installable: false,
|
|
sdk_version: "module_current",
|
|
min_sdk_version: "30",
|
|
apex_available: [
|
|
"com.android.tethering",
|
|
],
|
|
}
|
|
|
|
java_genrule {
|
|
name: "framework-connectivity-jarjar-rules",
|
|
tool_files: [
|
|
":connectivity-hiddenapi-files",
|
|
":framework-connectivity-pre-jarjar{.jar}",
|
|
":framework-connectivity-t-pre-jarjar{.jar}",
|
|
":framework-connectivity.stubs.module_lib{.jar}",
|
|
":framework-connectivity-t.stubs.module_lib{.jar}",
|
|
"jarjar-excludes.txt",
|
|
],
|
|
tools: [
|
|
"jarjar-rules-generator",
|
|
],
|
|
out: ["framework_connectivity_jarjar_rules.txt"],
|
|
cmd: "$(location jarjar-rules-generator) " +
|
|
"$(location :framework-connectivity-pre-jarjar{.jar}) " +
|
|
"$(location :framework-connectivity-t-pre-jarjar{.jar}) " +
|
|
"--prefix android.net.connectivity " +
|
|
"--apistubs $(location :framework-connectivity.stubs.module_lib{.jar}) " +
|
|
"--apistubs $(location :framework-connectivity-t.stubs.module_lib{.jar}) " +
|
|
// Make a ":"-separated list. There will be an extra ":" but empty items are ignored.
|
|
"--unsupportedapi $$(printf ':%s' $(locations :connectivity-hiddenapi-files)) " +
|
|
"--excludes $(location jarjar-excludes.txt) " +
|
|
"--output $(out)",
|
|
visibility: [
|
|
"//packages/modules/Connectivity/framework:__subpackages__",
|
|
"//packages/modules/Connectivity/framework-t:__subpackages__",
|
|
"//packages/modules/Connectivity/service",
|
|
],
|
|
}
|
|
|
|
// Library providing limited APIs within the connectivity module, so that R+ components like
|
|
// Tethering have a controlled way to depend on newer components like framework-connectivity that
|
|
// are not loaded on R.
|
|
java_library {
|
|
name: "connectivity-internal-api-util",
|
|
sdk_version: "module_current",
|
|
libs: [
|
|
"androidx.annotation_annotation",
|
|
"framework-connectivity.impl",
|
|
],
|
|
jarjar_rules: ":framework-connectivity-jarjar-rules",
|
|
srcs: [
|
|
// Files listed here MUST all be annotated with @RequiresApi(Build.VERSION_CODES.TIRAMISU),
|
|
// so that API checks are enforced for R+ users of this library
|
|
"src/android/net/connectivity/TiramisuConnectivityInternalApiUtil.java",
|
|
],
|
|
visibility: [
|
|
"//packages/modules/Connectivity/Tethering:__subpackages__",
|
|
],
|
|
}
|