Releases: i99dev/ilink
Releases · i99dev/ilink
Release list
v3.22.2-b
3.22.2-b (2026-09-06)
First release published from the standalone iLINK repository.
Features
- Run the dashboard, workflows, vehicle catalog and English speech recognition entirely on the device — no account, no subscription, no hosted API, no MQTT broker and no license check.
- Ship every outbound connection behind an optional-service switch that defaults to off, with no analytics SDK or telemetry.
- Browse and search the bundled radio directory (5,166 stations across 212 countries) with no network at all; only playing a live stream needs the internet, and only after it is enabled.
- Discover opted-in updates through GitHub Releases, verifying both the APK SHA-256 and the signing certificate before install.
- Enforce mini-app local permissions and WebView boundaries, and handle local voice capture errors and cancellation safely.
- Adopt the MIT License and add standalone development and contribution guidance.
Bug Fixes
- Restore radio playback:
radioPlayerProvideris no longerautoDispose, so the controller that takes it withref.readcan no longer be left holding a player whoserefwas unmounted. - Surface radio command failures in the UI instead of failing silently.
- Stop the station switch from hanging in a loading state when playback starts.
- Defer on-device speech engine refresh to a microtask, fixing an uninitialized-provider crash on startup.
- Derive the Android
versionCodefrom the version name rather than commit history, so it always increases across releases. - Tag releases
v<version>; the device-side update source enforces this exactly and silently refuses anything else. - Locate
keytoolwithout relying onPATH, and export the password variables before it reads them. - Pin CI to Flutter 3.47.2, the version this code actually builds on.
Dependencies
- Bump
com.android.applicationfrom 8.11.1 to 8.13.2, andcom.google.protobuf:protobuf-java. - Bump
connectivity_plus7.1.1 → 7.3.1,flutter_cache_manager3.4.1 → 3.4.2,flutter_secure_storage10.3.0 → 10.3.1,flutter_svg2.2.4 → 2.3.0 andjust_audio0.10.5 → 0.10.6. - Hold Gradle below 9.6: 9.6.0 removed an internal API that every AGP 8.x relies on, and AGP stays at 8.x until AGP 9 is Flutter-ready.
Known gaps
Physical head-unit acceptance (fresh install → speech → vehicle execution) has not been completed. See the standalone cleanup record and final verification for test evidence and the remaining device acceptance work.
Verify download
sha256sum ilink.apk # macOS: shasum -a 256 ilink.apkSHA-256: b0fd99836a595647b3b10da78210adaea969aa99fef4e9269dbd60553be45349
Size: 77.7 MB (81506593 bytes)