README.md 8.9 KB

CarDash releases

1.2.3 — normal-app recents and Home-transition fix

  • File: cardash-android-1.2.3.apk
  • Version: 1.2.3 (versionCode 23)
  • ABIs: arm64-v8a, armeabi-v7a, x86_64
  • SHA-256: 72c9c1dca0c852104e9531b7cb532cf478ce121df83da4431669e20874d2837b
  • Signing: project debug key matching all releases.
  • Changes: CarDash now appears in recents when used as a normal app; the activity no longer sets excludeFromRecents. Adds resumeWhilePausing and alwaysRetainTaskState for the Home transition and task retention. Includes all 1.2.2 Syu volume, Jellyfin favorites and streaming-quality work. Android can still kill a background app; no keep-alive service or battery exemption was added.
  • Verified: analyze, formatting, 149 tests and universal release build. The packaged manifest has no excludeFromRecents; no emulator is installed here, so on-device recents behaviour is not exercised in this workspace.

1.2.2 — car volume on FYT/Syu units

  • File: cardash-android-1.2.2.apk
  • Version: 1.2.2 (versionCode 22)
  • ABIs: arm64-v8a, armeabi-v7a, x86_64
  • SHA-256: fed6d1818cfd28b19c0e568652ad14f44ce4bf15291a635f73fd97efe1ef5a35
  • Signing: project debug key matching all releases.
  • Changes: the volume card now drives the FYT/Syu MCU master volume through com.syu.ms (sound module, C_VOL 0–36), follows the level the car reports, and keeps an unconfirmed write instead of snapping back to 100%. Non-Syu units keep the Android path with an extra UI-panel write. Diagnostics show the control source and vendor state. Includes the Jellyfin Favorites tab, the playing-album Home shortcut and the streaming-quality setting.
  • Verified: 149 tests, flutter analyze, formatting, debug and release builds. The MCU volume path still needs the real-car test.

1.2.1 — Jellyfin pause equalizer fix

  • File: cardash-android-1.2.1.apk
  • Version: 1.2.1 (versionCode 21)
  • ABIs: arm64-v8a, armeabi-v7a, x86_64
  • SHA-256: 8fc6de444c2811dfe8269b21a7ad7b1f927cdde6b97d4f2f9fadd7cf0ea9b97e
  • Signing: project debug key matching all releases.
  • Changes: the Music equalizer only animates for an external system media session, so pausing Jellyfin from Home cannot briefly light it up while CarDash's own stale MediaSession snapshot catches up. The Home card stays on the paused Jellyfin queue during that gap. No playback changes. Includes all 1.2.0 Jellyfin features.
  • Verified: 139 tests; Android 14 emulator pause sequence leaves the Music tile quiet and the Jellyfin tile stopped immediately.

1.2.0 — Jellyfin

  • File: cardash-android-1.2.0.apk
  • Version: 1.2.0 (versionCode 20)
  • ABIs: arm64-v8a, armeabi-v7a, x86_64
  • SHA-256: cd8e7de1225dc9caa04d7caffe0d254db79f1bb0af872d5437f90adeab784acf
  • Signing: project debug key matching all releases.
  • Changes: adds the optional full Jellyfin music source: a Home button after Music, dashboard with recently played/added and grouped-genre Random rows (six cards when they fit, five otherwise), album page with track list and previous/next, in-app Media3 playback with background/notification/audio focus, Jellyfin playback reporting, exclusive Music/Jellyfin equalizers and a clipped Home subtitle. Artists, offline caching and data-aware streaming are deferred. See releases/1.2.0.md.
  • Verified: 134 tests; Android 14 emulator at 1280×800 and 1024×600 against Jellyfin 12.2 (Quick Connect, genre grouping, album/transport, notification, media keys, audio focus, Random re-shuffle). Testing against the real account marked a few played tracks, as expected from playback reporting.

1.0.7 — Truly disable Impeller

  • File: cardash-android-1.0.7.apk
  • Version: 1.0.7 (versionCode 19)
  • ABIs: arm64-v8a, armeabi-v7a, x86_64
  • SHA-256: 5b37116b38683ae5e9c42f36841ca509a417f21164902ffe0a93e7b5b29c61ae
  • Signing: project debug key matching all releases.
  • Changes: moves the EnableImpeller=false manifest entry from <activity> to <application>. Flutter ignores the activity-scoped key, so 1.0.6 and earlier silently ran Impeller. That caused the host emulator's SwiftShader process to segfault when Settings opened. 1.0.7 uses Skia as originally intended. Includes all 1.0.6 Bluetooth/OBD hardening.
  • Verified: on the 1024×600 Android 14 SwiftShader emulator, opening Settings, granting Bluetooth permission, and the Bluetooth-off → Android settings → Bluetooth-on → return flow all stay alive.

1.0.6 — Bluetooth/OBD freeze hardening

  • File: cardash-android-1.0.6.apk
  • Version: 1.0.6 (versionCode 18)
  • ABIs: arm64-v8a, armeabi-v7a, x86_64
  • SHA-256: 180050ad7cb7db88b4e253d748e49dedb380f0ed11acad743c39b4f925e9afed
  • Signing: project debug key matching all releases.
  • Changes: moves every Bluetooth binder call off the Android main thread, filters the OBD-II picker to likely OBD-II adapters, adds a bounded three-attempt connection limit with a Retry connection action, stops re-querying bonded devices on every resume, and adds timeouts around the telemetry bridge. Intended to remove the freeze that could occur after returning from Bluetooth settings with the OBD-II card open.

1.0.5 — Volume diagnostics

  • File: cardash-android-1.0.5.apk
  • Version: 1.0.5 (versionCode 17)
  • ABIs: arm64-v8a, armeabi-v7a, x86_64
  • SHA-256: d3fcd888d4b742a3c636d65126c9d0e4a9550a0d04db0eceef9cd6a18be0fcc2
  • Signing: project debug key matching all releases.
  • Changes: adds a long-press Media volume diagnostics panel showing the raw index/max, fixed-volume flag, every audio stream level, and the last target/actual volume write. The same data is logged under CarDashVolume. This release is for identifying car units that ignore both absolute and relative volume writes.

1.0.4 — Car volume fix

  • File: cardash-android-1.0.4.apk
  • Version: 1.0.4 (versionCode 16)
  • ABIs: arm64-v8a, armeabi-v7a, x86_64
  • SHA-256: d26e5a3bd98c38e639edebea92e0e165da8245eccaca14973eb549569e6b6a5e
  • Signing: project debug key (SHA-256 C2:8E:5B:0B:E0:F8:27:EE:12:22:B0:62:9F:EE:1C:F2:7E:14:3F:78:95:86:1E:3F:34:15:A6:E5:3A:06:BE:ED).
  • Changes: detects Android's fixed-volume car policy, disables the misleading volume slider and explains that the vehicle amplifier owns the level. On units that ignore absolute volume writes, CarDash now retries with the same relative steps used by the hardware volume keys. Fixed-volume units also pass the hardware keys through to the car instead of consuming them.

1.0.3 — Speed and temperature cards

  • File: cardash-android-1.0.3.apk
  • Version: 1.0.3 (versionCode 15)
  • ABIs: arm64-v8a, armeabi-v7a, x86_64
  • SHA-256: 3106540af2254b7eb7717bb95a5a61d8b7c9680fb2230711c624c5846e9bc209
  • Signing: debug key matching the 1.0.0–1.0.2 releases.
  • Changes: splits Settings into OBD-II, Speed and Temperature cards; adds independent show/hide switches plus OBD-II/GPS and OBD-II/weather source switches; limits the long-press hint to the first ten minutes after a fresh installation and never shows it again after an upgrade.

1.0.2 — Bluetooth settings action

  • File: cardash-android-1.0.2.apk
  • Version: 1.0.2 (versionCode 14)
  • ABIs: arm64-v8a, armeabi-v7a, x86_64
  • SHA-256: 9cecb410c9d6af6e83f13c63d3c9839614f03505ccb47682b646a1e461da916c
  • Changes: adds Open Bluetooth settings when Bluetooth is off; no changes to the update installer.

1.0.1 — update-test release

  • File: cardash-android-1.0.1.apk
  • Version: 1.0.1 (versionCode 13)
  • ABIs: arm64-v8a, armeabi-v7a, x86_64
  • SHA-256: f229414c8c406a2f6754f9ee1ccc4763ba1742acd277765962b61ecaaf356329
  • Changes: version bump only; no functional changes from the 1.0.0 updater build.
  • The in-app Updates action downloads this APK and opens Android’s installer; the user still confirms the installation and allows unknown-app installs once.

1.0.0 — first universal release

  • File: cardash-android-1.0.0.apk
  • Version: 1.0.0 (versionCode 12)
  • SHA-256: 9a75258e14432d74eedb866ac4043179496234c252a877d25b709c2a2ff4d9a2
  • Source: commit d28bfea

The release is published at: https://git.krasi.net/kkazakov/car-interface-android/releases

Gogs limits release attachments to 32 MB, so the universal APKs (59 MB for 1.2.0) are linked directly from the repository rather than attached to the release.

This is a single universal APK containing all supported Android ABIs. It is signed with the project's existing debug signing configuration, so it is suitable for sideloading and local testing but is not a Play Store/production-signed artifact.

Install with:

adb install -r cardash-android-1.0.0.apk

Verify the download with:

sha256sum -c cardash-android-1.0.0.apk.sha256