Home.

Technik-Blog

Willkommen auf meinem
Notiz - Blog
Blog

Kmoser's Tech-Blog

Sonntag
23
Februar 2014

HTC Sensation rooten

Nachdem jetzt meine Garantie für mein HTC Sensation abgelaufen ist, wollte ich mal versuchen das Gerät zu rooten. Da mein Sensation schon das Update auf Android 4 gekommen hat, gestaltet sich die Sache ziemlich schwierig.

Vorbereitung

FastBoot deaktivieren

Zur Vorbereitung des Handys muss unbedingt FastBoot deaktivert werden, damit man in den Bootloader gelangen kann. Dieses deaktiviert man unter:

Einstellungen > Power > Schnellstart

Hier muss das Häckchen entfernt werden.

USB Debugging

Um diverse Befehle über den USB Port senden zu können muss das USB-Debugging aktiviert werden. Das geht unter:

Einstellungen > Entwickleroptionen > USB-Debugging

Am Besten aktivert man auch gleich noch Aktiv bleiben unter:

Einstellungen > Entwickleroptionen > Aktiv bleiben

damit das Telefon während es am USB-Kabel hängt nicht aus geht.

Treiber installieren

Auf dem PC sollten alle Treiber installiert sein um das HTC korrekt zu erkennen. Dabei ist zu beachten, dass sich das Handy wenn es im Bootloader ist sich anders zu erkennen gibt als im normal gebooteten Zustand. Mein Windows 8 hat das Telefon z.B. im Bootmenü nicht erkannt, mein Windows 7 ja.

Zum Testen also das Handy sowohl im normal gebooteten Zustand als auch im Bootloader per USB am PC anschließen und prüfen ob es im Gerätemanager korrekt und ohne Fehler angezeigt wird.

Zudem ist es hilfreich das Android SDK installiert zu haben. Die Programme adb und fastboot werden im weiteren Verlauf nämlich noch öfters gebraucht oder können nützlich sein.

Mit dem folgenden Befehl lässt sich anzeigen ob das Handy richtig erkannt wurde:

adb devices

Es sollte bei gebootetem Android in etwa eine Ausgabe ähnlich der folgenden kommen:

* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached SA344H913582 device

Um in den  Bootloader zu gelangen schaltet man das Handy aus und startet es mit gedrückter Leiser-Taste oder man startet das Handy über folgenden Befehl direkt in den Bootloader:

adb reboot bootloader

Im Bootloader zeigt adb devices bei mir nichts an, wird im Gerätemanager aber korrekt angezeigt.

Bootloader entsperren

Zuerst habe ich mal den Bootloader entsperrt. Dazu habe ich mich auf http://www.htcdev.com angemeldet und mir die entsprechende Anleitung unter http://www.htcdev.com/bootloader herausgesucht.

Wie man in den Bootloader des Handys kommt, habe ich ja schon oben beschrieben. Im Bootloader angekommen wird das Telefon über das USB Kabel mit dem PC verbunden. Wie oben schon erwähnt muss das Telefon im Gerätemanger auftauchen sobald man FASTBOOT USB ausgewählt hat.

Jetzt wird der Identifier Token ausgelesen und das geht mit folgendem Befehl:

fastboot oem get_identifier_token

Jetzt sollte wie in der Anleitung von HTC ein paar Zeilen Text kommen die den Identifier beinhalten. Kopiert werden jetzt alle Zeilen zwischen, bzw. inklusive der Zeilen

<<<< Identifier Token Start >>>>
[...]
<<<<< Identifier Token End >>>>>

und zwar ohne die Präfixe (bootloader) oder INFO. Dieser Token wird jetzt auf der Website von HTC eingetragen und abgesendet. Kurz darauf sollte man eine EMail mit einer Datei namens  Unlock_code.bin bekommen.

Diese Datei schmeißt man vorübergehend in das Verzeichnis in dem auch fastboot enthalten ist oder man kopiert sich die Dateien adb.exe, AdbWinApi.dll und fastboot.exe in einen neuer Ordner und packt die Unlock_code.bin hier mit hinein. Wir befinden uns im Bootloader und mit den folgenden Befehl können wir jetzt den Bootloader entsperren:

fastboot flash unlocktoken Unlock_code.bin

Das Handy meldet sich noch einmal und warnt uns vor den Risiken die ein entsperrter Bootloader mit sich bringt. Mit der lauter Taste können wir zu dem Punkt Yes navigieren und mit der Power Taste bestätigen wir die Aktion. Das Handy besitzt nun einen entsperrten Bootloader.

Zu beachten ist dabei das diese Aktion mit einem Factory Reset verbunden ist. Das Handy ist danach leer, also vorher alle Daten sichern.

Sollte man den Bootloader nachträglich wieder sperren wollen, kann man das mit folgendem Befehl erledigen:

fastboot oem lock

S-OFF

Der Begriff S-OFF bedeutet Security-Off und bedeutet dass man dauerhaft Schreibzugriff auf die Partitionen /system (???) bekommt.

Um S-OFF zu bekommen gibt es zwei Tools. Das eine ist revolutionary.io, das HBOOT 1.17.0006 - 1.18.0000 unterstüzt. Das zweite ist JuopunutBear von unlimited.io und unterstützt auch Sensations mit einer HBOOT Version > 1.18, wie bei mit die HBOOT Version 1.27.0000.

Aktuell unterstützt JuopunutBear nur noch die 32 Bit Versionen von Ubuntu 12.04 und höher. Die Windows Unterstützung wurde eingestellt, da die Zuverlässigkeit der Verbindung unter Windows nicht ausreichend ist um genügend Handys davor zu bewahren unbrauchbar zu werden.

Wichtig ist auch noch zu beachten dass man einen USB 2.0 und nicht einen USB 3.0 Port verwendet.

Eine Anleitung wie der Vorgang durchzuführen ist, ist hier zu finden. Bitte unbedingt lesen, da hier evtl. neuere Informationen verfügbar sein können, als hier stehen.

ControlBear

Auf der oben genannten Seite muss das entsprechende Archiv mit ControlBear für das Handy heruntergeladen werden, dass man barbeiten möchte.

Diese Dateien kann man jetzt z.B. auf einen mit ext3 formatierten USB Stick kopieren, damit man falls man von einer Live-CD bootet, die Dateien nicht immer neu herunterladen muss. Auf FAT formatierten Sticks kann man das executable Flag nicht setzen.

Die Dateien müssen jetzt noch mit folgendem Befehl ausführbar gemacht werden:

chmod 755 ControlBear adb fastboot

Jetzt führt man ControlBear in einem Terminal aus:

sudo ./ControlBear

Irgendwann wir ControlBear vermelden, dass man den Wire-Trick durchführen soll.

Wire Trick

Jetzt kommt der unangenehme Teil, der sehr lange dauern kann bis er funktioniert. Bei dem Wire-Trick muss man einen leitenden Kontakt zwischen zwei Punkten am Handy herstellen, die rechts im Bild dargestellt sind. Solche Dinge treiben einem immer den Angstschweiß auf die Stirn, vor allem bei Geräten die doch eine ganze Menge Geld gekostet haben.

Wenn das Programm den Wire-Trick verlangt, stecken wir unseren Draht oder was immer wir auch verwenden in die kleine Öffnung (die untere) und tippen kurz das Gehäuse der SDKarte (GND) an. Jetzt warten wir 1.25 - 1.5 Sekunden und tippen das Gehäuse erneut an.

Dann muss man warten und das Programm weiter machen lassen.

Sollte man die Meldung "Still Sober" bekommen, war der Vorgang nicht erfolgreich und muss wiederholt werden. Kann das leider nicht verifizieren, bei mir hat's auf Anhieb geklappt.

SuperCID setzen

Die Super CID Carrier Identification Number) ist eine spezeille CID die es uns erlaubt beliebige Images zu flashen. Zuerst wieder in den Bootloader starten:

adb reboot bootloader

Mit folgendem Befehl bekommt man die aktuell im Handy eingetragene CID:

fastboot getvar cid

Die Super CID setzt man jetzt mit

fastboot oem writecid 11111111

Wichtig ist dabei darauf zu achten dass man genau 8x die 1 einträgt.  Alles andere kann wohl zu Problemen führen.

War die Aktion erfolgreich starten wir neu in den Bootloader um das Ergebnis zu überprüfen:

fastboot reboot-bootloader

Wenn das Telefon neu gestartet ist, die CID nochmal auslesen

fastboot getvar cid

Jetzt sollte die SuperCID dabei herauskommen.

SD Karte neu formatieren

Nach der ganze Aktion war meine SD-Karte platt. Hab die Karte also in nen Reader gesteckt und am PC neu partitioniert.

sudo fdisk /dev/sdc

Jetzt die Partition mit VFAT formatieren.

sudo mkfs.vfat -F 32 /dev/sdc2

Recovery installieren

Die beiden bekanntesten Recoveries dürften CWM und 4EXT sein. 4EXT basiert auf CWM bietet aber noch einiges mehr an Funktionen.

Das Image für CWM läd man sich auf der Website von Clockwordmod herunter.

Man kann das Image booten, ohne es auf das Handy flashen zu müssen. So kann man probieren ob ein Image auch ohne Probleme läuft. Nach einem Neustart ist alles beim Alten.

fastboot boot recovery.img

Das Image wird dauerhaft geflasht mit:

fastboot flash recovery recovery.img

Jetzt kann das Handy neu in den Bootloader gestartet werden. 

fastboot reboot-bootloader

Um in das Recovery zu kommen, wählt man jetzt den Eintrag BOOTLOADER und wartet während das Telefon nach einer nicht existierenden Datei namens PM58IMG.zip sucht. Nun landet man im Bootloader Modus ohne Fastboot. Hier wählt man jetzt die Option RECOVERY und ladent im CWM. Dieser bedient sich ebenso wie das Bootmenü mit dem einzugen Unterscheid dass man den Zurück Button verwenden kann.

Rooten des Geräts

Gerootet wird das Gerät duch die Installation des Programms su und der busybox. Beides ist zu finden im Archiv der Anleitung von Bratwurstmobil. Hier die Datei nochmal als Einzeldownload.

Diese Datei muss auf die Wurzelebene der SD-Karte kopiert werden. Dann in den Bootloader und ins CWM starten. Hier wählt man den Eintrag Install zip from sdcard und dann choose zip from sdcard. Jetzt die Datei givemeroot.zip auswählen und flashen. Mit der Zurück-Taste ins Hauptmenü navigieren und mit reboot system now das Handy neu starten.

Damit ist das Handy gerooted und man kann die Datei givemeroot.zip wieder von der SD-Karte löschen.

Recovery installieren

Mit dem Recovery kann man Images flashen und noch ein paar weitere Dinge machen. Hier hat man die Auswahl zwischen dem CWM (ClockWorkMod) und dem 4EXT Recovery. Wobei letzeres im Moment wohl das beste Revocery ist.

Von der Website 4ext.net den 4EXT Recovery Updater herunterladen und auf die SD-Karte kopieren und installieren.

Hat man alle Einführungsmeldungen wegdrückt, wählt man im Menü oben Online Installation | Ugrade. Die Anfrage auf SuperUser Rechte bejahen und die Meldung das noch keine lokale Gerätedatenbank existiert wegdrücken. Erlaubnis nach außen zu Telefonieren erlauben um neue Daten zu holen.

Ich musste Install | Upgrad zwei mal ausführen bis die Auswahl meines Gerätes und der Images erfolgte.

Das oberste Image auswählen und installieren. Alle weiteren Fragen entsprechend beantworten.

Custom ROM installieren

Die Installation des Custom ROMs war jetzt ein Kinderspiel. Habe mir dazu das Cyanogen Mod 11 und die Google Apps heruntergeladen und diese Als Zip auf die SD-Karte kopiert.

Dann ins 4EXT Recovery gebootet und einen Full Wipe gemacht, damit es keine Probleme mit bestehenden Systemdateien gibt. Bei einem Full Wipe werden alle Systempartiionen formatiert. Dazu also den Wintrag "Wipe | Format" ausgewählt und mit "format all partitions (except sdcard)" das Gerät platt gemacht.

Dann zurück navigieren und "install from sdcard" auswählen, mit "choose zip from sdcard" das ROM auswählen und flashen.

Viele ROMs haben den sogenannten AROMA Installer mit dem man über eine grafische Oberfläche ein paar Einstellungen tätigen kann.

Zu guter letzt noch die Google Apps auf die gleiche Weise installieren und fertig. Nach der Installation mit "reboot now" das Handy neu starten lassen.

Die Version die ich mir installiert habe läuft einwandfrei und ich konnte bislang noch keinen Bug feststellen.

Hier ein paar Links wo man Custom ROMs bekommen kann:

ROMs und mehr auf XDA-Developers

ROMs auf android-hilfe.de

CM11 Nightly Builds auf chronic-buildbox.com

Custom ROM updaten

Ein Update eines ROMs funktioniert genaus wie die Installation, mit dem Unterschied dass der Full Wipe entfällt, es sei denn er ist für das Update zwingend vorgeschrieben.

HTC RUU,s

Die Orginal-ROMs kann man z.B. hier bekommen. Flashed man ein solches ROM ist vermutlich S-OFF und Root wieder weg. Habe es aber nicht ausprobiert.

Radio flashen

Die radio Partition enthält die Treiber für alles was mit Kommunikation zu tun hat. Diese kann man ebenfalls austauschen. Mein Sensation hatte das Problem das es immer wieder zufällig abgestürzt ist, wenn ich das WLAN aktiviert hatte. Da es bei aktiviertem WLAN-Hotspot nicht passiert ist, habe ich ein Softwareproblem vermutet und mich zu dem Schritt entschieden das radio upzudaten. Gebracht hat es aber leider nichts. Das Handy stürzt nach wie vor bei aktiviertem WLAN ab. Vermutlich ist doch ein Hardwaredefekt der Auslöser.

Die installierte Version findet man unter:

Einstellungen > Über das Telefon > Baseband-Version

Im HBOOT kann man die Version wohl auch auslesen, scheint aber oft nicht zu stimmen. Korrekt ist die aus den Settings des Telefons wie oben beschrieben.

Beim Flashen eines Radio Images ist es wichtig immer den MD5 Hash zu überprüfen, da die beiden Images die ein Telefon em ehesten bricken können Bootloader- und Radio Images sind.

Folgende Schritte sind für das Flashen des Radio Images notwendig:

1. Die herutergeladene Datei PG58IMG.zip auf die SD-Karte kopieren
2. Den MD5 Hash überprüfen

adb shell md5sum /sdcard/PG58IMG.zip

Sollte der MD5 Hash nicht stimmen, die Datei nicht flashen und nochmals herunterladen.

3. In den Booloader starten

adb reboot bootloader

4. Hier wählt man nun den Eintrag BOOTLOADER damit das Telefon aus dem fastboot Modus raus geht und auf der SD-Karte nach Updates sucht. Wenn das Update gefunden wurde mit "lauter" den Updatevorgang starten. Wenn der Updatevorgang erfolgt ist, mit der Powertaste den Reboot Vorgang bestätigen.

Man kann auch über fastboot flashen, was aber wohl gefährlicher sein soll.

Images gibt es bei XDA-Developers.

Nützliche Befehle

Hier noch ein paar nützliche Befehle, die ich während meiner Recherche gefunden habe:

In den Bootloader booten

adb reboot bootloader

Ins Recovery booten

adb reboot recovery

Kommandozeile öffnen:

adb shell

IMEI anzeigen 

Um die IMEI anzuzeigen einfach folgende Nummer wählen

*#06#