Skip to content

v0.22.0

Latest

Choose a tag to compare

@manio manio released this 23 Jun 06:48

What's Changed

@Deadknight's work:

  • Protocol Version Override & Vehicle Energy Forecast
    • Added Android Auto transport and Wi-Fi protocol version override support for unlocking phone-side features gated by newer HU PDK versions.
    • Improved override logic to only apply when the head unit advertises an older version than the configured target.
    • Added automatic handling and filtering of override-induced VehicleEnergyForecast and MediaOptions messages for compatibility with older head units.
    • Added Vehicle Energy Forecast publishing over WebSocket (vehicle_energy_forecast) for companion applications.
    • Added caching and intelligent merging of partial or null Vehicle Energy Forecast updates to improve data stability.
    • Added support for additional Android Auto protocol message IDs, including Vehicle Energy Forecast and new Media message types.
  • Album Art Injection
    • Added EV energy forecast integration into media metadata with configurable text placement modes.
    • Replaced the legacy EV prefix toggle with a flexible map_album_art_ev_text_mode configuration supporting multiple metadata injection strategies.
    • Improved synthetic metadata generation with placeholder title support for artwork-only updates.
    • Added automatic polling of H.264-derived artwork to ensure updates are emitted even without subsequent metadata packets.
    • Fixed EV metadata prefix expiration handling and improved metadata synchronization reliability.
  • MITM Diagnostics & Debugging
    • Added optional full-frame packet reassembly for decrypted packet debugging and protocol inspection.
    • Added internal SSL packet trace ring buffer infrastructure for future TLS diagnostics and troubleshooting.
    • Improved packet debug logging by reducing media-fragment log noise and enhancing protocol message visibility.
  • USB Gadget Compatibility
    • Added configurable accessory-start gating to avoid stale Android Auto accessory sessions.
    • Added USB gadget re-arm support with configurable cooldowns for head units that do not fully power-cycle USB during sleep/wake cycles.
    • Improved connection retry handling and gadget enable failure reporting.
  • Display & Media Handling
    • Fixed acknowledgement window handling for injected AUX displays.
    • Improved injected display media flow compatibility and ACK synchronization.
  • Build System
    • Added configurable fast-release build profiles for cross-compilation Docker images.
    • Improved Docker build output handling and profile selection flexibility.

@manio's work:

  • TLS / SSL Backend Migration
    • Replaced the OpenSSL-based TLS implementation with a Rustls backend using AWS-LC.
    • Added compatibility workarounds for Android Auto's legacy X.509 v1 certificates.
    • Restored detailed TLS handshake progress logging and negotiated cipher suite reporting.
    • Fixed TLS role assignment between head unit and mobile device connections.
    • Improved TLS read/write buffering by properly draining TLS records and handling partial writes.
    • Fixed TLS decryption handling for WouldBlock conditions.
    • Disabled TLS session resumption to avoid interoperability issues between OpenSSL and Rustls sessions.
    • Improved certificate verification compatibility for Android Auto certificate chains.
  • Development Tooling
    • Added pre-commit hook support for automatic cargo fmt.
    • Updated project documentation and development workflow files.

@korhojoa's work:

  • Display Profiles & Runtime Optimizations
    • Improved injected media channel handling by preventing media fragments from being interpreted as control messages.
    • Enabled LTO, stripping, and single codegen-unit release optimizations for smaller and faster binaries.
    • Enabled panic=abort for release builds to reduce binary size while preserving crash reporting.

Full Changelog: v0.22.0...v0.23.0

Buildroot:

  • no changes