Skip to content
/ LIVI Public

Carplay and Android Auto head unit for Linux (ARM/x86) and macOS (ARM) using Carlinkit dongles. Hardware-accelerated video and low-latency audio.

License

Notifications You must be signed in to change notification settings

f-io/LIVI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

452 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LIVI

LIVI – Linux In-Vehicle Infotainment

LIVI is an open-source Apple CarPlay and Android Auto head unit for Linux.

It is a standalone cross-platform Electron head unit with hardware-accelerated video decoding, low-latency audio, multitouch + D-Pad navigation, and support for very small embedded/OEM displays.

Supported USB adapters: Carlinkit CPC200-CCPA (wireless/wired) and CPC200-CCPW (wired)

Project Status

Release Main Version TS Main Build Main

Installation

Important

LIVI requires WebGL2 or WebGPU support.

Raspberry Pi OS

curl -fL -o install.sh https://raw.githubusercontent.com/f-io/LIVI/main/scripts/install/pi/install.sh
chmod +x install.sh
./install.sh

Raspberry Pi OS Trixie or newer is required for WebGL2 support.

The install.sh script performs the following tasks:

  1. checks for required tools: curl and xdg-user-dir
  2. configures udev rules to ensure proper access rights for the CarPlay dongle
  3. downloads the latest LIVI AppImage
  4. creates an autostart entry so the application launches automatically on boot
  5. creates a desktop shortcut for easy access

This install script is not actively tested on other Linux distributions.

Linux (x86_64)

This AppImage has been tested on Debian Trixie (13) with Wayland. No additional software is required — just download the -x86_64.AppImage and make it executable. Depending on your distro and how you run the app, you may need a udev rule to access the USB dongle. It presents as a composite (multi-class) USB device, and unlike single-class devices, its interfaces often require explicit permissions.

sudo bash -c '
  RULE_FILE="/etc/udev/rules.d/99-LIVI.rules"
  USER_NAME="${SUDO_USER:-$USER}"

  echo "Creating udev rule for Carlinkit dongle (owner: $USER_NAME)"
  echo "SUBSYSTEM==\"usb\", ATTR{idVendor}==\"1314\", ATTR{idProduct}==\"152*\", " \
       "MODE=\"0660\", OWNER=\"$USER_NAME\"" \
    > "$RULE_FILE"

  echo "Reloading udev rules…"
  udevadm control --reload-rules
  udevadm trigger

  echo "Done."
'
chmod +x LIVI-*-x86_64.AppImage

Mac (arm64)

Just download the -arm64.dmg, open it, and drag LIVI.app into Applications. Then remove the Gatekeeper quarantine once and launch the app. This step is required for all non-Apple-signed apps and future in-app updates will preserve this state.

xattr -cr /Applications/LIVI.app

For audio support, please install Sound eXchange (SoX) via brew.

brew install sox

Build Environment

Node pnpm electron chrome release

System Requirements (build)

Make sure the following packages and tools are installed on your system before building:

  • Python 3.x (for native module builds via node-gyp)
  • build-essential (Linux: includes gcc, g++, make, etc.)
  • libusb-1.0-0-dev (required for node-usb)
  • libudev-dev (optional but recommended for USB detection on Linux)
  • fuse (required to run AppImages)

Clone & Build

git clone --branch main --single-branch https://github.com/f-io/LIVI.git \
  && cd LIVI \
  && corepack enable \
  && corepack install

# Install dependencies from lockfile
pnpm run install:ci

# --- Build targets ---

# Linux x86_64 (AppImage)
pnpm run build:linux

# Linux ARM64 (AppImage)
pnpm run build:armLinux

# macOS (arm64 dmg)
pnpm run build:mac

Dongle Firmware Feature Matrix

The available features depend on the firmware version running on the Carlinkit dongle. Listed limitations are firmware-level restrictions and cannot be fixed by the application.

Firmware Version Nav Auto Switch Call Auto Switch Audio Metadata Web Interface Notes
2025.10.15.1127 🟢 🟢 🟢 🟢 Full feature set
2025.02.25.1521 🔴 🟢 🟢 🟢 No auto switching on navigation guidance
2021.02.23.1758 🔴 🟡 🔴 🔴 Limited protocol support

🟢 = Supported, 🔴 = Not supported, 🟡 = Unknown

Images

CarPlay

MediaSettings

Maps (Cluster Stream)Telemetry

Credits

See CREDITS for acknowledgements and prior art.

Disclaimer

Apple and CarPlay are trademarks of Apple Inc. Android and Android Auto are trademarks of Google LLC. This project is not affiliated with or endorsed by Apple or Google. All product names, logos, and brands are the property of their respective owners.

License

This project is licensed under the MIT License.

About

Carplay and Android Auto head unit for Linux (ARM/x86) and macOS (ARM) using Carlinkit dongles. Hardware-accelerated video and low-latency audio.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Languages