-
Notifications
You must be signed in to change notification settings - Fork 0
Setup Guide
Caution
- Flywheel is still experimental software.
- Use it at your own risk.
- Do not use it while driving.
- I am not responsible for bricked headunits.
Flywheel does not currently have any stable releases. You can try a debug pre-release from the releases tab.
Tip
On Android 15 and above, if you installed an APK from the releases tab, you may need to go to [Settings > Apps > Flywheel > 3 dot menu > Special App Access] before Android will let you grant some of Flywheel's permissions.
Flywheel does not request certain permissions yet. Failure to grant these permissions results in silently degraded functionality.
You can grant these from [Settings > Apps > Flywheel > Permissions]:
- Microphone: needed for audio capture on Android 11 and below.
- Phone: enhances the information shown with the network status indicators on some versions of Android.
You can grant these from [Settings > Apps > Special app access]:
- Notification read, reply & control: allows displaying and reading aloud (with TTS) notifications through your car.
If the Android Auto app is installed and enabled on your phone, it will try to take over the USB connection.
It might look something like this when you try to connect:
To disable Android Auto:
- Go to [Settings > Apps > All apps]
- Find Android Auto in the list. You may have to select "Show system" from the 3 dot menu.
- Use the "Disable" button.
The current development snapshot of Flywheel requires elevated privileges in some form (either through root or ADB). This is because Flywheel's car UI embeds other applications on your phone to be used through Flywheel.
If your device is not rooted or you are unsure, see the Shizuku section.
If your device is rooted, you won't need to change anything.
Flywheel uses root mode by default.
Root mode requires your phone to be rooted with Magisk, KernelSU, or some other root solution which provides a su binary. If you don't know what any of that means, you device probably isn't rooted.
To enable root mode:
- Open Flywheel
- Expand the 3 dot menu and tap "Settings"
- Change "Privilege mode" to "root"
You may need to manually grant root access to Flywheel from within your root manager if it doesn't ask for it.
Use this mode if your phone isn't rooted.
Shizuku mode has some limitations:
- On some phones, connecting anything over USB will cause Shizuku to die. Flywheel adds a grace period in this mode to allow time to re-launch Shizuku. (Please note that starting Shizuku usually requires a WiFi network!)
- Apps that use FLAG_SECURE will not be viewable on the car display. This is a permission limitation of the ADB Shell.
- Shizuku, and by extension Flywheel, will not work after a reboot until you start Shizuku again.
To enable Shizuku mode:
- Install and set up Shizuku if you haven't already.
- Open Flywheel
- Expand the 3 dot menu and tap "Settings"
- Change "Privilege mode" to "Shizuku"
You may need to manually grant Shizuku access to Flywheel from within Shizuku if it doesn't ask for it.
Tip
It is advisable to try Flywheel without setting up a custom key/certificate pair first.
If that doesn't work, you may need to follow this section.
Typically DIY, emulated, and aftermarket headunits won't try to authenticate connections as coming from the real Android Auto app. Official, OEM, and certified aftermarket headunits may not be so nice.
In these cases, you must import a private key and certificate chain extracted from the real Android Auto app. These change frequently and usually only last a few months before they expire. Instructions for this are not yet available in this repository, but there are multiple ways to go about it if you know what you're doing.
You may also be able to find working (but usually expired) Android Auto app key/certificate pairs from elsewhere on the Internet. These can work, but you might have to set the clock back on your headunit to before they expired. Flywheel will tell you if an imported certificate is expired.
Now that everything is set up, head over to the usage guide (TODO) for usage information.