From 9bb5037bc0af0485c4e6aa05885f7b3cfc318ea2 Mon Sep 17 00:00:00 2001 From: swiitchOFF <120115258+swiitchOFF@users.noreply.github.com> Date: Mon, 25 Aug 2025 14:39:50 +0530 Subject: [PATCH] dolby: Patch vendor.dolby.media.c2@1.0-service with libshim_dolby 08-25 13:26:29.598 1006 1006 F libc : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0 in tid 1006 (vendor.dolby.me), pid 1006 (vendor.dolby.me) 08-25 13:26:29.731 3084 3084 F DEBUG : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 08-25 13:26:29.731 3084 3084 F DEBUG : crDroid Version: '11.8' 08-25 13:26:29.731 3084 3084 F DEBUG : Build fingerprint: 'Xiaomi/vili/vili:14/UKQ1.231207.002/V816.0.10.0.UKDMIXM:user/release-keys' 08-25 13:26:29.731 3084 3084 F DEBUG : Revision: '0' 08-25 13:26:29.731 3084 3084 F DEBUG : ABI: 'arm64' 08-25 13:26:29.731 3084 3084 F DEBUG : Timestamp: 2025-08-25 13:26:29.665897496+0530 08-25 13:26:29.731 3084 3084 F DEBUG : Process uptime: 10s 08-25 13:26:29.731 3084 3084 F DEBUG : Cmdline: /vendor/bin/hw/vendor.dolby.media.c2@1.0-service 08-25 13:26:29.731 3084 3084 F DEBUG : pid: 1006, tid: 1006, name: vendor.dolby.me >>> /vendor/bin/hw/vendor.dolby.media.c2@1.0-service <<< 08-25 13:26:29.731 3084 3084 F DEBUG : uid: 1046 08-25 13:26:29.731 3084 3084 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0000000000000000 08-25 13:26:29.731 3084 3084 F DEBUG : Cause: null pointer dereference 08-25 13:26:29.731 3084 3084 F DEBUG : x0 b400006f05b52fc0 x1 0000007fc905ed10 x2 0000006f45b59a90 x3 0000007fc905ecd8 08-25 13:26:29.731 3084 3084 F DEBUG : x4 0000000000000028 x5 0200006ef5b52470 x6 0000000000000000 x7 0000000000000000 08-25 13:26:29.731 3084 3084 F DEBUG : x8 00000000ffffffff x9 00000000eff00000 x10 0000006fe69e4fa4 x11 0000000012b97fad 08-25 13:26:29.731 3084 3084 F DEBUG : x12 0000000000028003 x13 b400006ef5b528e0 x14 0000000000000024 x15 000000000000005f 08-25 13:26:29.731 3084 3084 F DEBUG : x16 0000006fe5ebd230 x17 0000006fede1ca84 x18 0000006fef730000 x19 0000000000000000 08-25 13:26:29.731 3084 3084 F DEBUG : x20 b400006f05b52eb0 x21 0000006d55852090 x22 0000006fef2fff00 x23 0000000000000000 08-25 13:26:29.731 3084 3084 F DEBUG : x24 0000006fef2fff00 x25 b400006d55b59140 x26 0000000000000001 x27 0000000000000000 08-25 13:26:29.731 3084 3084 F DEBUG : x28 0000000000000000 x29 0000007fc905ece0 08-25 13:26:29.731 3084 3084 F DEBUG : lr 0000006fe5e915f4 sp 0000007fc905ece0 pc 0000006fede1caa0 pst 0000000080001000 08-25 13:26:29.731 3084 3084 F DEBUG : 7 total frames 08-25 13:26:29.731 3084 3084 F DEBUG : backtrace: 08-25 13:26:29.731 3084 3084 F DEBUG : #00 pc 0000000000010aa0 /vendor/lib64/libutils.so (android::RefBase::decStrong(void const*) const+28) (BuildId: 2fd112063e39cb6f651b185f9e6234f2) 08-25 13:26:29.731 3084 3084 F DEBUG : #01 pc 00000000000515f0 /vendor/lib64/android.hardware.media.c2@1.0.so (android::hardware::media::c2::V1_0::BnHwComponentStore::_hidl_createInterface(android::hidl::base::V1_0::BnHwBase*, android::hardware::Parcel const&, android::hardware::Parcel*, std::__1::function)+376) (BuildId: f0d25f49428387d313920490e7ec7c8c) 08-25 13:26:29.731 3084 3084 F DEBUG : #02 pc 00000000000525f0 /vendor/lib64/android.hardware.media.c2@1.0.so (android::hardware::media::c2::V1_0::BnHwComponentStore::onTransact(unsigned int, android::hardware::Parcel const&, android::hardware::Parcel*, unsigned int, std::__1::function)+1004) (BuildId: f0d25f49428387d313920490e7ec7c8c) 08-25 13:26:29.731 3084 3084 F DEBUG : #03 pc 000000000008ab7c /vendor/lib64/libhidlbase.so (android::hardware::BHwBinder::transact(unsigned int, android::hardware::Parcel const&, android::hardware::Parcel*, unsigned int, std::__1::function)+92) (BuildId: 1d845c84de7e27fc2c78f04ee8f4aae0) 08-25 13:26:29.731 3084 3084 F DEBUG : #04 pc 0000000000042eac /vendor/lib64/libhidlbase.so (android::hardware::IPCThreadState::joinThreadPool(bool)+1344) (BuildId: 1d845c84de7e27fc2c78f04ee8f4aae0) 08-25 13:26:29.731 3084 3084 F DEBUG : #05 pc 000000000000124c /vendor/bin/hw/vendor.dolby.media.c2@1.0-service (main+500) (BuildId: 394e52c5b5064b9f64c91bd2d615f078) 08-25 13:26:29.731 3084 3084 F DEBUG : #06 pc 0000000000055160 /apex/com.android.runtime/lib64/bionic/libc.so (__libc_init+116) (BuildId: b310372d5ddccd24fca9f3a465bff80c) Co-Authored-By: ZiadTamer Signed-off-by: swiitchOFF <120115258+swiitchOFF@users.noreply.github.com> --- Android.bp | 2 +- dolby.mk | 3 ++ libshims/Android.bp | 17 +++++++++++ libshims/libshim_dolby.cpp | 27 ++++++++++++++++++ .../bin/hw/vendor.dolby.media.c2@1.0-service | Bin 11488 -> 68057 bytes 5 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 libshims/Android.bp create mode 100644 libshims/libshim_dolby.cpp mode change 100644 => 100755 proprietary/vendor/bin/hw/vendor.dolby.media.c2@1.0-service diff --git a/Android.bp b/Android.bp index c41bff1..187b71f 100644 --- a/Android.bp +++ b/Android.bp @@ -238,7 +238,7 @@ cc_prebuilt_binary { target: { android_arm64: { srcs: ["proprietary/vendor/bin/hw/vendor.dolby.media.c2@1.0-service"], - shared_libs: ["libbase", "liblog", "libcodec2", "libutils", "android.hardware.media.c2@1.0", "android.hardware.media.c2@1.1", "android.hardware.media.c2@1.2", "libcodec2_hidl@1.0", "libcodec2_hidl@1.1", "libcodec2_hidl@1.2", "libcodec2_vndk", "libhidlbase", "libavservices_minijail", "libbinder", "libcodec2_store_dolby", "libc++", "libc", "libm", "libdl", ], + shared_libs: ["libshim_dolby", "libbase", "liblog", "libcodec2", "libutils", "android.hardware.media.c2@1.0", "android.hardware.media.c2@1.1", "android.hardware.media.c2@1.2", "libcodec2_hidl@1.0", "libcodec2_hidl@1.1", "libcodec2_hidl@1.2", "libcodec2_vndk", "libhidlbase", "libavservices_minijail", "libbinder", "libcodec2_store_dolby", "libc++", "libc", "libm", "libdl", ], }, }, compile_multilib: "64", diff --git a/dolby.mk b/dolby.mk index 5541c9f..2349c22 100644 --- a/dolby.mk +++ b/dolby.mk @@ -41,6 +41,9 @@ PRODUCT_COPY_FILES += \ PRODUCT_PACKAGES += \ libstagefright_foundation-v33 +PRODUCT_PACKAGES += \ + libshim_dolby + # Overlays PRODUCT_PACKAGES += \ DolbyFrameworksResCommon diff --git a/libshims/Android.bp b/libshims/Android.bp new file mode 100644 index 0000000..13bead4 --- /dev/null +++ b/libshims/Android.bp @@ -0,0 +1,17 @@ +// +// Copyright (C) 2023 The LineageOS Project +// +// SPDX-License-Identifier: Apache-2.0 +// + +cc_library_shared { + name: "libshim_dolby", + srcs: ["libshim_dolby.cpp"], + compile_multilib: "64", + shared_libs: [ + "liblog", + "libdl", + "libc", + ], + vendor: true, +} diff --git a/libshims/libshim_dolby.cpp b/libshims/libshim_dolby.cpp new file mode 100644 index 0000000..1be95fd --- /dev/null +++ b/libshims/libshim_dolby.cpp @@ -0,0 +1,27 @@ +// +// SPDX-FileCopyrightText: The LineageOS Project +// SPDX-License-Identifier: Apache-2.0 +// + +#include +#include + +extern "C" void _ZNK7android7RefBase9incStrongEPKv(void* thisptr, const void* id) { + if (!thisptr) { + ALOGE("DolbyShim: incStrong called on nullptr!"); + return; + } + typedef void (*RealFunc)(void*, const void*); + static RealFunc real = (RealFunc)dlsym(RTLD_NEXT, "_ZNK7android7RefBase9incStrongEPKv"); + if (real) real(thisptr, id); +} + +extern "C" void _ZNK7android7RefBase9decStrongEPKv(void* thisptr, const void* id) { + if (!thisptr) { + ALOGE("DolbyShim: decStrong called on nullptr!"); + return; + } + typedef void (*RealFunc)(void*, const void*); + static RealFunc real = (RealFunc)dlsym(RTLD_NEXT, "_ZNK7android7RefBase9decStrongEPKv"); + if (real) real(thisptr, id); +} diff --git a/proprietary/vendor/bin/hw/vendor.dolby.media.c2@1.0-service b/proprietary/vendor/bin/hw/vendor.dolby.media.c2@1.0-service old mode 100644 new mode 100755 index c3254789be37daa3b731067058dad11ad09c4099..30e8ec446306412f5dbb340ef6fd083f7e839194 GIT binary patch delta 3236 zcmaD5d2=$$1PgWn1_uUd2BC@eih>Qy3}67GIVP^OpIpFXG1-F2V&aQ}$rBhYCINX7 zj27G=l`LSzj1w0MPn;&l&IaezGcerX1oPlD0|O&i0Hg(kC7^sv8lq1ELP4#7=mF_7 zfa*i16`<K2DaT^0e@Y9kM5IX>>5s99Bm`SxBi4Qgc#s?b&6oJtkU|9wRCLj&+ z=?^xDhtTNl+Ppy9fpKzzn!v%i~z~(~Hey+_8q7Aep4)94ZZVq5>WZGQI zmdK)zlbKYUk(nExlAn`QsaKp2aT3HI3=Byun~fCSF&e@`gc~9aZ2v<5E0l)$mm;seTr!Byy0_~f8kx5(_Nheqw$OoCQg|U%o@09Q02*wZKvj%D z42v9z$&qUMjI5J8)$AELC!bWa_k_6^rUGIv149vz0WuV75ChCdFggho@<@PjvY>i7 hE66nQ&AsZuOp_Pr2x#JpO^~xd0A{Jc=9`-Ci~#D7O)CHZ