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
VehicleEnergyForecastandMediaOptionsmessages 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_modeconfiguration 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
WouldBlockconditions. - 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.
- Added pre-commit hook support for automatic
@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=abortfor release builds to reduce binary size while preserving crash reporting.
Full Changelog: v0.22.0...v0.23.0
Buildroot:
- no changes