- First run now asks for permissions one at a time, each on its own screen with an Allow or Skip, instead of firing every system dialog at once from a cold start - The head unit certificate can be downloaded straight from the opencardev/aasdk repository with one tap, on top of the existing adb-staged and file-import paths; Settings shows which source is active and lets an imported or downloaded certificate be removed - A phone app on the car screen: a keypad and a searchable contacts list, with a confirmation card before every call - The web browser draws its own on-screen keyboard for a page's text fields, so a search box or address bar can be typed into from the car screen - Media player rework: a dedicated Now Playing tab with a bigger, screen-size-aware layout, an Up Next tab showing the app's real queue, and Browse/Lyrics tabs that share the same rail - Waze and Google Messages are marked broken instead of pretending to work; Google's own dialer, Assistant, and Android Auto entries are hidden from the car launcher entirely; Aardvark and Vivi Music are marked tested and working - A help screen replaces the old wall of setup text on the home screen - The display-calibration screen is gone - it did its job
Gearslip
Bring any app to your car screen.
What Gearslip is
Gearslip is an Android Auto client for the phone. It speaks the Android Auto protocol directly to a car head unit over USB, with no Google software in the path. Gearslip acts as a Car App Library host: an app that ships a car interface hands Gearslip a template, and Gearslip renders that template natively on the car screen. Nothing is mirrored from the phone. For apps without a car interface, Gearslip offers a separate screen-sharing mode.
The author reverse-engineered the protocol for interoperability, so that a client other than Google's own can talk to a car head unit.
Status
- Templated apps work. Gearslip renders all 16 template types that the Car App Library defines, and it draws its own keyboard for search and sign-in. It has been tested against several real navigation and media apps.
- Media playback works. Gearslip lets you browse and control car-enabled media apps from the car screen, with lyrics and playback state, over the same host connection.
- Audio reaches the car by capturing playback, not by mirroring the screen. Android requires a screen-share style consent dialog and indicator for this, even though Gearslip never reads the screen; that grant is the only way a non-privileged app can tap another app's audio. The consent normally repeats every drive; the app's own setup steps include two optional adb commands that reduce it to a one-time grant.
- A real head unit needs a certificate that Google controls. A head unit accepts only a phone identity that chains to Google's Automotive Link certificate authority, and Google alone issues those certificates. Gearslip does not ship one. Without it, Gearslip runs and renders correctly against a debug harness, but a real car rejects the connection. A leaked certificate exists that older head units accept; newer firmware and Google's reference tooling reject it.
- Gearslip needs no adb, root, or Shizuku. Every feature relies on an ordinary Android permission or an on-device consent dialog. The two adb commands mentioned above, for audio, are the sole exception: both are optional, and both only remove a dialog that the driver would otherwise see once per drive.
Building
./gradlew :gearslip:assembleDebug
The APK lands at build/Gearslip-debug.apk.
A release build needs a signing key. Copy keystore.properties.example to
keystore.properties, fill in your own values, and run
./gradlew :gearslip:assembleRelease. Git ignores both the properties file and the
keystore. Without them, the debug build still works.
Writing apps for Gearslip
docs/BUILDING_APPS.md specifies how to write apps that Gearslip can render: templated apps, media apps, and the Gearslip app protocol.
License
Gearslip is licensed under AGPL-3.0; see LICENSE. The author offers a separate commercial license for private use outside the AGPL's terms; see NOTICE.md.