📈 GH Trending Explorer 🎲 Surprise me

← all repos

f-io / LIVI

git clone https://github.com/f-io/LIVI.git v9.4.0 · 12d ago

Native CarPlay & Android Auto head unit for Linux (ARM/x64) & macOS (ARM/x64). Multi-session wired + wireless projection, zero-copy hardware video decoding, low-latency audio.

+5
stars, 24h · #2,745
+~35
stars, 7 days · #3,373
+~150
stars, 30 days · #3,369
947
★ total · +4% this week
125
forks · 1 open issues

Star history (as recorded here)

2026-10-20 · 934 ★ 2026-10-22 · 947 ★
LanguageRust
LicenseGPL-3.0
Created2025-05-02 (1y ago)
Last push1d ago
Watchers16
OwnerUser

GitHub topics

Links

README excerpt
# LIVI – Linux In-Vehicle Infotainment
LIVI is an open-source **Apple CarPlay and Android Auto head unit**.
It is a standalone cross-platform head unit with a native, zero-copy GStreamer video pipeline and hardware-accelerated decoding on Linux (including the Raspberry Pi 4 and 5) and macOS, low-latency audio, multitouch + D-Pad navigation, and support for very small embedded/OEM displays.
## Project Status
## Native Connectivity
- **Apple CarPlay** (wired & wireless) on Linux and Mac — requires MFi Authentication
- **Android Auto** (wired & wireless) on Linux and Mac — wireless on Mac requires a LIVI Link
## Native Apple CarPlay Ultra
LIVI implements the CarPlay accessory side natively, wired and wireless, on Linux and on macOS. Wireless sessions run over LIVI's own Wi-Fi access point with Bluetooth pairing, wired sessions run directly over the USB cable (no OTG required).
- main and instrument cluster video (H.264 and H.265/HEVC, hardware decoded, zero-copy)
- configurable cluster content: map or maneuver card, compass, ETA, speed limit
- audio playback, phone calls, microphone uplink, Siri
- volume in both directions between phone and LIVI
- now-playing metadata incl. album art, turn-by-turn navigation data
- touch, knob/d-pad and hard-key input
- GPS forwarding and clock synchronization
- day/night mode
- dock position left, right or bottom, right-hand drive
- multi-session with live switching between connected phones
- wireless sessions move to the cable when plugged in
- video in the car (AirPlay video while parked, no FairPlay-protected content)
- climate control\*
- extended vehicle data\*
- car maker themes\*
\* CarPlay Ultra only
Wireless CarPlay requires a Bluetooth and a Wi-Fi interface. Both can come from a LIVI Link, which brings its own radios. Wired CarPlay works on any USB port.
## MFi Authentication
CarPlay requires the accessory to authenticate against the phone. The usual way is an Apple **MFi authentication coprocessor**, a hardware chip that cannot be emulated and that LIVI neither ships nor bypasses. Two routes:
- **On the board** — a coprocessor wired to the I²C bus
- **Over the network** — a LIVI Link
Both routes work on Linux. A Mac has no I²C bus to put a coprocessor on, so there the LIVI Link is the only one.
LIVI does not support Apple's Basic Accessory Authentication on MacOS, but may in the future.
For a chip on the board, configuration (`config.json`):
| Key | Default | Description |
| --------------------- | ------- | ------------------------------------ |
| `carPlayMfiI2cBus` | `2` | I²C bus number the coprocessor is on |
| `carPlayMfiPowerGpio` | `21` | GPIO that powers the coprocessor |
Without one of these, native CarPlay is unavailable. All Android Auto paths work regardless.
## Wireless
Wireless sessions do not need a router. LIVI brings up its own Wi-Fi access point and the phone joins that. Bluetooth carries the pairing and the handover, the session itself then runs over Wi-Fi.
Wireless CarPlay and wireles