fpv-wtf / wtfos

A framework for modifying the firmware of DJI FPV Goggles and Air Units
https://fpv.wtf
MIT License
266 stars 12 forks source link

About

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.

Video Guide

See Mad's Tech's getting started guide.

Mad's Tech wtfos getting started guide

Compatability

Goggles V2

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.

All other Devices

wtfos-configurator supports rooting on V01.00.0606 or V01.00.0608 firmware. It is compatible with:

O3 Devices

There are currently no plans to support the O3 Air Unit, Goggles 2 or Goggles Integra.

Setup and usage

Use the configurator to root your device, install wtfos and manage community provided packages.

Built In Features

Brick prevention

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.

OPKG package management

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.

Advanced usage

For command line usage instructions see the opkg wiki page for using the opkg command in the cli.

Service management

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/.

Uninstalling

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.

I need help

Hop on our Discord.

Developers

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:

Support the effort

If you'd like, you can support the project on Open Collective, send some ETH to 0xbAB1fec80922328F27De6E2F1CDBC2F322397637 or BTC to 3L7dE5EHtyd2b1tXBwdnWC2MADkV2VTbrq.

Credits

Based on the margerine root method. Please blame: