Repository navigation
Native dylibs native-v0.17.1
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 of1000.0. libGemmaModelConstraintProvidercontinues to come from upstream main
(4453b286), because v0.17.1 still ships the pre-ComputeMaskone — 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.