Seit einer Weile bin ich nun auch unter den HD-Piloten. Und vor Kurzem hat mich die Meldung ereilt, dass es inzwischen ein paar Jungs gelungen ist, das DJI-System zu rooten. Da ich keine deutsche Anleitung gefunden habe, dachte ich mir, ich dokumentiere meinen Prozess gleich mal.
Auf den DJI-Geräten läuft eine Mischung aus Linux mit Android-Kernel. Auf diesen lassen sich Root-Rechte einrichten (Adminrechte), um Custom-Code ausführen zu können sowie auf das Root-Dateisystem zuzugreifen, was grundlegende Änderungen ermöglicht (Änderungen am OSD etc.).
Benötigt:
ACHTUNG!!
Wenn irgendwas nicht klappt, ihr nicht alle Dateien geladen habt, euer Virenscanner (warum auch immer) einzelne Dateien löscht, verändert oder sperrt, lauft ihr Gefahr, eure Brille zu bricken!
FPV-Team übernimmt keine Haftung für Ausfälle und Bricks. Diese Anleitung ist nur als Leitfaden gedacht für alle Interessierten.
Nachahmung auf eigene Gefahr!!
Seit ein paar Tagen ist es dem DEV-Team um fpv.wtf gelungen, eine einfache Möglichkeit zu veröffentlichen, mit der sich die FPV-HD V1 und V2 rooten lassen, um Zugriff auf die Hardware zu ermöglichen (ADB etc.). Kurz gesagt: Damit lassen sich die Daten auf der Brille modifizieren sowie Custom-Befehle ausführen. Aktuell ist es auch schon möglich, unregistrierte Airunits und Vistas ohne die DJI-App zu binden und somit den Updatezwang zu umgehen.
Vorbereitung:
Ladet euch (falls noch nicht geschehen) die neueste Version von Node.js für Windows und installiert sie:
Node.js Installer <– Nehmt die .msi Version für volle Integration in die Windows-PowerShell

Klont und entpackt das Git-Repo auf euren PC (Klickt oben rechts in die grüne Box, wo „Code“ steht, und dann auf „Download ZIP“):
Margerine GitHub Repo

- Ladet den Brillenakku sowie den Akku, mit dem ihr die Airunit oder die Vista versorgt.
- Euer PC sollte eine Internetverbindung haben (Margerine lädt Payload vom wtf.fpv-Server während des Prozesses).
- Nehmt ein ordentliches USB-C-Kabel für das Flashen! Am besten das mitgelieferte Kabel. Billigzeug kann schnell teuer werden, wenn etwas schiefgeht!
- Für den Flash-Prozess muss die SD-Karte aus der Brille/Airunit entnommen werden.
- Falls ihr eine V2-Brille habt, muss diese auf FW-Version 01.00.0606 sein (Downgrade geht wohl über einen DIY-Modus im Menü und die passende .bin-Datei. Habe es aber, da ich eine V1 habe, nicht selbst testen können).
- Bei den Airunits bzw. Vistas unbedingt Thermal Protection deaktivieren und für ausreichend Kühlung sorgen (Ventilator, Lüfter), wie bei einem FW-Update.
Haltet die Shift-Taste und klickt mit einem Rechtsklick in den Margerine-Ordner, wählt „PowerShell-Fenster hier öffnen“.

In der PowerShell angekommen, geht es jetzt ans Updaten und anschließend ans Flashen mit
npm install
Installiert die JavaScript-Dependencies, die ihr für das Skript benötigt.
Anschließend:
node margerine.js unlock
um eure Brille/Airunit/Vista zu rooten. Falls ihr (für Garantieansprüche, Software-Updates [Aktuell keine Updates installieren!! Eventuell wird der Zugang in neueren FW-Versionen gesperrt!!] etc.) die Brille wieder locken wollt, gebt einfach
node margerine.js lock
Etwas warten. Keine Angst, die Reboots sind normal, auch dass es rund 5 Minuten dauert.

Fertig! 😀
Im Readme des GitHub-Repos findet ihr auch einen Link zum Projekt-Discord-Server. Dort könnt ihr aktiv mitarbeiten oder auch einfach nur checken, was so der aktuelle Arbeitsstand ist, bzw. wird euch auch bei Problemen schnell und kompetent geholfen.
