Das G1 Dilema

Gestern laß ich bei Heise:

Bislang erwies sich das als falsch, doch heute bestätigte T-Mobile-Pressesprecher Dirk Wende gegenüber heise online, dass es für das G1 nur noch Hotfixes geben werde. Haben die Ingenieure etwa nicht bedacht, dass neue Versionen eines Betriebssystems unter Umständen mehr Speicher benötigen würden?

Also gibt es kein Android 2.0 für das G1. Allerdings gibt es eine Lösung: CyanogenMod. Damit wird das ganze geflasht und schon ist der Tag gerettet. Wie das geht wird hier beschrieben.

Apps auf die SD Karte

Ein Problem des G1 ist sein kleiner interner Speicher. So lassen sich nur relativ wenige Anwendungen auf dem Gerät installieren ohne das der Speicher schnell voll ist. Wenn man das CyanogenMod installiert hat stellt dies allerdings kein Hindernis da. Das einzige was dann noch benötigt wird ist eine partitionierte SD Karte, was gleich im G1 erledigt werden kann.

Zuerst muss dazu das Telefon abgeschaltet werden. Anschließend wird es mit einem Druck auf Home + Auflegen im Recovery Modus gestartet. Dort angekommen drück man Alt+X und startet so die Konsole. In der Konsole muss dann erstmal Enter gedrückt werden. Danach gibt man folgendes ein:

parted /dev/block/mmcblk0 [Enter]
print [Enter]

ein und sieht dann die Größe der SD Karte. Diese sollte man sich notieren. In meinem Fall waren es 8169 MB. Nun müssen alle existierenden Partionen gelöscht werden. Dies geschieht mittels rm 1 [Enter], rm 2 [Enter] und so weiter.

Mittels print kann man dann überprüfen ob die Partionen gelöscht wurden. Nun kann mittels

mkpartfs primary fat32 0 XXXX [Enter]

die erste Partion erzeugt werden. Auf dieser Partion sind die Daten (Musik, Video, etc.) enthalten. Bei mir ist sie 6000 MB groß. Damit sieht das ganze so aus.

mkpartfs primary fat32 0 6000 [Enter]

Sobald man das ganze mit Enter bestätigt hat sollte man darauf achten das die Del Taste nicht funktioniert. Gibt man doch was falsches ein hilft es einfach Enter zu drücken. Man wird dann im interaktiven Modus abgefragt.

Danach kann die ext2 Partion erzeugt werden. Das geschieht mittels

mkpartfs primary ext2 XXXX YYYY [Enter]

Bei mir sieht das ganze dann so aus:

mkpartfs primary ext2 6000 8100 [Enter]

Nun kann noch eine Swap Partion erzeugt werden. Bei mir ist die Partion 69 MB groß. Größere Größen > 128 MB sind dabei allerdings nicht empfehlenswert. Die Swappartion wird dann mittels

mkpartfs primary linux-swap 8100 8169 [Enter]

erzeugt. Nun kann man sich mittels print anschauen ob alles so wie gewünscht ist und das ganze mit quit verlassen. Nun müssen nur noch folgene Befehle eingegeben werden:

upgrade_fs [Enter]
reboot [Enter]

und schon bootet das System neu und verfrachtet automatisch alle Apps auf die SD Karte.

Das G1 rooten

Irgendwann ärgert man sich doch über die eine oder andere Sache auf seinem G1 z.B. das das Tethering nicht funktioniert. Zum Glück kann man gegen diesen Zustand etwas tun. Damit mir mehr Funktionalität zur Verfügung steht wollte ich mein G1 rooten.

Im ersten Schritt installierte ich dazu den Astro File Manager und legte mit diesem ein Backup meiner Android Apps auf der SD Karte an. Dann sollte man eventuell seine SMS sichern (z.B. mit SMS Backup) und schauen ob man Anwendungen welche der Astro File Manager nicht sichern konnte irgendwie wegsichern kann.

Nun muss die SD Karte im G1 formatiert werden. Ist bereits die Version 1.6 von Android auf dem Gerät so muss die SD Karte direkt im Gerät formatiert werden. Danach sollte die Datei http://android-dls.com/files/upload/uk/DREAIMG.NBH heruntergeladen werden (RC76, nur EU Version).

Während die Datei heruntergeladen wird kann man sich dann daran machen eine Goldkarte. Das liegt daran das der Bootloader HBOOT-0.95.0000 der EU Version keine nicht signierten Images einspielt. Mittels einer solchen Goldkarte ändern wir das.

Dazu benötigen wir den Astro File Manager sowie den Hexeditor HxDEdit welcher unter http://mh-nexus.de/en/hxd/ bezogen werden kann. Theoretisch dürfte es auch unter Linux funktionieren wenn man einen Hexeditor findet welcher den Datenträger direkt bearbeiten kann (physikalisch öffnen).

Nun muss die CID der SD Karte ausgelesen werden. Dazu starten wir den Astro File Manager und gehen mit ihm auf die höchste Dateiebene (Button mit dem grünen Pfeil). Dann gehen wir zu dem Pfad:

/sys/class/mmc_host/mmc1/

Dort findet sich ein Ordner welcher nach dem Schema mmc1:’xxxx‘ benannt ist. In diesem Ordner finden wir eine Datei namens cid. Auf diese Datei drücken bis das Kontextmenü erscheint. Dort wird Open As -> Text -> File Editor ausgewählt. In dieser Datei befindet sich eine Zeichenkette. Diese Zeichenkette am besten kopieren und per Mail an sich schicken.

Nun muss diese Zeichenkette (z.B. 03534453553038478020e92542008468) in 2er Pärchen angeordnet werden. Das ganze sieht dann so aus:

03 53 44 53 55 30 38 47 80 20 e9 25 42 00 84 68

Dieses zweier Pärchen müssen nun von hinten nach vorne neu aufgestellt werden. Die fertige Folge sieht dann so aus:

68 84 00 42 25 e9 20 80 47 38 30 55 53 44 53 03

Nun werden noch die Leerräume entfernt und schon sieht die neue CID so aus:

6884004225e920804738305553445303

Nachdem das geschafft ist kann nun das Goldcard Image erstellt werden. Dazu muss man unter http://revskills.de/pages/goldcard.html eine E-Mail Adresse sowie besagte CID eingetragen.

Nun können wir die SD Karte zur einer Goldkarte machen. Dazu starten wir den HxD Editor wählen unter Extras den Menüpunkt Datenträger öffnen. Dort wählen wir unter Physische Datenträger die SD Karte, entfernen das Häkchen bei Schreibgeschützt öffnen und drücken auf OK.

Nun geht es wieder in das Menü Extras und dort auf den Punkt Datenträgerabbild öffnen. Dort wählen wir die erzeugte goldcard.img und öffnen sie (Sektorengröße: 512). Bei der goldcard.img markieren wir alles und kopieren es. Danach markieren wir auf der SD Karte alles einschließlich Offset 170 und fügen es ein. Nach einem Rechtsklick auf die Markierung wird der Menüpunkt Schreiben des Kontextmenüs gedrückt. Dann muss das ganze nur noch gespeichert werden. Anschließen kann der Hxd Editor geschlossen werden.

Nun packen wir die Datei DREAIMG.NBH auf die SD Karte und entfernen sie vom Rechner. Nun muss das G1 ausgeschaltet werden. Sobald es aus ist wird das G1 mittels einem Druck auf Power und Camera gestartet. Im Bootloader werden wir dann aufgefordert die Power Taste zu drücken um das Image zu flashen. Nach dem das Image geflasht wurde (Update Complete) drückt man einmal auf den Trackball und anschließend die tasten Anrufen, Menü und Auflegen. Danach bootet das Gerät neu.

Wenn das Gerät neugestartet wurde, muss die PIN eingeben werden und sich an seinem Google Konto angemeldet werden. Eventuell muss vorher noch der passende APN eingestellt werden. Nachdem dies geschehen ist wird telnetd per Tastatur eingegeben und das mit Enter bestätigt. Die Kontakte Anwendung die aufgeht kann dabei ignoriert werden.

Anschließend muss um Market der Android Telnet Client von Koushik Dutta heruntergeladen und installiert werden. Der Client sollte dann gestartet werden und sich verbunden werden. Tritt dabei ein Fehler auf, die Home Taste drücken und dann [Enter] teldnetd [Enter] und es in der Telnet Anwendung nochmal versuchen.

Nun müssen wir das standardisierte Recovery Image durch ein spezielles ersetzen. Dazu laden wir uns das Image unter http://cyanogenmod.com/download/recovery/cm-recovery-1.4.img herunter und packen es auf die SD Karte. Bei der Gelegenheit kann man gleich die DREAIMG.NBH löschen.

Neben dieser Datei sollte man auch die neuste Version des CyanogenMod’s unter http://wiki.cyanogenmod.com/index.php/Latest_version sowie das Android 1.6 Recovery Image welcher hier zu finden ist, herunterladen werden. Diese beiden Dateien können anschließend auch auf die SD Karte gepackt werden.

Ist die SD Karte wieder im G1 kann im Telnet Client mittels

flash_image recovery /sdcard/cm-recovery-1.4.img

das Recovery Image geflasht werden. Wenn das erfolgreich war erscheinen zwei Rauten. Danach wird der Home Knopf gedrückt und das Telefon ausgeschaltet.

Nun wird das Telefon mit dem Home und dem Auflegen Button im Recovery Modus gestartet. Dort wird dann Alt+W gedrückt und das ganze mit der Hometaste bestätigt. Anschließend wird Alt+A gedrückt und die Datei signed-dream_devphone_userdebug-ota-14721.zip (mittels Trackbal) ausgewählt und das ganze mittels Home bestätigt. Ist der Prozess fertig wird zu einem Update aufgefordert. Dies sollte auf KEINEN Fall gemacht werden. Stattdessen wird wieder Alt+A gedrückt und die Datei update-cm-4.2.x-signed.zip ausgewählt sowie es wieder mit Home bestätigt. Ist der Vorgang abgeschlossen kann mittels eines Drucks auf Home + Zurück das Telefon neugestartet werden.

Anschließend kommt die Meldung Writing Radio Image und einige zeit danach der Reboot. Dieser Prozess kann einige Minuten dauern, also einfach abwarten. Sollte das Telefon wieder im Recovery Modus starten einfach nochmal Home + Zurück drücken. Danach sollte man dann während des Bootvorganges das blaue CyanogenMod Android Logo sehen.

Die SD Karte kann dann von den Zip Dateien bereinigt werden und die SD Karte wieder mit der Sicherung befüllt werden. Mittels des Astro File Managers können die Backups der Anwendungen wieder eingepflegt werden.

Weitere Informationen gibt es unter:
http://www.nextgennetworks.de/index.php?/archives/1004-G1-mit-CyanogenMod-versehen.html
http://wiki.cyanogenmod.com/index.php/Full_Update_Guide_-_G1/Dream_Firmware_to_CyanogenMod
http://www.cyanogenmod.com/
http://www.androidpit.de/android/de/de/wiki/view/Goldcard_erstellen