From 0bbe3d2ce4c371b106a124a4be30b3f52c9ffcbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Mon, 31 Jan 2022 20:08:32 -0800 Subject: [PATCH 1/5] libclat only depends on libbase_headers not libbase itself MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Test: TreeHugger Signed-off-by: Maciej Żenczykowski Change-Id: Iad66f0d4bed4100261e8aa7d135e62336cdd1ae8 --- service/native/libs/libclat/Android.bp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/service/native/libs/libclat/Android.bp b/service/native/libs/libclat/Android.bp index 5e208d8dd5..0f8caf4330 100644 --- a/service/native/libs/libclat/Android.bp +++ b/service/native/libs/libclat/Android.bp @@ -23,6 +23,7 @@ cc_library_static { "bpf_connectivity_headers", "bpf_headers", "bpf_syscall_wrappers", + "libbase_headers", ], srcs: [ "TcUtils.cpp", // TODO: move to frameworks/libs/net @@ -31,7 +32,6 @@ cc_library_static { ], stl: "libc++_static", static_libs: [ - "libbase", "libip_checksum", "libnetdutils", // for netdutils/UidConstants.h in bpf_shared.h ], From 2f7dac1badab182bf96db872c5b3bfcfc03d0bd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Mon, 31 Jan 2022 20:25:41 -0800 Subject: [PATCH 2/5] remove spurious headers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit bpf_connectivity_headers already pulls in bpf_headers, which already pulls in bpf_syscall_wrappers. Test: TreeHugger Signed-off-by: Maciej Żenczykowski Change-Id: Ib22da8d433bd3187349f06f41ec064360c38982f --- Tethering/Android.bp | 1 - service/native/Android.bp | 2 -- service/native/libs/libclat/Android.bp | 4 ---- 3 files changed, 7 deletions(-) diff --git a/Tethering/Android.bp b/Tethering/Android.bp index af247de6fc..ae96e8c160 100644 --- a/Tethering/Android.bp +++ b/Tethering/Android.bp @@ -99,7 +99,6 @@ cc_library { ], min_sdk_version: "30", header_libs: [ - "bpf_syscall_wrappers", "bpf_connectivity_headers", ], srcs: [ diff --git a/service/native/Android.bp b/service/native/Android.bp index a20c54fa69..487fca529f 100644 --- a/service/native/Android.bp +++ b/service/native/Android.bp @@ -26,8 +26,6 @@ cc_library { ], header_libs: [ "bpf_connectivity_headers", - "bpf_headers", - "bpf_syscall_wrappers", ], static_libs: [ "libnetdutils", diff --git a/service/native/libs/libclat/Android.bp b/service/native/libs/libclat/Android.bp index 0f8caf4330..17ee9967f3 100644 --- a/service/native/libs/libclat/Android.bp +++ b/service/native/libs/libclat/Android.bp @@ -21,8 +21,6 @@ cc_library_static { defaults: ["netd_defaults"], header_libs: [ "bpf_connectivity_headers", - "bpf_headers", - "bpf_syscall_wrappers", "libbase_headers", ], srcs: [ @@ -47,8 +45,6 @@ cc_test { test_suites: ["device-tests"], header_libs: [ "bpf_connectivity_headers", - "bpf_headers", - "bpf_syscall_wrappers", ], srcs: [ "TcUtilsTest.cpp", From dcae35166334fc3e350f446a534716e2024dcee7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Mon, 31 Jan 2022 19:59:32 -0800 Subject: [PATCH 3/5] link libbase & libnetdutils dynamically - save ~17.5 kiB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before: $ adbz root && adbz wait-for-device && adbz shell ls -l /apex/com.android.tethering/{bin/for-system,lib,liv64} /apex/com.android.tethering/bin/for-system: = -rwsr-sr-x 1 clat clat 18412 1969-12-31 16:00 clatd /apex/com.android.tethering/lib: = -rw-r--r-- 1 system system 64560 1969-12-31 16:00 libandroid_net_connectivity_com_android_net_module_util_jni.so = -rw-r--r-- 1 system system 713636 1969-12-31 16:00 libc++.so = -rw-r--r-- 1 system system 13596 1969-12-31 16:00 libframework-connectivity-jni.so d -rw-r--r-- 1 system system 212624 1969-12-31 16:00 libnetd_updatable.so d -rw-r--r-- 1 system system 948044 1969-12-31 16:00 libservice-connectivity.so After: $ adbz root && adbz wait-for-device && adbz shell ls -l /apex/com.android. /apex/com.android.tethering/bin/for-system: = -rwsr-sr-x 1 clat clat 18412 1969-12-31 16:00 clatd /apex/com.android.tethering/lib: = -rw-r--r-- 1 system system 64560 1969-12-31 16:00 libandroid_net_connectivity_com_android_net_module_util_jni.so + -rw-r--r-- 1 system system 251404 1969-12-31 16:00 libbase.so = -rw-r--r-- 1 system system 713636 1969-12-31 16:00 libc++.so = -rw-r--r-- 1 system system 13596 1969-12-31 16:00 libframework-connectivity-jni.so d -rw-r--r-- 1 system system 45584 1969-12-31 16:00 libnetd_updatable.so + -rw-r--r-- 1 system system 95872 1969-12-31 16:00 libnetdutils.so d -rw-r--r-- 1 system system 749980 1969-12-31 16:00 libservice-connectivity.so Delta: -212624-948044+251404+45584+95872+749980 == -17828 Test: TreeHugger Signed-off-by: Maciej Żenczykowski Change-Id: Id88468442c4f3f24d5bca96b75effb69f20038bf --- netd/Android.bp | 6 ++---- service/Android.bp | 4 ++-- service/native/Android.bp | 2 +- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/netd/Android.bp b/netd/Android.bp index 38a11acb3e..b98a85954e 100644 --- a/netd/Android.bp +++ b/netd/Android.bp @@ -31,12 +31,10 @@ cc_library { "BpfHandler.cpp", "NetdUpdatable.cpp", ], - static_libs: [ - "libbase", - "libnetdutils", - ], shared_libs: [ + "libbase", "liblog", + "libnetdutils", ], export_include_dirs: ["include"], header_abi_checker: { diff --git a/service/Android.bp b/service/Android.bp index 637c1f6c1b..2e997c5e09 100644 --- a/service/Android.bp +++ b/service/Android.bp @@ -67,15 +67,15 @@ cc_library_shared { "libbase_headers", ], static_libs: [ - "libbase", "libclat", "libip_checksum", - "libnetdutils", "libnetjniutils", "libtraffic_controller", "netd_aidl_interface-lateststable-ndk", ], shared_libs: [ + "libbase", + "libnetdutils", "liblog", "libnativehelper", ], diff --git a/service/native/Android.bp b/service/native/Android.bp index 487fca529f..cb26bc3c1c 100644 --- a/service/native/Android.bp +++ b/service/native/Android.bp @@ -28,7 +28,6 @@ cc_library { "bpf_connectivity_headers", ], static_libs: [ - "libnetdutils", // TrafficController would use the constants of INetd so that add // netd_aidl_interface-lateststable-ndk. "netd_aidl_interface-lateststable-ndk", @@ -37,6 +36,7 @@ cc_library { // TODO: Find a good way to remove libbase. "libbase", "libcutils", + "libnetdutils", "libutils", "liblog", ], From 167c8607e6930cde4507e6d30b4b5dcf925eb20d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Wed, 2 Feb 2022 17:21:36 -0800 Subject: [PATCH 4/5] libservice-connectivity - dynamically link c++ - saves 600 kB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before in /apex/com.android.tethering/lib: -rw-r--r-- 1 system system 749980 1969-12-31 16:00 libservice-connectivity.so After: -rw-r--r-- 1 system system 150748 1969-12-31 16:00 libservice-connectivity.so Test: TreeHugger Signed-off-by: Maciej Żenczykowski Change-Id: I6892d81ca597d27cc1a85180f7ffa39f2b3de1be --- service/Android.bp | 1 - 1 file changed, 1 deletion(-) diff --git a/service/Android.bp b/service/Android.bp index 2e997c5e09..a3a2825038 100644 --- a/service/Android.bp +++ b/service/Android.bp @@ -61,7 +61,6 @@ cc_library_shared { "jni/com_android_server_TestNetworkService.cpp", "jni/onload.cpp", ], - stl: "libc++_static", header_libs: [ "bpf_connectivity_headers", "libbase_headers", From 6a6b071dec18b68e14b00bf7e09951812fd6f1a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maciej=20=C5=BBenczykowski?= Date: Wed, 2 Feb 2022 17:26:59 -0800 Subject: [PATCH 5/5] jni - dynamically link C++ - saves 43 kB MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since we already ship libc++ in the apex anyway... Before in /apex/com.android.tethering/lib: -rw-r--r-- 1 system system 64560 1969-12-31 16:00 libandroid_net_connectivity_com_android_net_module_util_jni.so After: -rw-r--r-- 1 system system 21460 1969-12-31 16:00 libandroid_net_connectivity_com_android_net_module_util_jni.so Test: TreeHugger Signed-off-by: Maciej Żenczykowski Change-Id: I50417e69a9a0b03d24212aa3f875bf241e0b0527 --- service/Android.bp | 1 - 1 file changed, 1 deletion(-) diff --git a/service/Android.bp b/service/Android.bp index a3a2825038..8d491b328a 100644 --- a/service/Android.bp +++ b/service/Android.bp @@ -33,7 +33,6 @@ cc_library_shared { srcs: [ "jni/com_android_net_module_util/onload.cpp", ], - stl: "libc++_static", static_libs: [ "libnet_utils_device_common_bpfjni", ],