For support of other platforms please contact me at [email protected]
OpenAuto is an AndroidAuto(tm) headunit emulator based on aasdk library and Qt libraries. Main goal is to run this application on the RaspberryPI 3 board computer smoothly.
- 480p, 720p and 1080p with 30 or 60 FPS
- RaspberryPI 3 hardware acceleration support to decode video stream (up to 1080p@60!)
- Audio playback from all audio channels (Media, System and Speech)
- Audio input for voice commands
- Touchscreen and buttons input
- Bluetooth
- Automatic launch after device hotplug
- Automatic detection of connected Android devices
- Wireless (WiFi) mode via head unit server (must be enabled in hidden developer settings)
- User-friendly settings
- Linux
- RaspberryPI 3
- Windows
GNU GPLv3
Copyrights (c) 2018 f1x.studio (Michal Szwaj)
AndroidAuto is registered trademark of Google Inc.
- aasdk
- Boost libraries
- Qt libraries
- CMake
- RtAudio
- Broadcom ilclient from RaspberryPI 3 firmware
- OpenMAX IL API
OpenAuto provides a unified build script (build.sh) that works consistently across local and Docker environments.
# Build release version (recommended for production)
# Note: main/master branches default to release, other branches default to debug
./build.sh release --package
# Build debug version with symbols (for development/debugging)
# Debug builds create packages with -dbg suffix (openauto-dbg)
./build.sh debug --package
# Auto-detect build type based on git branch
./build.sh --package
# Clean build
./build.sh release --clean --packageUsage: ./build.sh [release|debug] [OPTIONS]
Build types:
release Build release version (default)
debug Build debug version with symbols
Options:
--clean Clean build directory before building
--package Create DEB packages after building
--output-dir Directory to copy packages (default: /output)
--help Show help message
Note: Builds are always done with NOPI=ON (no Pi-specific hardware)If you need to build manually:
AMD64/x86_64:
-
Install dependencies from prebuilts repository
-
Install Qt5 and development packages
-
Build with CMake:
mkdir -p build-release cd build-release cmake -DCMAKE_BUILD_TYPE=Release .. make -j$(nproc)
Note: The build script automatically enables NOPI=ON
Raspberry Pi:
- Use the scripts in the
prebuiltsrepository foraasdkandopenauto - Or use the unified
build.shscript:./build.sh release --package
The Dockerfile uses the same build.sh script:
docker build -t openauto --build-arg DEBIAN_VERSION=trixie .This software is not certified by Google Inc. It is created for R&D purposes and may not work as expected by the original authors. Do not use while driving. You use this software at your own risk.
This project includes a comprehensive test suite to verify the functionality of the application.
To run the tests, follow these steps:
- Make sure you have built the project successfully
- Navigate to the build directory and execute the test runner:
cd build
ctest -VOr to run specific test categories:
cd build
# Run unit tests
./tests/unit/openauto_unit_tests
# Run integration tests
./tests/integration/openauto_integration_testsYou can generate test coverage reports using:
cd build
cmake -DCMAKE_BUILD_TYPE=Debug -DWITH_COVERAGE=ON ..
make
make test
make coverageThis will generate coverage reports in the coverage directory.
For detailed information about test cases and validation procedures, refer to TESTPLAN.md.