Files
android_packages_modules_Co…/Tethering/Android.bp
Jiyong Park 1eb8933d3e Platform shouldn't directly link to jars in APEXes
The non-updatable part of the platform shouldn't directly link to the
boot jars in APEXes. Ensure this by

1) setting the visibility property for the boot jars so that they are
not visible to non-APEX modules and
2) setting the apex_available property so that the boot jars are only
built for the corresponding APEXes, but not for others.

Bug: b/146167933
Bug: b/146218515
Bug: b/147200698
Test: m
Change-Id: I251fabd773bc31f46d572d143c72dd9162f3f0a6
Merged-In: I251fabd773bc31f46d572d143c72dd9162f3f0a6
2020-01-10 15:15:24 +00:00

127 lines
3.6 KiB
Plaintext

//
// Copyright (C) 2019 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.
//
java_defaults {
name: "TetheringAndroidLibraryDefaults",
platform_apis: true,
srcs: [
"src/**/*.java",
":framework-tethering-shared-srcs",
":tethering-module-utils-srcs",
":services-tethering-shared-srcs",
],
static_libs: [
"androidx.annotation_annotation",
"netd_aidl_interface-unstable-java",
"netlink-client",
"networkstack-aidl-interfaces-unstable-java",
"android.hardware.tetheroffload.control-V1.0-java",
],
libs: [
"framework-tethering",
],
manifest: "AndroidManifestBase.xml",
}
// Build tethering static library, used to compile both variants of the tethering.
android_library {
name: "TetheringApiCurrentLib",
defaults: ["TetheringAndroidLibraryDefaults"],
}
// Due to b/143733063, APK can't access a jni lib that is in APEX (but not in the APK).
cc_library {
name: "libtetherutilsjni",
srcs: [
"jni/android_net_util_TetheringUtils.cpp",
],
shared_libs: [
"libcgrouprc",
"libnativehelper_compat_libc++",
"libvndksupport",
],
static_libs: [
"android.hardware.tetheroffload.config@1.0",
"liblog",
"libbase",
"libbinderthreadstate",
"libcutils",
"libhidlbase",
"libjsoncpp",
"libprocessgroup",
"libutils",
],
cflags: [
"-Wall",
"-Werror",
"-Wno-unused-parameter",
"-Wthread-safety",
],
ldflags: ["-Wl,--exclude-libs=ALL,-error-limit=0"],
}
// Common defaults for compiling the actual APK.
java_defaults {
name: "TetheringAppDefaults",
platform_apis: true,
privileged: true,
// Build system doesn't track transitive dependeicies for jni_libs, list all the dependencies
// explicitly.
jni_libs: [
"libcgrouprc",
"libnativehelper_compat_libc++",
"libvndksupport",
"libtetherutilsjni",
],
resource_dirs: [
"res",
],
libs: [
"framework-tethering",
],
jarjar_rules: "jarjar-rules.txt",
optimize: {
proguard_flags_files: ["proguard.flags"],
},
}
// Non-updatable tethering running in the system server process for devices not using the module
android_app {
name: "InProcessTethering",
defaults: ["TetheringAppDefaults"],
static_libs: ["TetheringApiCurrentLib"],
certificate: "platform",
manifest: "AndroidManifest_InProcess.xml",
// InProcessTethering is a replacement for Tethering
overrides: ["Tethering"],
}
// Updatable tethering packaged as an application
android_app {
name: "Tethering",
defaults: ["TetheringAppDefaults"],
static_libs: ["TetheringApiCurrentLib"],
certificate: "networkstack",
manifest: "AndroidManifest.xml",
use_embedded_native_libs: true,
// The permission configuration *must* be included to ensure security of the device
required: ["NetworkPermissionConfig"],
apex_available: ["com.android.tethering"],
}