Sobre o projeto

O LIVI (Linux In-Vehicle Infotainment) é uma aplicação open-source de unidade principal que implementa nativamente o lado acessório do Apple CarPlay e do Android Auto. Funciona em Linux (ARM e x86_64, incluindo Raspberry Pi 4/5 e CM4/CM5) e macOS (Apple Silicon e Intel), e é distribuído sob a licença GPL-3.0-or-later. Conectividade - Apple CarPlay, com e sem fios, em Linux e macOS. O modo sem fios requer um adaptador Bluetooth mais uma interface Wi-Fi dedicada ao ponto de acesso próprio do LIVI; o modo com fios funciona em qualquer porta USB sem OTG. - Android Auto com fios em todas as plataformas; Android Auto sem fios em Linux. - O CarPlay requer autenticação MFi através de um coprocessador Apple, ligado por fios ao barramento I²C na placa ou acedido pela rede através de um LIVI Link. O LIVI não fornece nem contorna o chip, e não suporta a Basic Accessory Authentication da Apple no macOS. Multimédia e entrada - Pipeline de vídeo GStreamer nativo zero-copy com descodificação H.264/H.265 acelerada por hardware; fallback para descodificação por software quando não existe controlador VA-API. - Áudio de baixa latência, chamadas telefónicas e uplink de microfone, metadados de reprodução em curso com capa do álbum e dados de navegação curva a curva. - Entrada por toque, botão/D-Pad e teclas físicas, modo dia/noite e encaminhamento de GPS para o telefone. Múltiplas sessões - Vários telefones podem estar ligados ao mesmo tempo através de CarPlay sem fios, CarPlay com fios e Android Auto sem fios; o Android Auto com fios está limitado a um dispositivo. As sessões mantêm o estado, a bateria, o sinal, os metadados de multimédia e a navegação atualizados em segundo plano, e a troca é uma transferência em vez de uma reconexão. Ecrãs e calibração - Suporte a múltiplos ecrãs: as janelas Main, Dash e Aux podem ser colocadas em ecrãs físicos separados, com funcionalidades atribuíveis de forma não exclusiva. - A resolução do stream, as margens da área de visualização e a área segura são configuráveis de forma independente para os streams principal e de cluster, tanto no CarPlay como no Android Auto. - Calibração de ecrã por software para gama, contraste e canais RGB, aplicada como uma única passagem do compositor sobre a imagem final. Telemetria e GPS - Um painel (em desenvolvimento) consome telemetria via IPC/socket; uma CLI em scripts/tools envia dados de teste. - O GPS lê recetores NMEA-0183 numa porta série, com sondagem adicional u-blox UBX para identidade do módulo e estado do front-end de RF. O recetor também pode definir a hora e o fuso horário do sistema. Instalação e compilação - Um único script de instalação suporta anfitriões desktop e headless, usando apt ou dnf, testado em Raspberry Pi OS, Ubuntu 26.04 e Fedora 44. É necessário OpenGL ES 3.x; o Pi 4/5 e o CM4/CM5 precisam de Debian 13 (Trixie), enquanto o Pi 3 e anteriores não são suportados. - São fornecidos um AppImage pré-compilado para Linux x86_64 e um dmg para macOS arm64. - A compilação requer Node.js 24.x com pnpm, Rust estável (≥1.88), pacotes de desenvolvimento do GStreamer e, em Linux, cabeçalhos Wayland/xkbcommon mais pacotes de runtime para CarPlay e Android Auto sem fios (bluez, hostapd, dnsmasq-base, iw, rfkill, avahi, pulseaudio-utils). No macOS, o addon de vídeo liga-se ao GStreamer.framework. As flags de depuração e os locais de registo estão documentados em DEBUGGING.md. O projeto não é afiliado nem apoiado pela Apple ou pela Google.