Pitfalls beim Rooten des HTC Butterfly

Feine Details und ein paar häßliche Überraschungen

Mein altgedientes Galaxy S2 scheint den Alterstod zu sterben. Vor längerer Zeit habe ich ein HTC Butterfly in die Finger bekommen; damals habe ich den Aufwand des Umstiegs gescheut, da nach dem Rooten plötzlich die HTC-Over-the-air-Updates nicht mehr eingespielt werden konnte. Nun wollte ich einen neuen Versuch wagen, der mich letztendlich mindestens fünf schlaflose Nächte gekostet hat. Ich behaupte mal ganz steil, daß ein größerer Teil nicht auf meine mangelhafte Recherche, sondern einige häßliche Überraschungen zurückzuführen ist. Damit es anderen HTC-Usern (dürfte für so ziemlich alle aktuellen HTC-Modelle gelten) nicht ebenso geht, schreibe ich die Geschichte hier einmal auf.

Der Anfang des Dramas

Ich wollte ein Handy mit root. Da das mit einem Factory-Reset einhergeht, war das seinerzeit meine erste Amtshandlung. HTC gibt sich da ja freundlich gegenüber Experimentierfreudigen, über eine Webseite kann man sich einen Unlock-Code zum Entsperren des Bootloaders schicken lassen. Also Unlocken, Custom-Recovery TWRP aufspielen, superuser installieren, fertig. Mehr wollte ich an sich nicht.

Problem: OTA-Updates ließen sich nun nicht mehr einspielen; dies schob ich (zunächst ausschließlich) auf das Custom Recovery, ein Stock Recovery fand ich im Netz nicht, deshalb landete das Gerät mangels Zeit in der Ecke

Das Desaster…

…begann mit dem Gedanken, dann eben ein Custom ROM zu installieren. InsertCoin sah sexy aus, also flugs ein Backup gemacht und das ROM installiert. Tat nicht, Gerät hing in Boot-Loop oder resettete sich beim Erreichen der Telefon-PIN-Eingabe. Aber wofür hat man ein Backup!

Backup eingespielt – Telefon bootet nicht mehr.

…und die Lösung

S-OFF und seine Funktion

HTC (und wohl noch einige weitere Hersteller) hat einen weiteren Schutzmechanismus, nämlich S-ON/S-OFF. Im Modus S-ON ist der Bootloader HBOOT und die Firmware (Radio-ROM) vor dem Überschreiben geschützt. Prinzipiell eine gute Idee, so kann man das Gerät an sich nicht bricken.

Was sich im Laufe der Zeit herausstellte (und ich dummerweise nicht im Netz gefunden habe): Bei S-OFF ist es nicht möglich, im Recovery-Mode den Kernel (boot.img) zu flashen. Perverserweise führt der Versuch auch zu keiner Fehlermeldung. Um ein Backup wiederherzustellen, ist also ein Dreischritt nötig:

  • Restore des Backups in TWRP
  • Neustart in Fastboot
  • Mittels fastboot flash boot boot.emmc.win den Kernel zurückspielen (erfordert natürlich den Kernel auf dem Rechner, aber man hat ja hoffentlich sein Backup auch vom Gerät ‘runtergerettet…)

Die Verpackung lügt!

Vom HTC Butterfly gibt es zwei Versionen: Das x920d und das x920e. Laut Verpackung habe ich ein x920d. Das Auslesen der Systeminfos mittels

fastboot getvar cid
fastboot getvar mid

lieferte aber als cid HTC__033 und eine Model-ID PL9930000, die beim recherchieren im Netz dem x920e zuordnen ließen! Klar, daß ein ROM nicht funktioniert, wenn es auf der falschen Hardware installiert wird…

OTA-Updates

OTA-Updates lassen sich im Modus S-ON nur installieren, wenn das Orginal-Recovery-ROM installiert ist und der Bootloader gelockt(!) ist. Hat man sein Telefon S-OFF, ist angeblich der gelockte Bootloader nicht mehr nötig – das habe ich aber noch nicht getestet.

Der Weg zurück nach vorn

Mit obigem Kniff konnte ich mein Backup wieder zum Laufen bringen; ein Stock Recovery ROM habe ich in der OTA Collection bei xdadevelopers gefunden. Also:

  • Backup einspielen
  • Stock Recovery flashen
  • Bootloader locken

Nun trudelten mehrere OTA-Updates ein, die sich auch anstandslos aufspielen ließen. Nachdem die Software auf dem neuesten Stand war (bei mir: Software 3.13.401.4), konnte ich also endlich…

  • Bootloader unlocken
  • TWRP flashen
  • Rooten
  • Mit Hilfe von Firewater das Handy S-OFF schalten.

Das Orginal-Recovery habe ich aus dem OTA-Zip (siehe obiger xda-Link) herausgezogen und aufgehoben. Nun warte ich gespannt, ob sich das nächste OTA-Update auch mit ge-unlock-tem Bootloader aufspielen läßt.

Da mich das Teil aber dermaßen geärgert hat, hat es nun wenigstens eine standesgemäße Bluetooth-Kennung :-)