android_packages_modules_Co.../Tethering/apex/Android.bp

227 lines
7.0 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.
//
package {
default_applicable_licenses: ["Android-Apache-2.0"],
}
prebuilt_etc {
name: "TetheringInProcessFlag",
src: "in-process",
filename_from_src: true,
sub_dir: "flag",
}
prebuilt_etc {
name: "TetheringOutOfProcessFlag",
src: "out-of-process",
filename_from_src: true,
sub_dir: "flag",
}
// Defaults to enable/disable java targets which uses development APIs. "enabled" may have a
// different value depending on the branch.
java_defaults {
name: "ConnectivityNextEnableDefaults",
enabled: true,
}
apex_defaults {
name: "ConnectivityApexDefaults",
// Tethering app to include in the AOSP apex. Branches that disable the "next" targets may use
// a stable tethering app instead, but will generally override the AOSP apex to use updatable
// package names and keys, so that apex will be unused anyway.
apps: ["TetheringNext"], // Replace to "Tethering" if ConnectivityNextEnableDefaults is false.
}
enable_tethering_next_apex = true
// This is a placeholder comment to avoid merge conflicts
// as the above target may have different "enabled" values
// depending on the branch
apex {
name: "com.android.tethering",
defaults: [
"ConnectivityApexDefaults",
"r-launched-apex-module",
],
compile_multilib: "both",
bootclasspath_fragments: [
"com.android.tethering-bootclasspath-fragment",
],
systemserverclasspath_fragments: [
"com.android.tethering-systemserverclasspath-fragment",
],
multilib: {
first: {
jni_libs: [
"libservice-connectivity",
"libandroid_net_connectivity_com_android_net_module_util_jni",
],
native_shared_libs: ["libnetd_updatable"],
},
both: {
jni_libs: [
"libframework-connectivity-jni",
"libframework-connectivity-tiramisu-jni"
],
},
},
binaries: [
"clatd",
],
canned_fs_config: "canned_fs_config",
bpfs: [
"block.o",
"clatd.o",
"dscp_policy.o",
"netd.o",
"offload.o",
"offload@btf.o",
"test.o",
"test@btf.o",
],
apps: [
"ServiceConnectivityResources",
],
prebuilts: [
"current_sdkinfo",
"privapp_allowlist_com.android.tethering",
"TetheringOutOfProcessFlag",
],
manifest: "manifest.json",
key: "com.android.tethering.key",
// Indicates that pre-installed version of this apex can be compressed.
// Whether it actually will be compressed is controlled on per-device basis.
compressible: true,
androidManifest: "AndroidManifest.xml",
compat_configs: ["connectivity-platform-compat-config"],
}
apex_key {
name: "com.android.tethering.key",
public_key: "com.android.tethering.avbpubkey",
private_key: "com.android.tethering.pem",
}
android_app_certificate {
name: "com.android.tethering.certificate",
certificate: "com.android.tethering",
}
filegroup {
name: "connectivity-hiddenapi-files",
srcs: ["hiddenapi/*.txt"],
visibility: ["//packages/modules/Connectivity:__subpackages__"],
}
// Encapsulate the contributions made by the com.android.tethering to the bootclasspath.
bootclasspath_fragment {
name: "com.android.tethering-bootclasspath-fragment",
contents: [
"framework-connectivity",
"framework-connectivity-t",
"framework-tethering",
],
apex_available: ["com.android.tethering"],
// The bootclasspath_fragments that provide APIs on which this depends.
fragments: [
{
apex: "com.android.art",
module: "art-bootclasspath-fragment",
},
],
// Additional stubs libraries that this fragment's contents use which are
// not provided by another bootclasspath_fragment.
additional_stubs: [
"android-non-updatable",
],
// Additional hidden API flag files to override the defaults. This must only be
// modified by the Soong or platform compat team.
hidden_api: {
max_target_r_low_priority: [
"hiddenapi/hiddenapi-max-target-r-loprio.txt",
],
max_target_o_low_priority: [
"hiddenapi/hiddenapi-max-target-o-low-priority.txt",
"hiddenapi/hiddenapi-max-target-o-low-priority-tiramisu.txt",
],
unsupported: [
"hiddenapi/hiddenapi-unsupported.txt",
"hiddenapi/hiddenapi-unsupported-tiramisu.txt",
],
// The following packages contain classes from other modules on the
// bootclasspath. That means that the hidden API flags for this module
// has to explicitly list every single class this module provides in
// that package to differentiate them from the classes provided by other
// modules. That can include private classes that are not part of the
// API.
split_packages: [
"android.app.usage",
"android.net",
"android.net.netstats",
"android.net.util",
],
// The following packages and all their subpackages currently only
// contain classes from this bootclasspath_fragment. Listing a package
// here won't prevent other bootclasspath modules from adding classes in
// any of those packages but it will prevent them from adding those
// classes into an API surface, e.g. public, system, etc.. Doing so will
// result in a build failure due to inconsistent flags.
package_prefixes: [
"android.net.apf",
"android.net.connectivity",
"android.net.netstats.provider",
"android.net.nsd",
],
},
}
systemserverclasspath_fragment {
name: "com.android.tethering-systemserverclasspath-fragment",
standalone_contents: ["service-connectivity"],
apex_available: ["com.android.tethering"],
}
override_apex {
name: "com.android.tethering.inprocess",
base: "com.android.tethering",
package_name: "com.android.tethering.inprocess",
enabled: enable_tethering_next_apex,
bpfs: [
"block.o",
"clatd.o",
"dscp_policy.o",
"netd.o",
"offload@inprocess.o",
"test@inprocess.o",
],
apps: [
"ServiceConnectivityResources",
"InProcessTethering",
],
prebuilts: [
"current_sdkinfo",
"privapp_allowlist_com.android.tethering",
"TetheringInProcessFlag",
],
}