From cc14af3d2f7862693fc712fbc97bb902ce5daba5 Mon Sep 17 00:00:00 2001 From: GenericJam Date: Tue, 25 Aug 2026 00:08:14 -0600 Subject: [PATCH 1/2] MOB-95: mark issues.md #6's CameraX/ML Kit rows fixed The other 5 libraries (OTP runtime x3, libmobtest.so, libsqlite3_nif.so) still need their own fixes; issue stays open for those. Co-Authored-By: Claude Sonnet 5 --- issues.md | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/issues.md b/issues.md index ad5a6a7..8f534b0 100644 --- a/issues.md +++ b/issues.md @@ -363,8 +363,16 @@ The fix is a single linker flag at build time: | `libepmd.so` | OTP runtime | rebuild OTP tarball with the flag | | `libmobtest.so` | Mob's NDK build (`android/jni/`) | add to CMakeLists | | `libsqlite3_nif.so` | exqlite Hex dep | upstream fix or local re-link | -| `libimage_processing_util_jni.so` | androidx.camera | bump CameraX dep | -| `libbarhopper_v3.so` | com.google.mlkit:barcode-scanning | bump ML Kit dep | +| `libimage_processing_util_jni.so` | androidx.camera | **FIXED (MOB-95)** — bumped 1.3.4 → 1.6.1 | +| `libbarhopper_v3.so` | com.google.mlkit:barcode-scanning | **FIXED (MOB-95)** — bumped 17.2.0 → 17.3.0 | + +> **Partial resolution (MOB-95).** The CameraX and ML Kit rows are fixed — +> bumped in `mob_camera`/`mob_scanner`'s `priv/mob_plugin.exs` gradle_deps +> and in `mob_new`'s `build.gradle.eex` template (core still links CameraX +> directly for the camera preview, separately from what the plugins declare; +> all three copies had to move in lockstep). The other five libraries (OTP +> runtime ×3, `libmobtest.so`, `libsqlite3_nif.so`) are untouched — this +> issue stays open for those. **Recommendation: bundle the fix into the next OTP tarball schema bump.** We already plan to re-cut the iOS-device tarball when EPMD source got @@ -381,8 +389,9 @@ added; that same release cycle is the natural place to add `zipalign -p 16384` (page-aligns `.so` LOAD segments) as a post-processing step in the deployer's APK packaging. The `zipalign -p 16384` form is a real flag in NDK 27+. -- **CameraX / ML Kit**: bump to a version that ships 16 KB-aligned - binaries. Most current Google libraries already do. +- ~~**CameraX / ML Kit**: bump to a version that ships 16 KB-aligned + binaries.~~ **DONE (MOB-95)** — CameraX 1.3.4 → 1.6.1, ML Kit + barcode-scanning 17.2.0 → 17.3.0. **Priority** — low. Warning, not an error. Apps run correctly today in compatibility mode. Worth doing alongside the next OTP rebuild From ace45e992e13fe4083dc71d2ff8329909b12d290 Mon Sep 17 00:00:00 2001 From: GenericJam Date: Tue, 25 Aug 2026 00:33:43 -0600 Subject: [PATCH 2/2] MOB-95: correct issues.md to CameraX 1.4.2 (not 1.6.1) + record why 1.6.1 fails a real device build on this toolchain (compileSdk 36 + AGP 8.9.1+ required); 1.4.2 is the device-verified, correct pin. See the companion mob_camera/mob_scanner/mob_new PRs for the actual fix. Co-Authored-By: Claude Sonnet 5 --- issues.md | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/issues.md b/issues.md index 8f534b0..697b47b 100644 --- a/issues.md +++ b/issues.md @@ -363,7 +363,7 @@ The fix is a single linker flag at build time: | `libepmd.so` | OTP runtime | rebuild OTP tarball with the flag | | `libmobtest.so` | Mob's NDK build (`android/jni/`) | add to CMakeLists | | `libsqlite3_nif.so` | exqlite Hex dep | upstream fix or local re-link | -| `libimage_processing_util_jni.so` | androidx.camera | **FIXED (MOB-95)** — bumped 1.3.4 → 1.6.1 | +| `libimage_processing_util_jni.so` | androidx.camera | **FIXED (MOB-95)** — bumped 1.3.4 → 1.4.2 | | `libbarhopper_v3.so` | com.google.mlkit:barcode-scanning | **FIXED (MOB-95)** — bumped 17.2.0 → 17.3.0 | > **Partial resolution (MOB-95).** The CameraX and ML Kit rows are fixed — @@ -373,6 +373,17 @@ The fix is a single linker flag at build time: > all three copies had to move in lockstep). The other five libraries (OTP > runtime ×3, `libmobtest.so`, `libsqlite3_nif.so`) are untouched — this > issue stays open for those. +> +> **Device-verified pin choice: CameraX 1.4.2, not the current-stable +> 1.6.x line.** 1.6.1 fails a real Gradle build against this toolchain +> (compileSdk 34 / AGP 8.2.0) — it and its transitive `androidx.media3` +> deps require compileSdk 36 + AGP 8.9.1+, a much bigger, separate +> toolchain bump. 1.4.2 (the latest patch in the line that introduced +> the 16 KB fix) needs neither; confirmed via `mix mob.deploy --native` +> against `mob_plugin_demo` on a physical Moto G — build succeeded, app +> booted, `MobCamera`/`MobScanner` modules loaded, zero native-linkage +> errors. Revisit 1.6.x once mob's Android toolchain itself moves to +> AGP 8.9.1+ / compileSdk 36 — a separate, larger piece of work. **Recommendation: bundle the fix into the next OTP tarball schema bump.** We already plan to re-cut the iOS-device tarball when EPMD source got @@ -390,7 +401,8 @@ added; that same release cycle is the natural place to add post-processing step in the deployer's APK packaging. The `zipalign -p 16384` form is a real flag in NDK 27+. - ~~**CameraX / ML Kit**: bump to a version that ships 16 KB-aligned - binaries.~~ **DONE (MOB-95)** — CameraX 1.3.4 → 1.6.1, ML Kit + binaries.~~ **DONE (MOB-95)** — CameraX 1.3.4 → 1.4.2 (not 1.6.1 — + see the device-verified pin-choice note above), ML Kit barcode-scanning 17.2.0 → 17.3.0. **Priority** — low. Warning, not an error. Apps run correctly today