AA-EntryNav adds Android Auto to BMWs with the EntryNav2 head unit, the one with a 1280×480 screen and CarPlay over Wi-Fi. NBT Evo, ID7 and MGU units are different systems and can't run it. Start it from iDrive's Media menu and your phone connects over the car's own Bluetooth and Wi-Fi, or over a USB cable. It adds two folders to the head unit and leaves BMW's files as they are.
Warning
AA-EntryNav is experimental, and installing it changes the head unit's system. Install it with the car parked, entirely at your own risk. The authors accept no responsibility for any damage to your car or loss of its warranty.
The easy way is Flare Drive, the companion Android app. It downloads a signed release and checks that your car can run it before installing. Updates and removal happen there too, along with the switches for the experimental features below. The CHANGELOG lists what changed in each release.
Installing by hand
You need an ENET cable, a PC with an SSH client and the head unit's root password. AA-EntryNav doesn't come with the password.
- Back up the car's system with
tools/backup_headunit.sh. It only reads. - Copy a release archive (from
tools/package_release.py) to the head unit's/tmpand unpack it. - Run
sh setup.sh check. It checks that the car has what AA-EntryNav needs and writes nothing. - Run
sh setup.sh install, then restart the head unit withreboot. - On iDrive, open Media, Android Auto, Start Android Auto.
| On the head unit | |
|---|---|
sh /opt/aa/setup.sh status |
What is installed, and whether its files are intact |
sh /opt/aa/setup.sh uninstall |
Removes it. Settings and logs in /var/local/data/AA stay, and --purge deletes them |
The installation guide has every step in full, what each check looks at, and how to recover.
Your phone finds the car over Bluetooth and gets the details of its Wi-Fi hotspot, the one CarPlay uses. Android Auto then runs over that Wi-Fi and fills iDrive's screen.
- You start and stop it under Media, Android Auto, and can have it start along with iDrive.
- It answers to the car's own controls: the iDrive controller and its buttons, the touch screen, the steering wheel buttons and the voice button.
- Calls and the Assistant hear you through the car's microphone, and maps take their position from the car's GPS.
- Android Auto's next turn also shows in the instrument cluster and the head-up display.
Each one is a switch in Flare Drive, or a file in /var/local/data/AA on the head unit. The
settings guide lists every file, and how to turn on the logs.
| Feature | File |
|---|---|
| Android Auto over a USB cable, with sound and calls on the car's Bluetooth | usb |
| Wireless off, so only the cable works and the car's Bluetooth and Wi-Fi are left alone | wireless-off |
| iDrive switches to Bluetooth audio as the phone connects | select-bt-audio |
| Sound over Wi-Fi instead of Bluetooth | audio-wifi |
You need Docker. The build links the ARM programs against a copy of the car's system, which
tools/backup_headunit.sh makes. That copy holds BMW files and never goes into git.
| Command | What it does |
|---|---|
git config core.hooksPath .githooks |
Once. Before each push to main, checks for secrets and runs verify_arm.py |
docker build -t entrynav2-tc:4.7 toolchain |
Once. Builds the cross compiler |
make check |
Style, content checks and the PC tests, as CI runs them |
python3 tools/verify_arm.py |
The ARM programs against the car's libraries, their tests under QEMU, and the release checks |
python3 tools/package_release.py |
The release archive, after verify_arm.py |
CI can't hold the copy of the car's system, so it runs only make check. The pre-push hook runs verify_arm.py on
each commit pushed to main, and tools/verify_tests.py makes sure every test runs in one or the other.
ARCHITECTURE.md shows how the programs fit together, and CONTRIBUTING.md says what a change needs.
AA-EntryNav started from entry-aad by Jiraiya43, a port of Supra-iDrive6-Android-Auto by Sq00ky. NOTICE.md says which files hold their code.
AA-EntryNav is under the PolyForm Noncommercial License 1.0.0: you can use, change and share it for any noncommercial purpose, but not sell it. AA-EntryNav comes with no warranty.
AA-EntryNav is an independent project. It is not made or endorsed by BMW or Google. BMW and iDrive are trademarks of BMW AG. Android and Android Auto are trademarks of Google LLC.
