Releases: OpenBMB/MiniCPM-V-Apps
HarmonyOS v2.2
MiniCPM-V Demo for HarmonyOS NEXT — v2.2
Two-step jump (v2.0 → v2.2) to re-sync HarmonyOS with iOS / Android, plus the MiniCPM5-1B download-source switch. Recommended upgrade for everyone on v2.0.
What's new (vs v2.0)
📦 MiniCPM5-1B download source switched to OpenBMB official HF / ModelScope
- Before: pre-release Huawei OBS direct link (
MiniCPM5-0.9B-Q4_K_M.gguf). - Now: races huggingface.co/openbmb/MiniCPM5-1B-GGUF and modelscope.cn/OpenBMB/MiniCPM5-1B-GGUF — same HF + MS racing as the V4.6 model.
- The user-facing model name is now
MiniCPM5-1B (Q4_K_M)(wasMiniCPM5 0.9B), matching the public release. - Existing v2.0 users with a
MiniCPM5-0.9B-Q4_K_M.ggufon disk will see it auto-renamed toMiniCPM5-1B-Q4_K_M.gguf; the downstream integrity check then either accepts the bytes or quietly re-downloads the canonical file (~656 MB).
🇨🇳 Runtime zh / en language switch
- Toggle between Chinese and English inside Model Management without changing the device locale.
🖼 Image decoding fix (#11)
createPixelMapnow usesdesiredSizeinstead of the buggedsampleSizepath on certain HarmonyOS versions, fixing photo previews that used to silently fail to decode.- Added explicit
pixelMap.release()cleanup in finally blocks to prevent the ImageSource leak under heavy use.
🚀 Launch crash fix (#16)
CMakeLists.txtnow writes.sooutputs into the same directory hvigorw expects, so the.so.0symlinks survive HAP packaging — fixes the immediate launch crash some users hit on v2.0.
⚡ Prefill prompt race fix (#18)
sendUserPromptstate check moved inside the engine's serial queue, so user prompts sent whileprefillVideoFramesis still running are queued instead of silently dropped (fixes the "second video question gets no answer" issue).
🧠 Image-slice cap & model_version knob
- Re-enabled
mtmd_set_image_max_slice_numsto keep prefill latency bounded on long photos. MiniCPM-V-4.6prompt template branching via the nativemodel_versionknob (same code path now on iOS / Android / HarmonyOS).
Requirements (unchanged)
- HarmonyOS NEXT, API 12 or later (e.g. nova 14 Vitality / Mate 60 / Pura 70)
- 64-bit ARM (
arm64-v8a) - ≥ 6 GB RAM recommended (≥ 8 GB for MiniCPM-V 2.6)
Install
```bash
hdc install MiniCPM-V-demo-HarmonyOS-v2.2.hap
```
Then open the app → Model Manager → Download (HF + MS race kicks in automatically).
Build info
- `versionName` = `2.2`, `versionCode` = `7`
- bundleName: `com.openbmb.minicpmv`
Verify
- MD5: `1e47d07066ed994ee6bc3229582c9a85`
- Size: ~28 MB
See DOWNLOAD.md for the full install guide.
Android v2.2
MiniCPM-V Demo for Android — v2.2
Minor release. Switches the MiniCPM5-1B model download to OpenBMB's official public HF / ModelScope GGUF repository now that the model is publicly released. Recommended upgrade for everyone on v2.0.
What's new (vs v2.0)
📦 MiniCPM5-1B download source switched to OpenBMB official HF / ModelScope
- Before: pre-release Huawei OBS direct link (
MiniCPM5-0.9B-Q4_K_M.gguf). - Now: races huggingface.co/openbmb/MiniCPM5-1B-GGUF and modelscope.cn/OpenBMB/MiniCPM5-1B-GGUF — same HF + MS racing as the V4.6 model.
- The user-facing model name is now
MiniCPM5-1B (Q4_K_M)(wasMiniCPM5 0.9B), matching the public release. - Existing v2.0 users with a
MiniCPM5-0.9B-Q4_K_M.ggufon disk will see it auto-renamed toMiniCPM5-1B-Q4_K_M.gguf; the downstream integrity check then either accepts the bytes or quietly re-downloads the canonical file (~656 MB).
🐛 i18n + perf carry-overs from intermediate work
- Runtime zh / en language switch inside Model Management (no need to change device locale).
- Image-slice cap (
mtmd_set_image_max_slice_nums) re-enabled to keep prefill latency bounded on long photos. MiniCPM-V-4.6prompt template branching via the nativemodel_versionknob.
Requirements (unchanged)
- Android 8.0 (API 26) or later
- 64-bit ARM (
arm64-v8a) - ≥ 6 GB RAM recommended (≥ 8 GB for MiniCPM-V 2.6)
Install
- Download `MiniCPM-V-demo-Android-v2.2.apk` below.
- Allow install from unknown source if prompted.
- Open the app → Model Manager → Download (HF + MS race kicks in automatically).
Build info
- `versionName` = `2.2`, `versionCode` = `14`
- ABI: `arm64-v8a` only
Verify
- MD5: `212c36720e5160288a367700553e8d20`
- Size: ~17 MB
See DOWNLOAD.md for the full install guide.
HarmonyOS v2.0
MiniCPM-V Demo for HarmonyOS NEXT — v2.0
Major release. Brings the HarmonyOS port in lock-step with the new Android v2.0 / iOS v2.0 codebase, and folds in the never-released v1.3 video-understanding work as a bonus.
What's new (vs the public v1.2)
🧩 Master mtmd bridge (MBMtmd)
- Native layer is rebuilt on top of llama.cpp master's
mtmd(multimodal) implementation. Same code path now drives iOS, Android, and HarmonyOS — the three platforms stay in lock-step from this version onward. ubatchis now tier-aware: split sizes adapt to device class so low-end SoCs no longer choke during prefill.
🌐 Racing dual-source download
- The in-app Model Manager races HuggingFace and ModelScope in parallel and uses whichever responds first. Massive win on networks where one of the two CDNs is slow or unreachable; cancels the loser to avoid wasting bandwidth.
🎞 Video understanding (carried over from the unreleased v1.3)
- Sample up to 64 frames uniformly from a video and feed them to the model.
- For MiniCPM-V 4.6 the context window is widened to
nCtx = 8192to fit longer multi-frame prompts. - During visual prefill
image_max_slice_numsis forced to 1 so each frame is one slice.
🇨🇳 No more "English-by-default" answers
- The default system prompt has been dropped on MiniCPM-V 4.6, both in TS/ArkTS and in the native
processUserPromptpath. Chinese questions now answer in Chinese instead of being silently steered to English.
Requirements (unchanged)
- HarmonyOS NEXT, API 12 or later (e.g. nova 14 Vitality / Mate 60 / Pura 70)
- 64-bit ARM (
arm64-v8a) - ≥ 6 GB RAM recommended (≥ 8 GB for MiniCPM-V 2.6)
Install
hdc install MiniCPM-V-demo-HarmonyOS-v2.0.hapThen open the app → Model Manager → Download (HF + MS race kicks in automatically).
Build info
versionName=2.0,versionCode=6- bundleName:
com.openbmb.minicpmv
Verify
- MD5:
9aff126a47b651bce1d33890a289f319 - Size: ~39 MB
See DOWNLOAD.md for the full install guide.
Android v2.0
MiniCPM-V Demo for Android — v2.0
Major release. The native multimodal pipeline has been re-platformed onto llama.cpp's master branch and the model download flow is now multi-source. Recommended upgrade for everyone on v1.7 / v1.9.
What's new
🧩 Master mtmd bridge (MBMtmd)
- Native layer is rebuilt on top of llama.cpp master's
mtmd(multimodal) implementation. Same code path now drives iOS, Android, and HarmonyOS — the three platforms stay in lock-step from this version onward. ubatchis now tier-aware: split sizes adapt to device class so low-end SoCs no longer choke during prefill.
🌐 Racing dual-source download
- The in-app Model Manager races HuggingFace and ModelScope in parallel and uses whichever responds first. Massive win on networks where one of the two CDNs is slow or unreachable; cancels the loser to avoid wasting bandwidth.
🇨🇳 No more "English-by-default" answers
- The default system prompt has been dropped on MiniCPM-V 4.6, both in Java/Kotlin and in the native
processUserPromptpath. Chinese questions now answer in Chinese instead of being silently steered to English.
Other changes
- All carry-over fixes from v1.9 (dynamic CPU dispatch for
ggml-cpu) and the v1.8 video-understanding work (uniform-sample 64 frames, V4.6nCtx=8192, prefillslice=1) remain in place.
Requirements (unchanged)
- Android 8.0 (API 26) or later
- 64-bit ARM (
arm64-v8a) - ≥ 6 GB RAM recommended (≥ 8 GB for MiniCPM-V 2.6)
Install
- Download
MiniCPM-V-demo-Android-v2.0.apkbelow. - Allow install from unknown source if prompted.
- Open the app → Model Manager → Download (HF + MS race kicks in automatically).
Build info
versionName=2.0,versionCode=12- ABI:
arm64-v8aonly
Verify
- MD5:
43576791bfe8c24ed6909f33d8e94b63 - Size: ~17 MB
See DOWNLOAD.md for the full install guide.
Android v1.9
MiniCPM-V Demo for Android — v1.9
Major upgrade since v1.7 (the unreleased v1.8 changes are folded in here). Recommended upgrade for everyone.
What's new
Video understanding (was v1.8)
- Sample up to 64 frames uniformly from a video and feed them to the model.
- For MiniCPM-V 4.6 the context window is widened to
nCtx = 8192to fit longer multi-frame prompts. - During visual prefill
image_max_slice_numsis forced to 1 so each frame is one slice — keeps prefill cost predictable when many frames are stacked.
Dynamic CPU dispatch for ggml-cpu (v1.9, PR #8)
- The native layer now dispatches to the best available CPU backend at runtime instead of being hard-pinned at build time. Older arm64 devices that lack i8mm / bf16 / dotprod will still pick the most compatible code path; newer SoCs continue to use the fastest one.
Requirements (unchanged)
- Android 8.0 (API 26) or later
- 64-bit ARM (
arm64-v8a) - ≥ 6 GB RAM recommended (≥ 8 GB for MiniCPM-V 2.6)
Install
- Download
MiniCPM-V-demo-Android-v1.9.apkbelow. - Allow install from unknown source if prompted.
- Open the app → Model Manager → Download.
Build info
versionName=1.9,versionCode=11- ABI:
arm64-v8aonly
Verify
- MD5:
b83f105d9ecce57f48f2afca2b5cdb69 - Size: ~17 MB
See DOWNLOAD.md for the full install guide.
HarmonyOS v1.2
MiniCPM-V Demo for HarmonyOS NEXT — v1.2
Bug-fix release on top of v1.1. Recommended upgrade for everyone running v1.1 — especially users that pick more than one image slice.
What's fixed
- No more ANR on multi-slice images.
prefillImageis now executed on a libuv worker thread instead of the JS thread. This fixes theTHREAD_BLOCK_3SANR that fired whenimage_max_slice_nums > 1— the heavy ViT prefill no longer blocks UI rendering.
Requirements (unchanged)
- HarmonyOS NEXT, API 12 or later (e.g. nova 14 Vitality / Mate 60 / Pura 70)
- 64-bit ARM (
arm64-v8a) - ≥ 6 GB RAM recommended (≥ 8 GB for MiniCPM-V 2.6)
Install
hdc install MiniCPM-V-demo-HarmonyOS-v1.2.hapThen open the app → Model Manager → Download.
Build info
versionName=1.2,versionCode=3- bundleName:
com.openbmb.minicpmv
Verify
- MD5:
390408e7cfe217a11ffb0b359b9a0807 - Size: ~29 MB
See DOWNLOAD.md for the full install guide.
HarmonyOS v1.1
MiniCPM-V Demo for HarmonyOS NEXT — v1.1
HarmonyOS NEXT (ArkTS + Native) build of the on-device MiniCPM-V demo. Shares the exact same llama.cpp core and model catalogue as the iOS / Android demos.
Highlights
- Multimodal chat with MiniCPM-V 2.6 / 4.0 / 4.6 (image + text)
- In-app Model Manager to download / sideload GGUF weights
- Same OBS direct-link URLs and MD5 hashes as the iOS / Android demos
Requirements
- HarmonyOS NEXT, API 12 or later (e.g. nova 14 Vitality / Mate 60 / Pura 70)
- 64-bit ARM (
arm64-v8a) - ≥ 6 GB RAM recommended (≥ 8 GB for MiniCPM-V 2.6)
Install
hdc install MiniCPM-V-demo-HarmonyOS-v1.1.hapThen open the app → Model Manager → Download.
Build info
versionName=1.1,versionCode=2- bundleName:
com.openbmb.minicpmv
Verify
- MD5:
f3824e4b85940fcd8fbfe8f9a566519b - Size: ~29 MB
See DOWNLOAD.md for the full install guide.
Android v1.7
MiniCPM-V Demo for Android — v1.7
First public Android release. The app runs MiniCPM-V (2.6 / 4.0 / 4.6) fully on-device via llama.cpp — no remote server, no data leaves the phone.
Highlights
- Multimodal chat with MiniCPM-V 2.6 / 4.0 / 4.6 (image + text)
- In-app Model Manager to download / sideload GGUF weights
- Markdown rendering for streaming responses
Requirements
- Android 8.0 (API 26) or later
- 64-bit ARM (
arm64-v8a) - ≥ 6 GB RAM recommended (≥ 8 GB for MiniCPM-V 2.6)
Install
- Download
MiniCPM-V-demo-Android-v1.7.apkbelow. - Allow install from unknown source if prompted.
- Open the app → Model Manager → Download.
Build info
versionName=1.7,versionCode=9- ABI:
arm64-v8aonly
Verify
- MD5:
9d16d89205cc6c43b68886a42b560600 - Size: ~16 MB
See DOWNLOAD.md for the full install guide.