Team Win Recovery Project

typische TWRP Oberfläche

Das Team Win Recovery Project (kurz TWRP) ist ein Open-Source-Projekt, welches herstellerunabhängige Custom-Recovery-Systeme mit erweiterten Funktionen für Android-Geräte zur Verfügung stellt.


TWRP ersetzt das originale Recovery-System des Herstellers. Wenn man nach der erfolgreichen Installation des TWRP die Tastenkombinationen zum Starten des Recovery Mode drückt, erscheint nicht mehr das Hersteller-Menü, sondern das TWRP Menü. Im TWRP Menü bestehen zahlreiche Möglichkeiten, das System zu verändern, zu sichern oder sogar komplett auszutauschen.

Installation

Die Installation erfolgt über den sogenannten Download oder Fastboot Modus der Smartphones. Eine Vielzahl von Geräten der Marke Samsung können z.B. über das Drücken der Tastenkombination Power + Home + Volumn-Down Buttons in den Download-Modus versetzt werden. Als Voraussetzung für das flashen der Custom-Recovery muss die Installation von Fremdsoftware in den Einstellungen aktiviert werden (z.B. durch Deaktivierung der OEM-Sperrung).

Die Installations-Dateien für das jeweilige Android-Gerät findet man z.B. unter XDA oder TeamWin.

Odin

Odin-Flash Tool

Eine einfache Möglichkeit, einen TWRP aufzuspielen besteht mit dem freien Tool Odin. Hier muss die .tar oder .zip-Datei (enthält die recovery.img-Datei) über die Schaltfläche AP ausgewählt werden und kann dann auf das angeschlossene, im Download-Modus befindliche Gerät aufgespielt werden. Das Custom-Recovery-Image wird somit in Recovery-Partition des Gerätes kopiert.

  • Odin starten und einrichten
  • Options
    • Auto Reboot und F.Reset Time ausschalten
    • AP–Einfügen des richtigen TWRP
  • Samsung Gerät in den Download-Modus bringen
    • Bei Nachfrage Volumn-Up Taste drücken, um in den Download-Modus zu kommen
  • Smartphone an den PC anschließen, ID:COMPort sollte erscheinen
  • Start drücken und warten-Fertig, wenn Passer scheint

adb

adb flash recovery twrp.img

Details zu ADB (Android Debug Bridge)

fastboot

fastboot flash recovery twrp.img

Details zu Fastboot

Funktionen

Im Gegensatz zur Standard-Recovery bei Android Geräten verfügt ein TWRP über folgende zusätzliche Funktionen:

  • Wipe
  • Backup
  • Advanced
  • Restore
  • Install

Details können dem TeamWin FAQ entnommen werden.

Aus forensischer Sicht ist besonders interessant, dass ein TWRP in den allermeisten Fällen mit dem rooten des Gerätes einhergeht. Dies kann man sich zur physikalischen Sicherung von Android Geräten zu nutze machen.

Sicherung im TWRP Recovery-System

Nachdem das Android Gerät gerootet ist, kann der gesamte physikalische Speicher oder einzelne Partitionen gesichert werden. Zur Sicherung können eine Vielzahl unterschiedlicher Tools oder Methoden verwendet werden. An dieser Stelle werden exemplarisch drei gängige Varianten vorgestellt.

adb

Linux
Zwei Terminals öffnen(im Weiteren stehen (1) und (2) für das jeweilige Terminal)

  • (1) Terminal für das Smartphone öffnen
  • (2) Terminal für den PC/HDD öffnen
  • (1) Android Debug Bridge starten
adb shell
  • (1) Alle gemounteten Geräte werden angezeigt, den Pfad des Smartphones raussuchen; (Bsp.: /dev/block/sda oder /dev/block/mmcblk)
mount
  • (2) In das Zielverzeichnis wechseln (Bsp: cd /media/linux-whore/ufed-hdd/1234)
cd /media/RECHNERNAME/ZIELORDNER
  • (1) physikalisches Abbild erzeigen
adb pull /dev/block/mmcblk0 image.bin
  • Daten vom Smartphone werden in der Datei image.bin gespeichert
  • Es wird nur eine Datei erstellt, Größe variiert je nach verbautem Speicher
  • Wenn mit Enter bestätigt wurde, beginnt der Ausleseprozess.

Windows
Der adb pull Befehl funktioniert nicht für Partitionen unter Windows (Windows erkennt die Partition ohne Dateiendung nicht). Man kann allerdings aus dem Gerät heraus die Partition auf die Standardausgabe (Konsole) legen und von dort in eine Datei umleiten.

adb shell "dd if=/dev/block/ 2>/dev/null"

Beispiel:

adb shell "dd if=/dev/block/mmcblk0 2>/dev/null" c:\data\mmcblk0.bin

dd

Sollte adb nicht funktionieren, besteht die Möglichkeit das physikalische Abbild auf eine eingelegte MicroSD-Karte zu sichern.

  • formatierte MicroSD-Karte in das Gerät einlegen
  • Smartphone in den Recovery-Modus bringen
  • Advanced–Terminal-Mount
  • Alle gemounteten Geräte werden angezeigt
    • den Pfad des Smartphones raussuchen(Bsp.: /dev/block/sda oder /dev/block/mmcblk0)
    • den Pfad des externen Speichers raussuchen (Bsp.: /external_sdcard)
dd if=dev/block/sda of=/external_sdcard/test.bin
  • Daten des internen Speicher werden in die .bin-Datei kopiert, welche auf dem externen Speicher erstellt wird

netcat

Am besten ist es zwei Konsolen zu öffnen, da man sich in der einen Konsole mit dem Smartphone verbinden und in der anderen Konsole die zu übertragenden Daten sichert.

Konsole 1 (Smartphone)

Auf das Smartphone noch nicht zugreifen (keine Verbindung mittels "adb shell"), da zunächst ein Netzwerkport über die adb weitergeleitet werden muss:

adb forward tcp:8888 tcp:8888 

Dies wird benötigt, da netcat übers Netzwerk die Daten überträgt, wir aber keine Netzwerkverbindung nutzen sondern die interne Verbindung (USB).

Jetzt muss man mit der adb shell des Smartphones verbinden:

adb -d shell 

Das identifizierte Device wird jetzt gelesen und an netcat übertragen:

dd if=/dev/block/mmcblk0 | nc -l -p 8888 

In der Konsole ist keine Eingabe mehr nötig. Der Befehl wartet darauf, dass auf der Gegenseite die Daten verarbeitet werden.

Konsole 2 (Auswerterechner)

Hier werden jetzt die Daten verarbeitet:

nc 127.0.0.1 8888 | pv -petarb | dd of=./android_data.dd 

Mit "pv" wird nur der Status angezeigt. Ansonsten würde man nichts sehen und so werden zumindest übertragende Daten und die Geschwindigkeit angezeigt.

Weblinks

droidwiki - TeamWin_Recovery_Project
Wikipedia - Team_Win_Recovery_Project
www.xda-developers.com - TWRP
TeamWin