All Projects → tomasz-grobelny → AACS

tomasz-grobelny / AACS

Licence: GPL-3.0 license
Android Auto Server encapsulates communication with modern car infotainment system

Programming Languages

C++
36643 projects - #6 most used programming language
lua
6591 projects
shell
77523 projects
CMake
9771 projects
c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to AACS

Openauto
AndroidAuto headunit emulator
Stars: ✭ 1,926 (+1295.65%)
Mutual labels:  android-auto, headunit
Crankshaft
Crankshaft: A turnkey GNU/Linux solution that transforms a Raspberry Pi to an Android Auto head unit.
Stars: ✭ 1,703 (+1134.06%)
Mutual labels:  android-auto, openauto
accelerator-textchat-ios
OpenTok Text Chat Accelerator Pack enables text messages between mobile or browser-based devices.
Stars: ✭ 13 (-90.58%)
Mutual labels:  communication
APStreamline
Live Video Streaming Made Easy!
Stars: ✭ 98 (-28.99%)
Mutual labels:  gstreamer
AAIdrive
Implementations of some Android Auto features as unofficial IDrive apps
Stars: ✭ 401 (+190.58%)
Mutual labels:  android-auto
parlatype
GNOME audio player for transcription
Stars: ✭ 151 (+9.42%)
Mutual labels:  gstreamer
remoteyourcam-usb
No description or website provided.
Stars: ✭ 23 (-83.33%)
Mutual labels:  communication
Smart-City-Sample
The smart city reference pipeline shows how to integrate various media building blocks, with analytics powered by the OpenVINO™ Toolkit, for traffic or stadium sensing, analytics and management tasks.
Stars: ✭ 141 (+2.17%)
Mutual labels:  gstreamer
loco-rails
Rails is awesome, but modern web needs Loco-motive.
Stars: ✭ 53 (-61.59%)
Mutual labels:  communication
gstreamer-rtc-streamer
webrtc streamer based on gstreamer
Stars: ✭ 65 (-52.9%)
Mutual labels:  gstreamer
Channelize-Javascript-SDK
Open-source JavaScript SDK to enable Real-time Chat.
Stars: ✭ 20 (-85.51%)
Mutual labels:  communication
trainmanjs
TrainmanJS - Cross-Origin Communication Library
Stars: ✭ 16 (-88.41%)
Mutual labels:  communication
kms-filters
Filter elements for Kurento Media Server
Stars: ✭ 15 (-89.13%)
Mutual labels:  gstreamer
subtitleeditor
Subtitle Editor is a GTK+3 tool to create or edit subtitles for GNU/Linux/*BSD.
Stars: ✭ 79 (-42.75%)
Mutual labels:  gstreamer
cryptalk
HTML5/Node.js based, client side (E2EE) encrypted instant chat
Stars: ✭ 73 (-47.1%)
Mutual labels:  communication
UPnP Generic
A simple library that implements port mappings to router using UPnP SSDP for Arduino boards, running on nRF52, SAMD21/SAMD51, STM32F/L/H/G/WB/MP1, Teensy, RP2040-based boards, WT32_ETH01, Portenta_H7, etc. besides ESP8266/ESP32, using ESP WiFi, WiFiNINA, Ethernet W5x00, ESP8266/ESP32 AT-command WiFi, Portenta_H7 Murata WiFi or Vision-shield Ethe…
Stars: ✭ 14 (-89.86%)
Mutual labels:  communication
vimix
Live Video Mixer
Stars: ✭ 172 (+24.64%)
Mutual labels:  gstreamer
windowed-observable
Messaging lib using a pub/sub observable scoped by namespaces.
Stars: ✭ 132 (-4.35%)
Mutual labels:  communication
MQTTnet
MQTTnet is a high performance .NET library for MQTT based communication. It provides a MQTT client and a MQTT server (broker). The implementation is based on the documentation from http://mqtt.org/.
Stars: ✭ 3,309 (+2297.83%)
Mutual labels:  communication
tvoip
Terminal-based P2P VoIP application (TeamSpeak-/Skype-like voice chatting over LAN or Internet)
Stars: ✭ 34 (-75.36%)
Mutual labels:  communication

Intro

Many new cars have headunits that support Android Auto (AA). While the default use case (connect mobile via USB) is already useful (eg. for navigation), one may look at AA headunits as a more generic input/output device.

This project attempts to provide a basic layer to access Android Auto headunits as a video display and later maybe touchscreen, soundcard, etc.

This project attempts to be specific enough to provide a clear way to set it up. On the other hand it attempts to be generic enough by providing connectivity to already existing software components.

Hardware

This software is being developed on Odroid N2 platform. Reasons behind choosing this platform:

  • has USB OTG controller
  • powerful enough to process video
  • reasonable form factor, power requirements and price

If you want to try out this piece of code and/or help just buy Odroid N2. I do not have access to any other platform (ok, I tried BeagleBone Black, but it was too slow) so it would be extremely hard for me to provide any support. However, feel free to provide patches for other platforms.

System

The software is being developed on:

Installation

Instructions how to set up runtime and development environment can be found in the installation instructions document.

Design

Android Auto Protocol is not documented. However, it has been reverse engineered and open source implementation exists (see https://github.com/opencardev/openauto). While this code does not use a single line from openauto (except for headunit key/cert), openauto is extremenly useful while developing and testing AACS.

There are several components that comprise AACS:

  • AAServer is the component responsible for communication with car's headunit. When USB OTG connection is available AAServer starts Android Auto communication with headunit and start listening on a Unix socket for client connections.
  • AAClient is the component responsible for communication with mobile device running Andoid Auto. It starts connection to AAServer to get available service description and then forwards all the traffic to AAServer.
  • GetEvents is a small tool that listens for touch events from AAServer and uses XTest to forward them to specified application.
  • more to come - several more components integrating AACS with generic system components are possible such as GStreamer audio sink, audio/video source, etc.

AACS depends on Snowmix for video mixing.

Usage ideas

So what exactly could be displayed on headunit? Here are a few ideas:

  • any Android application, including any offline navigation, eg. using https://anbox.io/
  • video from camera using GStreamer's video4linux2 plugin
  • any graphical Linux application (using GStreamer's ximagesrc plugin)

Status

Currently AACS can do the following:

  • it can act as proxy for Android Auto traffic,
  • stream any video content to the headunit,
  • ...stay tuned for more.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].