Skip to content

Native dylibs native-v0.17.1

Choose a tag to compare

@DenisovAV DenisovAV released this 22 Sep 09:03
· 493 commits to main since this release
3b393ac

Native LiteRT-LM prebuilts for flutter_gemma_litertlm, built from upstream
v0.17.1 (5e58e9a0). LiteRT pin unchanged (9fe5be45).

Why this release

Google Play rejected apps shipping the previous bundle. Four Qualcomm
Hexagon DSP blobs — libQnnHtpV{73,75,79,81}Skel.so — arrive from the QAIRT
SDK with p_align=0x1000, and androidExtraLibs puts them in the APK of every
app that depends on this package. Play scans lib/**/*.so and does not care
that a Hexagon image is parsed by the DSP rather than mapped by the kernel:
"Your app does not support 16 KB memory page sizes" (#529).

The blobs are now raised to p_align=0x4000 while they are staged, and the
release gate refuses to publish an Android archive that still holds one below
16 KB. Verified on a release APK of the example: 45 of 45 native libraries at
16 KB.

Also in this build

  • Upstream 5e58e9a0: a tool-call argument declared "type": "integer" reaches
    the app as an integer instead of 1000.0.
  • libGemmaModelConstraintProvider continues to come from upstream main
    (4453b286), because v0.17.1 still ships the pre-ComputeMask one — against
    a runtime built from its own source every tool call segfaults.

Verified on hardware

Platform Tool calling Inference + embeddings STT
macOS arm64 6/6 24/24 ✅
Linux x86_64 — 24/24 (T4, Vulkan) ✅
Windows x86_64 — 24/24 (T4, DX12) ✅
Android arm64 7/7 (Pixel 8a) — —
iOS simulator 6/6 — —

Not covered: Linux arm64 (no hardware), iOS on device, and both NPU paths.

Checksums

checksums_litertlm.txt on this release, the bytes GitHub serves and the
_checksums map in hook/build.dart all carry the same SHA256 for every
platform.