1. Add libnetd_updatable.so in com.android.tethering. The library is loaded by netd. Currently, it mainly targets on a few functions which access BPF maps. The functionality may extend in the future. 2. Attach gcroup progs from libnetd_updatable.so. 3. Move (privileged)TagSocket and untagSocket implementation to mainline module. Combine privilegedTagSocket and untagSocket into a single function. 4. Split related unit tests from netd_unit_test to libnetd_updatable_unit_test as well. Bug: 202086915 Test: cd system/netd; atest Test: atest TrafficStatsTest NetworkUsageStatsTest Change-Id: Ib556458103a4cbb643c1342d9b689ac692160de0
153 lines
4.8 KiB
Plaintext
153 lines
4.8 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"],
|
|
}
|
|
|
|
// 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"],
|
|
compile_multilib: "both",
|
|
updatable: true,
|
|
min_sdk_version: "30",
|
|
bootclasspath_fragments: [
|
|
"com.android.tethering-bootclasspath-fragment",
|
|
],
|
|
systemserverclasspath_fragments: [
|
|
"com.android.tethering-systemserverclasspath-fragment",
|
|
],
|
|
multilib: {
|
|
first: {
|
|
jni_libs: [
|
|
"libservice-connectivity",
|
|
"libcom_android_connectivity_com_android_net_module_util_jni",
|
|
"libtraffic_controller_jni",
|
|
],
|
|
native_shared_libs: ["libnetd_updatable"],
|
|
},
|
|
both: {
|
|
jni_libs: ["libframework-connectivity-jni"],
|
|
},
|
|
},
|
|
binaries: [
|
|
"clatd",
|
|
],
|
|
canned_fs_config: "canned_fs_config",
|
|
bpfs: [
|
|
"clatd.o_mainline",
|
|
"netd.o_mainline",
|
|
"dscp_policy.o",
|
|
"offload.o",
|
|
"test.o",
|
|
],
|
|
apps: [
|
|
"ServiceConnectivityResources",
|
|
],
|
|
prebuilts: ["current_sdkinfo"],
|
|
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",
|
|
}
|
|
|
|
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",
|
|
}
|
|
|
|
// 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-tiramisu",
|
|
"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"],
|
|
},
|
|
}
|
|
|
|
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,
|
|
apps: [
|
|
"ServiceConnectivityResources",
|
|
"InProcessTethering",
|
|
],
|
|
}
|