diff --git a/common/Android.bp b/common/Android.bp
index ed162fa..08e7fd7 100644
--- a/common/Android.bp
+++ b/common/Android.bp
@@ -9,7 +9,7 @@ android_app_import {
name: "MiuiCamera",
owner: "xiaomi",
apk: "proprietary/system/priv-app/MiuiCamera/MiuiCamera.apk",
- overrides: ["GrapheneCamera", "Camera", "Camera2", "Aperture"],
+ overrides: ["GrapheneCamera", "Camera", "Camera2", "Flash", "Aperture"],
certificate: "platform",
dex_preopt: {
enabled: false,
diff --git a/common/common-vendor.mk b/common/common-vendor.mk
index 2d3122c..4094d8a 100644
--- a/common/common-vendor.mk
+++ b/common/common-vendor.mk
@@ -8,7 +8,6 @@ PRODUCT_SOONG_NAMESPACES += \
PRODUCT_COPY_FILES += \
vendor/xiaomi/haydn-miuicamera/common/proprietary/system/lib64/libcamera_algoup_jni.xiaomi.so:$(TARGET_COPY_OUT_SYSTEM)/lib64/libcamera_algoup_jni.xiaomi.so \
vendor/xiaomi/haydn-miuicamera/common/proprietary/system/lib64/libcamera_mianode_jni.xiaomi.so:$(TARGET_COPY_OUT_SYSTEM)/lib64/libcamera_mianode_jni.xiaomi.so \
- vendor/xiaomi/haydn-miuicamera/common/proprietary/system/lib64/libgui-xiaomi.so:$(TARGET_COPY_OUT_SYSTEM)/lib64/libgui-xiaomi.so \
vendor/xiaomi/haydn-miuicamera/common/proprietary/system/lib64/libmicampostproc_client.so:$(TARGET_COPY_OUT_SYSTEM)/lib64/libmicampostproc_client.so \
vendor/xiaomi/haydn-miuicamera/common/proprietary/system/lib64/vendor.xiaomi.hardware.campostproc@1.0.so:$(TARGET_COPY_OUT_SYSTEM)/lib64/vendor.xiaomi.hardware.campostproc@1.0.so \
vendor/xiaomi/haydn-miuicamera/common/proprietary/system/lib64/libOpenCL.so:$(TARGET_COPY_OUT_SYSTEM)/lib64/libOpenCL.so \
diff --git a/common/proprietary/system/lib64/libcamera_algoup_jni.xiaomi.so b/common/proprietary/system/lib64/libcamera_algoup_jni.xiaomi.so
index c2e0a96..c052ec6 100644
Binary files a/common/proprietary/system/lib64/libcamera_algoup_jni.xiaomi.so and b/common/proprietary/system/lib64/libcamera_algoup_jni.xiaomi.so differ
diff --git a/common/proprietary/system/lib64/libcamera_mianode_jni.xiaomi.so b/common/proprietary/system/lib64/libcamera_mianode_jni.xiaomi.so
index e58c787..3cc81b6 100644
Binary files a/common/proprietary/system/lib64/libcamera_mianode_jni.xiaomi.so and b/common/proprietary/system/lib64/libcamera_mianode_jni.xiaomi.so differ
diff --git a/common/proprietary/system/lib64/libgui-xiaomi.so b/common/proprietary/system/lib64/libgui-xiaomi.so
deleted file mode 100644
index 05b3293..0000000
Binary files a/common/proprietary/system/lib64/libgui-xiaomi.so and /dev/null differ
diff --git a/configs/permissions/privapp-permissions-miuivideoplayer.xml b/configs/permissions/privapp-permissions-miuivideoplayer.xml
index 817122b..7dfa541 100644
--- a/configs/permissions/privapp-permissions-miuivideoplayer.xml
+++ b/configs/permissions/privapp-permissions-miuivideoplayer.xml
@@ -5,7 +5,7 @@
-
-
+
+
diff --git a/extract-files.sh b/extract-files.sh
index 13154ab..ebc2ae6 100644
--- a/extract-files.sh
+++ b/extract-files.sh
@@ -56,10 +56,7 @@ fi
function blob_fixup() {
case "${1}" in
system/lib64/libcamera_algoup_jni.xiaomi.so|system/lib64/libcamera_mianode_jni.xiaomi.so)
- patchelf --replace-needed libgui.so libgui-xiaomi.so "${2}"
- ;;
- system/lib64/libgui-xiaomi.so)
- patchelf --set-soname libgui-xiaomi.so "${2}"
+ patchelf --add-needed libgui_shim_leicamera.so "${2}"
;;
system/lib64/libmicampostproc_client.so)
patchelf --remove-needed libhidltransport.so "${2}"
diff --git a/products/board.mk b/products/board.mk
index 1ea860f..9a348df 100644
--- a/products/board.mk
+++ b/products/board.mk
@@ -21,5 +21,6 @@ BOARD_VENDOR_SEPOLICY_DIRS += vendor/xiaomi/haydn-miuicamera/sepolicy/vendor
BUILD_BROKEN_DUP_RULES := true
TARGET_CAMERA_USES_NEWER_HIDL_OVERRIDE_FORMAT := true
+TARGET_CAMERA_OVERRIDE_FORMAT_FROM_RESERVED := true
include vendor/xiaomi/haydn-miuicamera/common/BoardConfigVendor.mk
diff --git a/products/miuicamera.mk b/products/miuicamera.mk
index 0b56627..aa8041f 100644
--- a/products/miuicamera.mk
+++ b/products/miuicamera.mk
@@ -34,12 +34,15 @@ PRODUCT_SYSTEM_PROPERTIES += \
persist.log.tag.CAM_BoostFrameworkImpl=S \
ro.product.mod_device=haydn_in_global \
persist.vendor.camera.privapp.list=com.android.camera \
- ro.com.google.lens.oem_camera_package=com.android.camera \
- vendor.camera.aux.packagelist=com.android.camera,org.pixelexperience.faceunlock
+ ro.com.google.lens.oem_camera_package=com.android.camera
# Overlay
PRODUCT_PACKAGES += \
MiuiCameraOverlayLos \
MiuiCameraOverlayAosp
+# Shim
+PRODUCT_PACKAGES += \
+ libgui_shim_leicamera
+
$(call inherit-product, vendor/xiaomi/haydn-miuicamera/common/common-vendor.mk)
diff --git a/proprietary-files.txt b/proprietary-files.txt
index 787e0ad..9ce2b57 100644
--- a/proprietary-files.txt
+++ b/proprietary-files.txt
@@ -1,11 +1,10 @@
# All unpinned blobs below are extracted from miui_HAYDNGlobal_V14.0.3.0.TKKMIXM
-product/priv-app/MiuiCamera/MiuiCamera.apk:system/priv-app/MiuiCamera/MiuiCamera.apk;OVERRIDES=GrapheneCamera,Camera,Camera2,Aperture|1eb82ca99df9a4442133cdc6573491b8ca092740
+product/priv-app/MiuiCamera/MiuiCamera.apk:system/priv-app/MiuiCamera/MiuiCamera.apk;OVERRIDES=GrapheneCamera,Camera,Camera2,Flash,Aperture|1eb82ca99df9a4442133cdc6573491b8ca092740
system/priv-app/MiuiGallery/MiuiGallery.apk;OVERRIDES=Gallery2,Photos
system/priv-app/MiuiVideoPlayer/MiuiVideoPlayer.apk
system/lib64/libcamera_algoup_jni.xiaomi.so
system/lib64/libcamera_mianode_jni.xiaomi.so
-system/lib64/libgui.so:system/lib64/libgui-xiaomi.so
system/lib64/libmicampostproc_client.so
system/lib64/vendor.xiaomi.hardware.campostproc@1.0.so
vendor/lib64/libSNPE.so:system/lib64/libSNPE.so
diff --git a/sepolicy/vendor/hal_camera_default.te b/sepolicy/vendor/hal_camera_default.te
index 332be3a..5dd7a4e 100644
--- a/sepolicy/vendor/hal_camera_default.te
+++ b/sepolicy/vendor/hal_camera_default.te
@@ -1,7 +1,6 @@
binder_call(hal_camera_default, platform_app)
allow hal_camera_default mnt_vendor_file:dir { search };
-allow hal_camera_default proc_stat:file { open read };
allow hal_camera_default vendor_xdsp_device:chr_file { read };
# Allow Camera to access system_server
diff --git a/shims/Android.bp b/shims/Android.bp
new file mode 100644
index 0000000..a5d64c8
--- /dev/null
+++ b/shims/Android.bp
@@ -0,0 +1,11 @@
+//
+// Copyright (C) 2017-2022 The LineageOS Project
+//
+// SPDX-License-Identifier: Apache-2.0
+//
+
+cc_library_shared {
+ name: "libgui_shim_leicamera",
+ srcs: ["libgui_shim_leicamera.c"],
+ compile_multilib: "64",
+}
diff --git a/shims/libgui_shim_leicamera.c b/shims/libgui_shim_leicamera.c
new file mode 100644
index 0000000..53adfd1
--- /dev/null
+++ b/shims/libgui_shim_leicamera.c
@@ -0,0 +1,9 @@
+/*
+ * Copyright (C) 2023 The LineageOS Project
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+void _ZN7android18BnProducerListener16onBufferDetachedEi() {
+ return;
+}