From 963e04b53656b7299ca6b1c547d48bf9cdb3e441 Mon Sep 17 00:00:00 2001 From: AmeChanRain Date: Wed, 11 Oct 2023 01:08:25 +0000 Subject: [PATCH] sapphire: Use Shim for missing symbols 04-03 15:00:34.291 1443 1443 F linker : CANNOT LINK EXECUTABLE "/vendor/bin/hw/vendor.dolby.media.c2@1.0-service": cannot locate symbol "_ZN7android13FilterWrapper17getParamReflectorEv" referenced by "/vendor/lib64/libcodec2_hidl@1.0.so"... 04-03 15:00:34.324 1444 1444 F linker : CANNOT LINK EXECUTABLE "/vendor/bin/hw/vendor.qti.media.c2@1.0-service": cannot locate symbol "_ZN7android13FilterWrapper17getParamReflectorEv" referenced by "/vendor/lib64/libcodec2_hidl@1.0.so"... 04-03 15:00:34.339 1445 1445 F linker : CANNOT LINK EXECUTABLE "/vendor/bin/hw/vendor.qti.media.c2audio@1.0-service": cannot locate symbol "_ZN7android13FilterWrapper17getParamReflectorEv" referenced by "/vendor/lib64/libcodec2_hidl@1.0.so"... 04-03 15:00:35.065 1613 1613 F linker : CANNOT LINK EXECUTABLE "/vendor/bin/vendor.dpmd": cannot locate symbol "_ZN7android8hardware6Parcel7setDataEPKhm" referenced by "/vendor/lib64/vendor.libdpmframework.so"... --- common.mk | 3 +++ extract-files.sh | 10 ++++++++++ shims/Android.mk | 9 +++++++++ shims/libshim.cpp | 9 +++++++++ 4 files changed, 31 insertions(+) create mode 100644 shims/Android.mk create mode 100644 shims/libshim.cpp diff --git a/common.mk b/common.mk index 555c50a..5ac5fa4 100644 --- a/common.mk +++ b/common.mk @@ -557,6 +557,9 @@ PRODUCT_COPY_FILES += \ frameworks/native/data/etc/android.software.sip.voip.xml:$(TARGET_COPY_OUT_VENDOR)/etc/permissions/android.software.sip.voip.xml endif +# Shim for missing symbols +PRODUCT_PACKAGES += libshim + # Thermal PRODUCT_PACKAGES += \ android.hardware.thermal@2.0-service.qti-v2 \ diff --git a/extract-files.sh b/extract-files.sh index 9d5dc26..65db773 100755 --- a/extract-files.sh +++ b/extract-files.sh @@ -75,6 +75,16 @@ function blob_fixup() { [ "$2" = "" ] && return 0 "${PATCHELF}" --replace-needed "libstagefright_foundation.so" "libstagefright_foundation-v33.so" "${2}" ;; + vendor/bin/hw/vendor.qti.media.c2@1.0-service|vendor/bin/hw/vendor.dolby.media.c2@1.0-service|vendor/bin/hw/vendor.qti.media.c2audio@1.0-service) + [ "$2" = "" ] && return 0 + "${PATCHELF}" --replace-needed "libcodec2_hidl@1.0.so" "${2}" + "${PATCHELF}" --add-needed "libshim.so" "${2}" + ;; + vendor/bin/vendor.dpmd) + [ "$2" = "" ] && return 0 + "${PATCHELF}" --replace-needed "vendor.libdpmframework.so" "${2}" + "${PATCHELF}" --add-needed "libshim.so" "${2}" + ;; vendor/etc/seccomp_policy/atfwd@2.0.policy) [ "$2" = "" ] && return 0 grep -q "gettid: 1" "${2}" || echo "gettid: 1" >> "${2}" diff --git a/shims/Android.mk b/shims/Android.mk new file mode 100644 index 0000000..312f55c --- /dev/null +++ b/shims/Android.mk @@ -0,0 +1,9 @@ +LOCAL_PATH := $(call my-dir) + +include $(CLEAR_VARS) +LOCAL_SRC_FILES := libshim.cpp +LOCAL_SHARED_LIBRARIES := libui libutils +LOCAL_MODULE := libshim +LOCAL_MODULE_TAGS := optional +LOCAL_PROPRIETARY_MODULE := true +include $(BUILD_SHARED_LIBRARY) diff --git a/shims/libshim.cpp b/shims/libshim.cpp new file mode 100644 index 0000000..1ff1f28 --- /dev/null +++ b/shims/libshim.cpp @@ -0,0 +1,9 @@ +#include + +namespace android { + extern "C" void _ZN7android13FilterWrapper17getParamReflectorEv() { + } + + extern "C" void _ZN7android8hardware6Parcel7setDataEPKhm() { + } +}