d2s: Make camera blob load with v28 libc++

* It requires __sfp_handle_exceptions

Change-Id: I504c847c8fd9a28fbad519cac781196369e7a3be
diff --git a/device.mk b/device.mk
index 89b1fe5..3cb666f 100644
--- a/device.mk
+++ b/device.mk
@@ -25,3 +25,8 @@
 
 # Overlays
 DEVICE_PACKAGE_OVERLAYS += $(LOCAL_PATH)/overlay
+
+# VNDK
+PRODUCT_COPY_FILES += \
+    prebuilts/vndk/v28/arm64/arch-arm-armv8-a/shared/vndk-sp/libc++.so:$(TARGET_COPY_OUT_VENDOR)/lib/libc++-v28.so \
+    prebuilts/vndk/v28/arm64/arch-arm64-armv8-a/shared/vndk-sp/libc++.so:$(TARGET_COPY_OUT_VENDOR)/lib64/libc++-v28.so
diff --git a/extract-files.sh b/extract-files.sh
index a8a94f3..b1a2d03 100755
--- a/extract-files.sh
+++ b/extract-files.sh
@@ -6,6 +6,14 @@
 # SPDX-License-Identifier: Apache-2.0
 #
 
+function blob_fixup() {
+    case "${1}" in
+        vendor/lib*/libiu456_datapath_processor.so)
+            "${PATCHELF}" --replace-needed libc++.so libc++-v28.so "${2}"
+            ;;
+    esac
+}
+
 # If we're being sourced by the common script that we called,
 # stop right here. No need to go down the rabbit hole.
 if [ "${BASH_SOURCE[0]}" != "${0}" ]; then