exynos9610: Patch wfc-pkt-router to load libip_checksum_shim
authorNolen Johnson <johnsonnolen@gmail.com>
Sat, 5 Nov 2022 05:10:43 +0000 (01:10 -0400)
committerNolen Johnson <johnsonnolen@gmail.com>
Thu, 10 Nov 2022 20:24:10 +0000 (21:24 +0100)
* In Android T, AOSP moved `libnetutils` to an APEX that is inaccessible
  to the vendor namespace - and it can't be built to vendor in any
  treble-compliant way.

* Our `wfc-pkt-router` blob lives on vendor, and relies on `libnetutils.so`.

* Upon further analysis, we only reply on a few checksum related functions,
  such as the symbol `ipv4_pseudo_header_checksum`, which lives in the (now)
  staticly included dependency of `libnetutils.so`, `libip_checksum`.

* To work around this, we enabled building `libip_checksum` as a stand-alone
  vendor_available library called `libip_checksum_shim.so`, and `patchelf`
  `wfc-pkt-router` to depend on `lib_up_checksum.so`.

Depends-on: I7dff9ec6c8ff146f6090e9519ece7844b4a057eb
Change-Id: Ibaae5435c20f36469bf3417069a3fa3cfeb3aa9a

common.mk
extract-files.sh

index 73cadb0f155ab350e3d79752f96f9e82940cfd9b..68b0c66dd474ab3af7b51e9af498f916fe649509 100644 (file)
--- a/common.mk
+++ b/common.mk
@@ -390,6 +390,7 @@ PRODUCT_PACKAGES += \
 PRODUCT_PACKAGES += \
     android.hardware.wifi@1.0-service \
     hostapd \
+    libip_checksum_shim.vendor \
     WifiOverlay \
     wpa_supplicant
 
index 46b750b3223224d9aff7cbd20b5145a78e98b845..2d54eeea7f0ea9d9980c78b824e2b2e39efd0240 100755 (executable)
@@ -64,6 +64,8 @@ BLOB_ROOT="${ANDROID_ROOT}"/vendor/"${VENDOR}"/"${DEVICE_COMMON}"/proprietary
 
 "${PATCHELF}" --replace-needed "libmedia.so" "libmedia_ims.so" "${BLOB_ROOT}"/lib64/libmediaadaptor.so
 
+"${PATCHELF}" --replace-needed "libnetutils.so" "libip_checksum_shim.so" "${BLOB_ROOT}"/vendor/bin/wfc-pkt-router
+
 "${PATCHELF}" --replace-needed "libutils.so" "libutils-v32.so" "${BLOB_ROOT}"/vendor/lib/libexynosdisplay.so
 "${PATCHELF}" --replace-needed "libutils.so" "libutils-v32.so" "${BLOB_ROOT}"/vendor/lib64/libexynosdisplay.so
 "${PATCHELF}" --replace-needed "libutils.so" "libutils-v32.so" "${BLOB_ROOT}"/vendor/lib/hw/hwcomposer.exynos9610.so