wtfos is a community framework for modifying the firmware of DJI FPV Goggles and Air Units enabled by margerine.
It includes anti-bricking measures, a configurator, a package manager, a service manager and a vendor service modification framework.
You can support the project on Open Collective and join us on our Discord.
See Mad's Tech's getting started guide.
wtfos-configurator only supports rooting on the V01.00.0606 firmware. This firmware version must be displayed in the DJI FPV mode, DJI Digital FPV system a.k.a. DIY mode menus can lie about the actual installed firmware version.
If on any other version or in doubt please use butter to downgrade first.
wtfos-configurator supports rooting on V01.00.0606 or V01.00.0608 firmware. It is compatible with:
- DJI Air Unit
- DJI Air Unit Lite a.k.a. Caddx Vista a.k.a. Runcam Link
- DJI FPV Goggles V1
There are currently no plans to support the O3 Air Unit, Goggles 2 or Goggles Integra.
Use the configurator to root your device, install wtfos and manage community provided packages.
To offer some degree of protection against messing things up, wtfos-system makes a copy of your system partition and mounts it over the real one early during startup.
You can skip this and other wtfos loading procedures by holding down the bind button on your device during bootups and waiting to hear 3 short beeps from the buzzer for confirmation.
Then your device should be booted with any modifications skipped at startup to the original system partition and you should once again have access to the device via ADB.
The opkg package manager is available with fpv-wtf/opkg-repo added as a source.
Everything is installed in /opt/
(which is a symlink to /blackbox/wtfos/opt/
) which is added your your path automatically by the scripts in /blackbox/wtfos/mkshrc.d/
.
The easiest way to browse and manage packages is via the the configurator.
For command line usage instructions see the opkg wiki page for using the opkg
command in the cli.
Use dinit which is available in the repository for advanced service management with dependencies, enabling/disabling of units and more.
Users can manage services with the configurator or the dinitctl
command in the cli.
Packages wishing to use dinit should depend on it and install their unit in /opt/etc/dinit.d/.
Should you wish to return to the plain adb root hack, use the configurator to uninstall wtfos.
To also remove adb access and restore compatibility with the Assistant on all the V1 gear run the following in the shell:
wtfos-remove-adb
reboot
V2 Goggles do not require removal of adb to work with Assistant.
Hop on our Discord.
For a guide on the basics of wtfos packaging see D3VL's blog post. For native development use the Android NDK to build binaries with a target of android-23 and platform of armeabi-v7a.
Check out the wtfos wiki and the following repos:
- https://github.com/stylesuxx/ipk-example
- https://github.com/fpv-wtf/opkg-repo
- https://github.com/bri3d/msp-osd
- https://github.com/fpv-wtf/dfbdoom
- https://github.com/fpv-wtf/wtfos-modloader
- https://github.com/funneld/djifpv_enable_live_audio
If you'd like, you can support the project on Open Collective, send some ETH to 0xbAB1fec80922328F27De6E2F1CDBC2F322397637
or BTC to 3L7dE5EHtyd2b1tXBwdnWC2MADkV2VTbrq
.
Based on the margerine root method. Please blame: