Entwickleroptionen
Einige Gerätedienste sind Entwicklern vorbehalten und erfordern (je nach Betriebssystemversion) bestimmte Vorbereitungen.
Geräte bis iOS/iPadOS 15.x erfordern die Einbindung einer zum Softwarestand passenden "DeveloperDiskImage"-Datei. Im Submodul "ufade-developer" wurden zahlreiche verfügbare Images zusammengetragen. UFADE wird versuchen ein geeignetes Image einzubinden.
iOS/iPadOS 16.x Geräte erfordern zudem die Aktivierung des Entwicklermodus. Diese Option ist am Gerät zunächst nicht verfügbar. UFADE fragt daher erst den aktuellen Stand der Entwickleroptionen ab. Das weitere Vorgehen hängt davon ab, ob auf dem Gerät ein Sperrcode eingerichtet ist.
Ohne gesetzten Sperrcode:
Der Entwicklermodus wird aktiviert und das Gerät automatisch neu gestartet. Nach dem Neustart ist die Aktivierung des Entwicklermodus zu bestätigen.
Mit gesetzten Sperrcode:
Der Menüeintrag für die Aktivierung des Entwickermodus wird verfügbar gemacht (Einstellungen → Datenschutz & Sicherheit → Entwicklermodus). Die Aktivierung erfordert einen Neustart. Nach dem Neustart ist die Aktivierung des Entwicklermodus zu bestätigen.
Ab iOS/iPadOS 17.x wird außerdem eine neue Verbindung zum Gerät über einen VPN-Tunnel aufgebaut. In der aktuellen Implementierung erfordert dies die Nutzung von Administrator/Systemverwalter-Berechtigungen auf dem Host-Gerät. Die kompilierte Windows-Version ist hierzu "als Administrator" auszuführen. Die anderen verfügbaren Versionen und die über Python ausgeführte Anwendung erfragen zur Laufzeit das Systemverwalter/sudo-Passwort über Boardimplementierungen (z.B. Pkexec unter Linux) und starten einen privilegierten Subprozess.
Eine weitere Besonderheit betrifft die iOS/iPadOS Versionen 17.0 - 17.3.1:
Für eine erfolgreiche Tunnelverbindung ist ein Kernel-Patch für Linux erforderlich.


Screenshots
Einer der potentiell relevanten Entwicklerdienste ist der ScreenshotService. UFADE kann diesen Dienst ansprechen um Bildschirmfotos der aktuellen Bildausgabe des Geräts zu erstellen.

Bei der Erstellung eines Screenshot wird ein "screenshots"-Unterverzeichnis angelegt. Für jede Bildaufnahme werden die folgenden Dateien erstellt:
- Die Bildaufnahme im PNG-Format benannt nach <Modellnummer>_MM_TT_YYYY_HH_MM_SS
- Eine TXT-Datei mit dem gleichen Namen, die den SHA256-Hash des Bildes beinhaltet
- Ein PDF-Bericht über den erstellten Screenshot mit zusätzlichen Informationen zum Quellgerät
Dieses Vorgehen wurde gewählt, um den erstellten Bildaufnahmen mehr Glaubwürdigkeit zu verleihen. Es wird jedoch nicht garantiert, dass die Beweiskraft der mit UFADE erstellten Screenshots vor Gericht in jedem Fall anzuerkennen ist oder dass eine missbräuchliche Verwendung dieser Funktion ausgeschlossen ist.
Chat Capture
Hierbei handelt es sich um eine Erweiterung der Screenshot-Funktion um die Möglichkeit, komplette Chats automatisiert zu erfassen.

Durch den Anwender ist hier der Name der App und des Gesprächspartners zu benennen. Mit der Wahl der Erfassungsrichtung startet die Erfassung des Chats. Es wird dabei für jede Nachricht ein Bild erstellt.
Es kann nicht gewährleistet werden, dass diese Funktion mit jeder aktuell oder zukünftig verfügbaren Chat-Anwendung nutzbar ist. Dies hängt von verschiedenen Faktoren - wie der Anordnung von Bedienelementen in der App - ab. In Versuchen war ein erfolgreicher Einsatz bei den Chat-Anwendungen: Whatsapp, Telegram, Instagram, Potato und Facebook Messenger möglich.
Dateisystemübersicht
Die Entwickleroptionen erlauben auch eine Einsicht in das Dateisystem, vergleichbar mit dem UNIX-Kommando ls. UFADE wird versuchen, rekursiv alle Pfade ausgehend vom "/var" Verzeichnis ausgehend abzulaufen und die Verzeichnisstruktur in eine Textdatei zu schreiben.
Dieser Aufruf ist sehr langsam und kann die Dauer einer tatsächlichen Dateisystemsicherung überschreiten.
Bis iOS 15.x lässt sich mit diesem Aufruf das vollständige Dateisystem abbilden. Ab iOS 16.x befinden sich die Nutzerdaten auf einer separaten Partition. Daher werden ab iOS 16 nur Systemdaten erfasst. Dies kann gegebenenfalls genutzt werden um zu überprüfen, ob durch ein Systemupdate neue Dateien angelegt werden.
DDI Unmount
Bei Geräten mit iOS 16 und darunter musste ein DeveloperDiskImage eingebunden werden um das Entwicklermenü aufzurufen. Dieses kann wieder ausgehangen werden um den ursprünglichen Zustand des Geräts wiederherzustellen. Alternativ kann das Gerät neu gestartet werden.
