A companion app for cars with native wireless Android Auto that:
- Injects an EV Energy Model into Android Auto so Google Maps unlocks EV routing (range rings, charging-stop planning) even when the car doesn't expose one natively.
- Draws a "traffic / incident monitor" on the instrument cluster — a forward-facing half-compass showing nearby police, mobile speed traps and fixed speed cameras (Waze + the open GATSO camera dataset), with distance and report counts, and plays a notification sound when an alert first comes into range.
It works by sitting as a transparent man-in-the-middle between your phone's Android Auto and the car, so nothing needs to be installed on the car.
Current Android Auto versions no longer let a third-party app trigger projection directly, so the app connects through Android Auto's built-in head unit server. Start it once per session — before you get in the car, and again after a phone reboot:
- Open Android Auto settings: phone Settings → Connected devices → Android Auto (or open the Android Auto app's settings).
- Scroll to the bottom and tap "Version" 10 times to unlock Developer settings.
- Open the ⋮ menu → Developer settings.
- Tap "Start head unit server".
The app then connects to it automatically and takes over the projection.
(Older Android Auto — 17.3 and below — also works and connects automatically, so you can skip the head-unit-server step on those versions.)
The app replaces the wireless connection itself, so the car's built-in wireless AA must be disabled first (same Developer settings screen as above):
- Open Android Auto → ⋮ menu → Developer settings.
- Turn OFF "Add wireless projection cars" / wireless Android Auto.
Police and mobile-speed-trap data comes from the Waze feed via OpenWeb Ninja. You must supply your own API key — without it the app cannot pull Waze reports.
- Sign up at https://www.openwebninja.com/ and subscribe to the Waze API.
- Copy your API key.
- In the app: Traffic HUD → Waze API key, paste it, done. You can verify it works with the Test Waze call button right below the field.
Heads-up on quota: the free plan is only 50 requests/month — far too little for real driving. Pick a paid plan and set a sensible update interval (also in Traffic HUD). Fixed speed cameras (GATSO) do not use the Waze key — they download automatically.
- Enable Install unknown apps for your browser/file manager.
- Install
WirelessAAManipulator.apk. - Grant the permissions it asks for (Bluetooth, Location — including "Allow all the time", Notifications, and "Display over other apps").
- Make sure Android Auto has already been extracted OK (the app shows a green "certificate" status on the main screen — this just reads your installed Android Auto, no car needed).
- Get in the car, connect over Bluetooth as usual — the app takes over from there.
⚠️ Important — first connection: keep your phone UNLOCKED. The very first time the app connects, Android pops up a prompt asking you to allow it to join the car's Wi‑Fi hotspot. You must explicitly approve it, and that prompt only appears while the phone is unlocked — if the screen is locked it silently won't connect. Unlock the phone for the first connection; once approved it's remembered for future drives.
- Energy profile — pick the model that matches your car (see below).
- Replace maps with traffic info — ON draws the compass on the cluster; OFF leaves the car's normal projected map untouched. The Waze/camera features only run when this is ON.
- Waze API key / update interval (seconds) — your key and how often to poll.
- Test Waze call — runs the exact same request the app makes while driving and shows the result, so you can confirm your key/plan works.
- Offset — nudges the energy model more/less optimistic (affects Maps' range estimates).
The energy-models/ folder contains the EV profiles bundled in the app (JSON). Pick the
matching one in Settings → Energy profile:
| Profile | Battery | Notes |
|---|---|---|
| Zeekr 7GT AWD | 95 kWh | Reference model, measured/accurate |
| Zeekr 7GT Long Range | 100 kWh | derived from 7GT AWD |
| Zeekr 7GT 75 kWh | 75 kWh | derived from 7GT AWD |
| Zeekr X | 66 kWh | derived from 7GT AWD (SUV road-load approximate) |
| Zeekr 7X | 100 kWh | derived from 7GT AWD (SUV road-load approximate) |
| Lotus Eletre | 109 kWh | |
| Lotus Emeya | 102 kWh | derived from Eletre |
| Tesla Model 3 Long Range | 78 kWh | |
| Tesla Model S Plaid | 95 kWh |
Profiles marked "derived" adjust battery capacity + mass from a reference car but reuse its aero/road-load and charging curves, so their consumption is an approximation — refine with real telemetry if you can. Contributions of accurate profiles are welcome.
This is an interoperability / hobbyist tool provided as-is, with no warranty. It is not affiliated with, endorsed by, or supported by Google, Waze, Zeekr, Lotus or Tesla. Use it at your own risk and keep your eyes on the road — the cluster display is an aid, not a substitute for attention. Speed-camera and police data may be incomplete or out of date.