mirror of
https://github.com/Benjamin-Wiegand/Flywheel.git
synced 2026-07-20 05:22:25 -07:00
update readme
This commit is contained in:
@@ -1,157 +1,44 @@
|
||||
# Flywheel
|
||||
> [!caution]
|
||||
> This is experimental software in active development. USE AT YOUR OWN RISK.
|
||||
> - Flywheel is experimental software.
|
||||
> - Use it at your own risk.
|
||||
> - Do not use it while driving.
|
||||
> - I am not responsible for bricked headunits.
|
||||
|
||||
A free and open source alternative to Android Auto for de-googled phones, compatible with existing headunits.
|
||||
Flywheel is a free and open source alternative to Android Auto intended for users of de-googled phones, aiming to be compatible with existing headunits.
|
||||
|
||||

|
||||
|
||||
## warnings
|
||||
|
||||
This is experimental software:
|
||||
## Documentation
|
||||
|
||||
- Use it at your own risk.
|
||||
- Do not use it while driving.
|
||||
- I am not responsible for bricked headunits.
|
||||
For user documentation, visit the [wiki tab](https://github.com/Benjamin-Wiegand/Flywheel/wiki).
|
||||
|
||||
## status
|
||||
|
||||
Still in development.
|
||||
|
||||
### authentication
|
||||
|
||||
Some (most?) certified/OEM Android Auto headunits verify an SSL certificate provided by the phone to check if it originated from the Android Auto app, and may refuse to connect if this verification fails.
|
||||
|
||||
There are some exceptions, but I don't have a large enough sample to verify if they are the exception or the rule yet.
|
||||
|
||||
To use Flywheel with these headunits, you need to obtain the private key and SSL certificate used by the official Android Auto app. 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.
|
||||
|
||||
> [!tip]
|
||||
> You may also be able to find working (but usually expired) Android Auto app key/certificate pairs from elsewhere on the Internet.
|
||||
> These may work, but usually only if you to set the clock back on your headunit to before they expired.
|
||||
|
||||
Once you obtain matching private key and certificate files, you can import them into Flywheel via the settings menu (Settings > Certificates and keys).
|
||||
After importing, you can enable the "Use imported keys" option, which will cause Flywheel to use the imported key and certificate when you try connecting to your headunit.
|
||||
|
||||
### headunit compatibility
|
||||
|
||||
> [!note]
|
||||
> Some headunits **may** work with Flywheel's self-signed keys. If not, then you may need to use keys and certificates extracted from the Android Auto app.
|
||||
> Please see the [authentication](#authentication) section for more information.
|
||||
|
||||
> [!warning]
|
||||
> I have no idea how your specific car/headunit will react to communications from this app. Be prepared for unforeseen consequences.
|
||||
|
||||
Tested and working on OEM car headunits from these cars:
|
||||
- 2021-2024 Nissan Kicks SV/SR
|
||||
- Model number: PN-4300
|
||||
- Software Version: 432
|
||||
- Authentication: Works with both self-signed (CN=Bob) and imported keys. Date is adjustable.
|
||||
- Notes: Only tested outside of a car, I don't have the car, just the stereo.
|
||||
|
||||
If your headunit isn't listed, you accept the risks, and you want to help, please [open an issue](https://github.com/Benjamin-Wiegand/Flywheel/issues/new/choose) for a headunit compatibility report.
|
||||
|
||||
### emulator compatibility
|
||||
|
||||
Tested and working on these headunit emulators:
|
||||
- [OpenAuto](https://github.com/f1xpl/openauto/)
|
||||
- [Headunit Reloaded](https://xdaforums.com/t/android-4-1-headunit-reloaded-for-android-auto-with-wifi.3432348/)
|
||||
|
||||
### phone compatibility
|
||||
|
||||
#### root/Shizuku
|
||||
> [!NOTE]
|
||||
> - KernelSU has not been tested yet.
|
||||
|
||||
Flywheel currently requires you to either provide root access (via [Magisk](https://github.com/topjohnwu/Magisk/), [KernelSU](https://github.com/tiann/KernelSU/), etc.) or ADB access via [Shizuku](https://github.com/RikkaApps/Shizuku/).
|
||||
|
||||
A "no root" mode is planned which will only support screen mirroring.
|
||||
|
||||
#### operating system
|
||||
> [!NOTE]
|
||||
> - Flywheel currently works best on Android >= 10.
|
||||
> - Flywheel does not currently work with touch input on Android 9 and below.
|
||||
> - Please [report](https://github.com/Benjamin-Wiegand/Flywheel/issues/new/choose) any issues you encounter.
|
||||
|
||||
Flywheel currently targets Android 8 and above.
|
||||
|
||||
Flywheel has been verified to work on these operating systems (this list may not be current):
|
||||
- LineageOS (de-Googled, some with microG)
|
||||
- LineageOS 18 (AOSP 11)
|
||||
- LineageOS 21 (AOSP 14)
|
||||
- LineageOS 22 (AOSP 15)
|
||||
- LineageOS 23 (AOSP 16)
|
||||
- GrapheneOS (no GMS)
|
||||
- latest (Android 16)
|
||||
- Stock Android (Google Pixel, with Google services)
|
||||
- Android 9
|
||||
- Android 10
|
||||
- Android 13
|
||||
- Android 16
|
||||
- Stock Android (various vendors, de-googled)
|
||||
- Android 11
|
||||
- Android 14
|
||||
- Android 15
|
||||
- MIUI (de-googled)
|
||||
- MIUI 11 (Android 8)
|
||||
|
||||
Any OS not listed above has yet to be tested.
|
||||
|
||||
#### video
|
||||
|
||||
Tested and working on a select few devices from these platforms:
|
||||
- Qualcomm
|
||||
- Mediatek
|
||||
- Exynos
|
||||
|
||||
#### audio
|
||||
|
||||
> [!NOTE]
|
||||
> Due to security restrictions, some audio is not captured yet:
|
||||
> - Phone call audio is not currently captured.
|
||||
> - DRM-protected audio is currently not captured.
|
||||
|
||||
Currently, your phone must natively support the audio sample rate for your headunit. The only easy way to check this is to just try it.
|
||||
|
||||
### working
|
||||
- USB communication
|
||||
- Protocol communication
|
||||
- Framing and multi-frame messages
|
||||
- TLS encryption
|
||||
- Service discovery (mostly)
|
||||
- Video
|
||||
- H.264 at 480p, 720p, and 1080p, 30 and 60 fps (requires your phone to support the given mode)
|
||||
- Audio
|
||||
- raw PCM audio (requires device support for sample rate and bit depth)
|
||||
- User input
|
||||
- touch screen input (with multitouch)
|
||||
- phone keyboard input
|
||||
- basic button input
|
||||
- basic rotary input
|
||||
- Basic UI
|
||||
- open apps on the display
|
||||
- split screen
|
||||
- dock with app shortcuts, time, battery, and network indicators
|
||||
- app drawer
|
||||
- pop-up notifications with TTS
|
||||
#### Featured sections
|
||||
- [Setup guide](https://github.com/Benjamin-Wiegand/Flywheel/wiki/Setup-Guide)
|
||||
- [Features](https://github.com/Benjamin-Wiegand/Flywheel/wiki#features)
|
||||
- [Phone compatibility](https://github.com/Benjamin-Wiegand/Flywheel/wiki/Phone-Compatibility)
|
||||
- [Headunit compatibility](https://github.com/Benjamin-Wiegand/Flywheel/wiki/Headunit-Compatibility)
|
||||
|
||||
|
||||
## bug reporting
|
||||
## Bug reporting
|
||||
|
||||
If you encounter any bugs, [please open an issue](https://github.com/Benjamin-Wiegand/Flywheel/issues/new/choose) describing the behavior and attach logs from logcat if possible.
|
||||
If you encounter any issues, please [visit the troubleshooting wiki page](https://github.com/Benjamin-Wiegand/Flywheel/wiki/Troubleshooting) first. If you can't resolve the issue, please [submit a bug report](https://github.com/Benjamin-Wiegand/Flywheel/issues/new/choose).
|
||||
|
||||
## contributing
|
||||
|
||||
Feel free to open an [issue](https://github.com/Benjamin-Wiegand/Flywheel/issues/new/choose) detailing something you want to work on (but please state that you will work on it).
|
||||
## Contributing
|
||||
|
||||
Feel free to [look for or open a new issue](https://github.com/Benjamin-Wiegand/Flywheel/issues) for something you want to work on, and say that you'll work on it. Contributers may provide helpful information or warn you of upcoming churn, so please pay attention to new comments on the issue.
|
||||
|
||||
Please note that contributions may not always be accepted, but are always appreciated!
|
||||
|
||||
## thanks
|
||||
|
||||
## Thanks
|
||||
|
||||
Non-code contributions:
|
||||
|
||||
- [Nick](https://github.com/4channel) for helping test on his car
|
||||
- [Zelemar](https://zelemar.eu) for helping me diagnose an OEM headunit for bench testing
|
||||
- [Zelemar Electronics](https://zelemar.eu) for helping me diagnose an OEM headunit for bench testing
|
||||
|
||||
Other projects of great help during development:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user