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
127 lines
3.6 KiB
Plaintext
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"],
|
|
}
|