diff --git a/app/Android.bp b/app/Android.bp
index af0c230..e8d3aa8 100644
--- a/app/Android.bp
+++ b/app/Android.bp
@@ -46,6 +46,7 @@
         "Aperture_androidx.media3_media3-exoplayer",
         "Aperture_androidx.media3_media3-ui",
         "Aperture_com.google.zxing_core",
+        "Aperture_io.github.zxing-cpp_android",
         "Aperture_io.coil-kt_coil",
         "Aperture_io.coil-kt_coil-video",
     ],
diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 95414d1..536ad70 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -108,6 +108,7 @@
 
     // ZXing
     implementation("com.google.zxing:core:3.5.3")
+    implementation("io.github.zxing-cpp:android:2.2.0")
 
     // Coil
     implementation("io.coil-kt:coil:2.4.0")
diff --git a/app/libs/Android.bp b/app/libs/Android.bp
index 0a24a7b..b4f8b52 100644
--- a/app/libs/Android.bp
+++ b/app/libs/Android.bp
@@ -946,3 +946,36 @@
     ],
     java_version: "1.7",
 }
+
+android_library_import {
+    name: "Aperture_io.github.zxing-cpp_android-nodeps",
+    aars: ["io/github/zxing-cpp/android/2.2.0/android-2.2.0.aar"],
+    sdk_version: "34",
+    min_sdk_version: "14",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
+    static_libs: [
+        "Aperture_androidx.camera_camera-core",
+        "kotlin-stdlib-jdk8",
+    ],
+    extract_jni: true,
+}
+
+android_library {
+    name: "Aperture_io.github.zxing-cpp_android",
+    sdk_version: "34",
+    min_sdk_version: "14",
+    apex_available: [
+        "//apex_available:platform",
+        "//apex_available:anyapex",
+    ],
+    manifest: "io/github/zxing-cpp/android/2.2.0/AndroidManifest.xml",
+    static_libs: [
+        "Aperture_io.github.zxing-cpp_android-nodeps",
+        "Aperture_androidx.camera_camera-core",
+        "kotlin-stdlib-jdk8",
+    ],
+    java_version: "1.7",
+}
diff --git a/app/libs/io/github/zxing-cpp/android/2.2.0/AndroidManifest.xml b/app/libs/io/github/zxing-cpp/android/2.2.0/AndroidManifest.xml
new file mode 100644
index 0000000..8e40224
--- /dev/null
+++ b/app/libs/io/github/zxing-cpp/android/2.2.0/AndroidManifest.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns:android="http://schemas.android.com/apk/res/android"
+    package="io.github.zxingcpp" >
+
+    <uses-sdk android:minSdkVersion="21" />
+
+</manifest>
\ No newline at end of file
diff --git a/app/libs/io/github/zxing-cpp/android/2.2.0/AndroidManifest.xml.license b/app/libs/io/github/zxing-cpp/android/2.2.0/AndroidManifest.xml.license
new file mode 100644
index 0000000..c0956dc
--- /dev/null
+++ b/app/libs/io/github/zxing-cpp/android/2.2.0/AndroidManifest.xml.license
@@ -0,0 +1,3 @@
+SPDX-FileCopyrightText: 2024 zxing-cpp community
+
+SPDX-License-Identifier: Apache-2.0
diff --git a/app/libs/io/github/zxing-cpp/android/2.2.0/android-2.2.0.aar b/app/libs/io/github/zxing-cpp/android/2.2.0/android-2.2.0.aar
new file mode 100644
index 0000000..4abde84
--- /dev/null
+++ b/app/libs/io/github/zxing-cpp/android/2.2.0/android-2.2.0.aar
Binary files differ
diff --git a/app/libs/io/github/zxing-cpp/android/2.2.0/android-2.2.0.aar.license b/app/libs/io/github/zxing-cpp/android/2.2.0/android-2.2.0.aar.license
new file mode 100644
index 0000000..c0956dc
--- /dev/null
+++ b/app/libs/io/github/zxing-cpp/android/2.2.0/android-2.2.0.aar.license
@@ -0,0 +1,3 @@
+SPDX-FileCopyrightText: 2024 zxing-cpp community
+
+SPDX-License-Identifier: Apache-2.0
diff --git a/app/src/main/java/org/lineageos/aperture/ext/ImageProxy.kt b/app/src/main/java/org/lineageos/aperture/ext/ImageProxy.kt
deleted file mode 100644
index b484966..0000000
--- a/app/src/main/java/org/lineageos/aperture/ext/ImageProxy.kt
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * SPDX-FileCopyrightText: 2022 The LineageOS Project
- * SPDX-License-Identifier: Apache-2.0
- */
-
-package org.lineageos.aperture.ext
-
-import androidx.camera.core.ImageProxy
-import com.google.zxing.PlanarYUVLuminanceSource
-
-private fun rotateYUVLuminancePlane(data: ByteArray, width: Int, height: Int): ByteArray {
-    val yuv = ByteArray(width * height)
-    // Rotate the Y luma
-    var i = 0
-    for (x in 0 until width) {
-        for (y in height - 1 downTo 0) {
-            yuv[i] = data[y * width + x]
-            i++
-        }
-    }
-    return yuv
-}
-
-internal val ImageProxy.planarYUVLuminanceSource: PlanarYUVLuminanceSource
-    get() {
-        val plane = planes[0]
-        val buffer = plane.buffer
-        var bytes = ByteArray(buffer.remaining())
-        buffer.get(bytes)
-
-        var width = width
-        var height = height
-
-        if (imageInfo.rotationDegrees == 90 || imageInfo.rotationDegrees == 270) {
-            bytes = rotateYUVLuminancePlane(bytes, width, height)
-            width = height.also { height = width }
-        }
-
-        return PlanarYUVLuminanceSource(
-            bytes, width, height, 0, 0, width, height, true
-        )
-    }
diff --git a/app/src/main/java/org/lineageos/aperture/qr/QrImageAnalyzer.kt b/app/src/main/java/org/lineageos/aperture/qr/QrImageAnalyzer.kt
index 354ca89..99ae658 100644
--- a/app/src/main/java/org/lineageos/aperture/qr/QrImageAnalyzer.kt
+++ b/app/src/main/java/org/lineageos/aperture/qr/QrImageAnalyzer.kt
@@ -1,5 +1,5 @@
 /*
- * SPDX-FileCopyrightText: 2022-2023 The LineageOS Project
+ * SPDX-FileCopyrightText: 2022-2024 The LineageOS Project
  * SPDX-License-Identifier: Apache-2.0
  */
 
@@ -28,10 +28,9 @@
 import androidx.core.graphics.drawable.DrawableCompat
 import com.google.android.material.bottomsheet.BottomSheetDialog
 import com.google.android.material.button.MaterialButton
-import com.google.zxing.BinaryBitmap
-import com.google.zxing.MultiFormatReader
+import com.google.zxing.BarcodeFormat
 import com.google.zxing.Result
-import com.google.zxing.common.HybridBinarizer
+import io.github.zxingcpp.BarcodeReader
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.launch
@@ -78,7 +77,11 @@
     }
 
     // QR
-    private val reader by lazy { MultiFormatReader() }
+    private val reader by lazy {
+        BarcodeReader().apply {
+            options.tryRotate = true
+        }
+    }
 
     private val qrTextClassifier by lazy {
         QrTextClassifier(activity, textClassificationManager.textClassifier)
@@ -86,23 +89,13 @@
 
     override fun analyze(image: ImageProxy) {
         image.use {
-            val source = image.planarYUVLuminanceSource
-
-            val result = runCatching {
-                reader.decodeWithState(BinaryBitmap(HybridBinarizer(source)))
-            }.getOrNull() ?: runCatching {
-                reader.decodeWithState(BinaryBitmap(HybridBinarizer(source.invert())))
-            }.getOrNull()
-
-            result?.let {
+            reader.read(image).firstOrNull()?.let {
                 showQrDialog(it)
             }
-
-            reader.reset()
         }
     }
 
-    private fun showQrDialog(result: Result) {
+    private fun showQrDialog(result: BarcodeReader.Result) {
         scope.launch(Dispatchers.Main) {
             if (bottomSheetDialog.isShowing) {
                 return@launch
@@ -113,7 +106,31 @@
 
             // Classify message
             val textClassification = withContext(Dispatchers.IO) {
-                qrTextClassifier.classifyText(result)
+                qrTextClassifier.classifyText(
+                    Result(
+                        text, result.bytes, null, when (result.format) {
+                            BarcodeReader.Format.NONE -> null
+                            BarcodeReader.Format.AZTEC -> BarcodeFormat.AZTEC
+                            BarcodeReader.Format.CODABAR -> BarcodeFormat.CODABAR
+                            BarcodeReader.Format.CODE_39 -> BarcodeFormat.CODE_39
+                            BarcodeReader.Format.CODE_93 -> BarcodeFormat.CODE_93
+                            BarcodeReader.Format.CODE_128 -> BarcodeFormat.CODE_128
+                            BarcodeReader.Format.DATA_BAR -> null
+                            BarcodeReader.Format.DATA_BAR_EXPANDED -> null
+                            BarcodeReader.Format.DATA_MATRIX -> BarcodeFormat.DATA_MATRIX
+                            BarcodeReader.Format.EAN_8 -> BarcodeFormat.EAN_8
+                            BarcodeReader.Format.EAN_13 -> BarcodeFormat.EAN_13
+                            BarcodeReader.Format.ITF -> BarcodeFormat.ITF
+                            BarcodeReader.Format.MAXICODE -> BarcodeFormat.MAXICODE
+                            BarcodeReader.Format.PDF_417 -> BarcodeFormat.PDF_417
+                            BarcodeReader.Format.QR_CODE -> BarcodeFormat.QR_CODE
+                            BarcodeReader.Format.MICRO_QR_CODE -> BarcodeFormat.QR_CODE
+                            BarcodeReader.Format.RMQR_CODE -> BarcodeFormat.QR_CODE
+                            BarcodeReader.Format.UPC_A -> BarcodeFormat.UPC_A
+                            BarcodeReader.Format.UPC_E -> BarcodeFormat.UPC_E
+                        }
+                    )
+                )
             }
 
             bottomSheetDialogData.text = textClassification.text
@@ -201,7 +218,7 @@
                             action = Intent.ACTION_SEND
                             type = ClipDescription.MIMETYPE_TEXT_PLAIN
                             putExtra(
-                                Intent.EXTRA_TEXT, result.text
+                                Intent.EXTRA_TEXT, text
                             )
                         },
                         activity.getString(androidx.transition.R.string.abc_shareactionprovider_share_with)
diff --git a/settings.gradle.kts b/settings.gradle.kts
index de0c7c0..c1df78c 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -14,6 +14,7 @@
     repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
     repositories {
         maven("https://raw.githubusercontent.com/lineage-next/camerax-aperture/bdc457ba0021c05507c4bec14806c120e132a37f/.m2")
+        maven("https://raw.githubusercontent.com/lineage-next/zxingcpp-aperture/6d27bbc39b7b53e7de52054d532a61c2b48fa897/.m2")
         google()
         mavenCentral()
     }
