Cyanogenmod und die Systemverschlüsselung

Heute kam ich nach einigem Herumspielen auf die Idee, mein betagtes Android-Tablet mit einer kompletten Systemverschlüsselung auszustatten. Cyanogenmod bietet netterweise von Haus aus diese Option an:

Einstellungen -> Sicherheit -> Telefon verschlüsseln

Das Verschlüsseln des Dateisystems war an sich auch kein großes Problem und klappte einwandfrei. Ich verwendete eine vierstellige PIN als Schlüssel und ließ das Tablet ein Stündchen arbeiten.

Bei Hochfahren des Systems wurde mir klar, dass nicht nur Zahlen-PINs, sondern auch ganze Passphrasen als Schlüssel möglich gewesen wären, sodass ich der Meinung war, diesen Schlüssel noch nachträglich zu ändern. Das geht in einer root-Shell auch ohne Probleme:

vdc cryptfs changepw <password>

Doch als dann die Verschlüsselung aktiv war, konnte ich dem Akku beim Entladen zusehen. Zehn verlorene Prozent der Akkuleistung bei zwei Stunden Standby war mir eindeutig zu ressourcengierig. Also musste ich einen Weg finden, die Systemverschlüsselung rückgängig zu machen, was natürlich ohne eine Neuinstallation nicht möglich ist.

Backup erstellen

adb bietet zum Glück die Mittel, um Backups zu erstellen. Um ein komplettes Backup wirklich aller Daten zu erhalten, empfielt sich folgender Befehl:

adb backup -apk -shared -all -f mein_backup.ab

Da das System verschlüsselt ist, wird auch die Backup-Datei mir dem gleichen Key vor neugierigen Augen geschützt.

Neuinstallation mit Formatierung von /data

Ich hatte gehofft, im ClockWorkManager einfach ein Löschen des ganzen Systems anstoßen zu können, doch wurde ich mit der Fehlermeldung begrüßt, dass /data nicht gemountet und dadurch nicht gelöscht werden kann. Es führte kein Weg an einer Formatierung der data-Partition vorbei.

Die Frage ist allerdings: Welches ist die data-Partition?

Um das herauszufinden, habe ich mich per adb shell auf dem System eingeloggt und nachgeschaut, wo denn genau die Partition liegt.

~ # ls /dev/block/
loop0       loop4       mmcblk0     mmcblk1p10  mmcblk1p5   mmcblk1p9
loop1       loop5       mmcblk0p1   mmcblk1p2   mmcblk1p6   platform
loop2       loop6       mmcblk1     mmcblk1p3   mmcblk1p7   zram0
loop3       loop7       mmcblk1p1   mmcblk1p4   mmcblk1p8

Hier war überhaupt nicht klar, welche Partition in Frage kommt.

Ein Versuch des Einhängens, hat mir da schon weiter geholfen.

~ # mount -a
mount: mounting /dev/block/platform/sdhci-tegra.3/by-name/userdata on /data failed: Invalid argument

Jetzt musste ich nur noch herausfinden, auf welche Partition dieser Link verweist.

~ # ls -l /dev/block/platform/sdhci-tegra.3/by-name/userdata
lrwxrwxrwx    1 root     root            21 Feb 16 19:52 /dev/block/platform/sdhci-tegra.3/by-name/userdata -> /dev/block/mmcblk1p10

Es war nun klar, welche die data-Partition ist, die nun umgehend formatiert werden konnte.

~ # mke2fs -t ext4 /dev/block/mmcblk1p10
~ # mount -a

Anschließend erfolgte die normale Neu-Installation von Cyanogenmod über den ClockWorkManager.

Backup einspielen

Nachdem das System nun neu aufgesetzt war, musste ich nur noch mein Backup einspielen und hatte meinen alten Stand ohne Festplattenverschlüsselung.

adb restore mein_backup.ab

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.