From 611afa580888988d6872f52be1480c46bc1eb7f3 Mon Sep 17 00:00:00 2001 From: bengris32 Date: Sat, 12 Nov 2022 14:25:51 +0000 Subject: [PATCH] rosemary: Shim missing libutils symbol for Camera HAL * cannot locate symbol "_ZN7android7String87toUpperEv" referenced by "/vendor/lib64/libcam.halsensor.so".... [1] https://cs.android.com/android/_/android/platform/system/core/+/9434f59c178ed8fddb96159101e8bb6d09ddf6d6 Signed-off-by: bengris32 Change-Id: I7ac4e2362a9cca76009785d994d2aa6d103182f1 --- device.mk | 3 +++ extract-files.sh | 3 +++ libshims/Android.bp | 10 ++++++++++ libshims/libshim_utils.cpp | 25 +++++++++++++++++++++++++ 4 files changed, 41 insertions(+) create mode 100644 libshims/libshim_utils.cpp diff --git a/device.mk b/device.mk index 08a570b..47af805 100644 --- a/device.mk +++ b/device.mk @@ -97,6 +97,9 @@ PRODUCT_PACKAGES += \ PRODUCT_PACKAGES += \ libdng_sdk.vendor +PRODUCT_PACKAGES += \ + libshim_utils + # Charger PRODUCT_PACKAGES += \ libsuspend diff --git a/extract-files.sh b/extract-files.sh index 93ff859..4c57b45 100755 --- a/extract-files.sh +++ b/extract-files.sh @@ -78,6 +78,9 @@ function blob_fixup { "${PATCHELF_0_8}" --remove-needed "libhidlbase.so" "${2}" sed -i "s/libhidltransport.so/libhidlbase-v32.so\x00/" "${2}" ;; + vendor/lib64/libcam.halsensor.so) + "${PATCHELF}" --add-needed "libshim_utils.so" "${2}" + ;; vendor/bin/hw/android.hardware.keymaster@4.0-service.beanpod) "${PATCHELF}" --add-needed "libshim_beanpod.so" "${2}" ;; diff --git a/libshims/Android.bp b/libshims/Android.bp index 08c49aa..3236465 100644 --- a/libshims/Android.bp +++ b/libshims/Android.bp @@ -40,6 +40,16 @@ cc_library_shared { local_include_dirs: ["include"] } +cc_library_shared { + name: "libshim_utils", + srcs: ["libshim_utils.cpp"], + vendor: true, + compile_multilib: "64", + shared_libs: [ + "libutils", + ], +} + cc_library_shared { name: "libshim_vtservice", srcs: ["libshim_vtservice.cpp"], diff --git a/libshims/libshim_utils.cpp b/libshims/libshim_utils.cpp new file mode 100644 index 0000000..24d103b --- /dev/null +++ b/libshims/libshim_utils.cpp @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2022 The LineageOS Project + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include + +using namespace android; + +extern "C" { + +void _ZN7android7String87toUpperEv(String8* thisptr) { + const size_t length = thisptr->size(); + if (length == 0) return; + + char* buf = thisptr->lockBuffer(length); + for (size_t i = length; i > 0; --i) { + *buf = static_cast(toupper(*buf)); + buf++; + } + thisptr->unlockBuffer(length); +} + +}