-
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.
Before installing, you may want to verify that your device is capable of running Flywheel:
Flywheel does not currently have any stable releases. You can try a debug pre-release .apk file from the releases tab.
These apk files are signed and should be normally installable. Unfortunately, this may change soon on certified Android devices due to new upcoming restrictions.
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.
A list of optional and required permissions can be granted by going to the permissions menu [3 dot menu > Permissions]. Flywheel will prompt you on startup if you are missing required permissions.
Depending on your configured settings, you may need to grant a different set of permissions.
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.
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:
This will prevent Flywheel from being able to connect to your car.
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.
You can re-enable Android Auto at any time through the same menu.
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.
- Expand the 3 dot menu and go to [Settings > Keys and Certificates]
- Import PEM encoded X509 certificate (or chain) and matching PKCS8 private key through file picker
- Enable the "Use Imported Keys" switch
Some wireless adapters may allow you to effectively bypass this requirement if they provide their own certificates/keys for the headunit connection.
One such example is the AAWireless adapter with passthrough mode disabled.
Please note that real keys from the Android Auto app are only valid for a few months after creation, so these adapters may try to use headunit keys instead, which might not work with your car. (The AAWireless adapter does, for example).
Now that everything is set up, head over to the usage guide for additional usage information.