G1root

Aus C3MAWiki
Dies ist ein Projekt, an dem momentan aktiv gearbeitet wird. Wenn du Fragen hast oder mitarbeiten möchtest, wende dich an Blame.

Google G1 v1.6 rooten

Da ich einige Probleme hatte mein G1 mit version 1.6 (donut) zu rooten und ein anderes Rom aufzuspielen habe ich mich entschlossen dieses Howto zu schreiben.

Es gibt sicherlich mehrere Wege (1klick Methode usw) aber diese hier hat für mich am besten Funktioniert.

 

Ausgangsstellung:

Du hast ein Google G1 aka Dream mit der (im Moment) aktuellen Version 1.6 und willst es rooten bzw. eine custom Rom installieren.

Oder du versuchst es bereits, bekommst aber beim rainbow screen immer "not allowed" oder "serial 0"

HINWEIS: Ich übernehme keinerlei Verantwortung oder Gewährleistung für dieses Howto. Wenn ihr euer G1 bricked, seid ihr selbst daran schuld!

 

Vorbereitung:

Benötigt wird:

- eine microSD Karte (kleiner ist besser, da es mit großen Karten schonmal Probleme gab)

- eine Email Adresse (für die Goldcard)

- Eine Linux Distribution (Ubuntu, Debian, Knoppix...)

- Auf dem G1: Das Programm Terminal Emulator (im Market erhältlich)

- DREAMIMG-RC7.zip (downgradet auf v1.0)

- recovery.img (recovery image, original name recovery-RA-dream-v1.2.3.img)

- ota-radio-2_22_19_26I.zip (Radio Image update - muss geupdated werden damit es zum recovery image kompartibel ist)

- spl-signed.zip (Haykuro SPL - second programm layer update, erweitert den Adressbereich des internen Speichers)

- signed-dream_devphone_userdebug-ota-14721.zip

- und ein custom Rom, ich nehme hier CyanogenMod Rom

Ich habe mal alle Dateien gepackt und HIER hochgeladen.

 

Goldcard erstellen:

Das Flashen eines Roms ist nur mit einer SD Karte möglich, die einen speziellen Bootsektor aufweist.

Dazu ist ein wenig Arbeit nötig:

1. Startet eure Linux Disti (es soll auch unter Windows gehen, mit einem Hexeditor, was aber bei mir nicht funktioniert hat)

2. Öffne auf dem G1 das Terminal und tippe folgendes ein:

(Du kannst auch einen Dateimanager wie Astro oder Linda Filemanager benutzen)

$ cd /sys/class/mmc_host/mmc1

$ ls

Nun wird der Inhalt des Ordners angezeigt. Gehe nun in den Ordner der mit mmc1: anfängt

$ cd mmc1:xxxx

Dort dann die Datei cid anzeigen lassen:

$ cat cid

Nun siehst du einen langen String. Schreib dir den String ab oder schick ihn dir per mail selbst zu.

Überprüfe die Zahlen besser doppelt, wenn eine Zahl nicht stimmt funktioniert die Goldcard nicht!

So, nun muss der String paarweise vertauscht werden.

Beispiel:

Aus 00920039e53050804732305553445303

wird 0353445355303247805030e539009200

Jetzt können wir mit dem umgedrehten String die Goldcard erstellen lassen.

Gehe dazu auf http://revskills.de/pages/goldcard.html und gib den String + email Adresse ein.

Das Goldcard image sollte in wenigen Minuten in deinem Postfach landen.

Mit diesem Image musst du jetzt die ersten Sektoren der SD-Karte überschreiben um eine Goldcard zu erhalten. Damit wird die Karte als eine authentifizierte Karte vom Hersteller erkannt und du darfst auch ein downgrade machen.

Jetzt kommt die Karte also in den Cardreader (oder ins G1 und freigeben).

Jetzt müssen wir nachsehen wie die Karte unter Linux heist. Öffne ein Terminal und werde ersteinmal root:

$ su -

oder

$ sudo su

dann tippe:

$ dmesg

Irgendwo erhälst Du eine Ausgabe ähnlicher dieser:

scsi8 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 8
usb-storage: waiting for device to settle before scanning
usb-storage: device scan complete
scsi 8:0:0:0: Direct-Access     Generic  USB  SD Reader   1.00 PQ: 0 ANSI: 0 CCS
sd 8:0:0:0: [sdc] 3862528 512-byte hardware sectors: (1.97 GB/1.84 GiB)
sd 8:0:0:0: [sdc] Write Protect is off
sd 8:0:0:0: [sdc] Mode Sense: 4b 00 00 08
sd 8:0:0:0: [sdc] Assuming drive cache: write through
sd 8:0:0:0: [sdc] 3862528 512-byte hardware sectors: (1.97 GB/1.84 GiB)
sd 8:0:0:0: [sdc] Write Protect is off
sd 8:0:0:0: [sdc] Mode Sense: 4b 00 00 08
sd 8:0:0:0: [sdc] Assuming drive cache: write through
sdc:
sd 8:0:0:0: [sdc] Attached SCSI removable disk
sd 8:0:0:0: Attached scsi generic sg4 type 0

Wichtig ist hier der Wert zwischen den [ ], dieser kann bei dir unterschiedlich sein.

Ab jetzt also immer sdc durch deinen Wert tauschen!

Jetzt muss das Goldcard image auf die sd Karte

$ dd if=/dein/pfad/zum/goldcard.img of=/dev/sdc

0+1 Datensätze ein
0+1 Datensätze aus
384 Bytes (384 B) kopiert, 0,0117711 s, 32,6 kB/s

Du musst natürlich den Pfad anpassen, da ich nicht weiss wo dein Goldcard image liegt und welches Device verwendet wird.

Wenn die Ausgabe wie oben aussieht, ist alles OK.

Du hast nun eine Goldcard. Diese muss aber noch partitioniert und formatiert werden:

$ fdisk /dev/sdc

Befehl (m für Hilfe): p

Platte /dev/sdc: 1977 MByte, 1977614336 Byte
61 Köpfe, 62 Sektoren/Spuren, 1021 Zylinder
Einheiten = Zylinder von 3782 × 512 = 1936384 Bytes
Disk identifier: 0×00000000

Gerät  boot.     Anfang        Ende     Blöcke   Id  System

Befehl (m für Hilfe): n
Befehl  Aktion
e      Erweiterte
p      Primäre Partition (1-4)
p
Partitionsnummer (1-4): 1
Erster Zylinder (1-1021, Vorgabe: 1):
Benutze den Standardwert 1
Last Zylinder, +Zylinder or +size{K,M,G} (1-1021, Vorgabe: 1021):
Benutze den Standardwert 1021

Befehl (m für Hilfe): t
Partition 1 ausgewählt
Hex code (L um eine Liste anzuzeigen): b
Der Dateisystemtyp der Partition 1 ist nun b (W95 FAT32)

Befehl (m für Hilfe): w
Die Partitionstabelle wurde verändert!

Rufe ioctl() um Partitionstabelle neu einzulesen.
Synchronisiere Platten.

Das Fettgedruckte ist das was du eingeben musst.

Jetzt musst du noch ein Dateisystem auf der Partition erstellen:

$ mkfs.vfat -F32 /dev/sdc1
mkfs.vfat 3.0.1 (23 Nov 2008)

Nun ist die Golscard erstellt und bereit für den Einsatz.

 

Downgrade:

Nun müssen wir die alte Firmware flashen um root zu werden.

Dazu brauchst du die Datei DREAMIMG-RC7.zip und recovery.img (Link siehe Anfang des Artikels).

Nun die DREAMIMG-RC7.zip entpacken und die darin enthaltene Datei DREAIMG.NBH auf die sd Karte kopieren.

Nicht in einen Ordner sondern direkt ins root Verzeichnis der Karte!

Dann noch das recovery.img auf die Karte kopieren.

Jetzt das G1 ausschalten und SD-Karte einlegen. Dann den Kameraknopf gedrückt halten und gleichzeitig die Powertaste betätigen.

Du kommst jetzt in einen bunten Bildschirm (rot, grün, blau). Wenn bis hier hin alles richtig gemacht wurde wirst du nun gefragt ob das Image installiert werden soll.

Bestätige das mit der Powertaste. Achtung: Du verlierst hier alles Daten außer die, die du mit google synchronisiert hast!

Jetzt wird das neue Image geflasht. Das dauert eine Weile. Schalte das Gerät nicht aus! Sei Geduldig! Einfach auf den Tisch legen und schön warten.

Außer du hättest gerne einen Briefbeschwerer das aussieht wie ein G1 ;)

Warte bis der Ladebalken weg ist und du gesagt bekommst “press action key”.

Drücke den Trackball an deinem Telefon. Nun drücke “Auflegen”, “Abnehmen” und “Menü” gleichzeitg um dein Telefon neu zu starten.

Nun dauert es wieder eine Weile, dein Telefon startet. Kein Panik, der erste Startvorgang kann eine Weile dauern.

Irgendwann solltest Du  aber beim Startbildschirm deines Telefons landen. Registrier dich kurz.

Jetzt hast Du eine Firmware die es dir erlaubt root Rechte auf deinem Telefon zu erhalten. Herzlichen Glückwunsch, die meiste Arbeit ist erledigt!

 

Root werden

So, jetzt musst Du auf dem Telefon noch root werden. Öffne nun die “Market” Anwendung und suche nach “telnet”.

Lade die Software herunter und lass sie installieren.

Drücke die “Home” Taste (Das Haus) und Du bist wieder auf der Startseite.

Öffne nun die Hardwaretastatur an deinem Telefon und drück zweimal die [ENTER] Taste. Tippe, obwohl noch garnichts passiert ist:

telnetd [ENTER]

Jetzt sollten sich die Kontakte öffnen, das ignorierst Du aber einfach. Damit hast Du einen Dienst gestartet, mit dem Du den root-Zugriff vollenden wirst.

Öffne nun das Programm Telnet und klicke “Connect to Server”, an den Einstellungen brauchst Du nichts zu ändern.  Anschließend überprüfst Du ob Du root bist:

whoami [ENTER]

Die Ausgabe sollte wie folgt aussehen:

whoami: unknown uid 0

Nun bist du root und kannst das recovery image flashen.

 

Flashen:

Tippe im telnet Fenster:

flash_image recovery /sdcard/recovery.img

Bekommst Du die Meldung “no space on device” versuche

fastboot erase recovery

fastboot flash recovery /sdcard/recovery.img

Jetzt währe einmal Telefon aus- und einschalten angesagt. Anschließend machst Du noch das radio und spl Update und die Sache ist geritzt.

WICHTIG: Zuerst das Radio Update machend und dann erst das SPL Update! Sonst hast du wieder einen Briefbeschwerer!

Kopiere also erstmal die Datei ota-radio-2_22_19_26I.zip auf die SD-Karte und starte im recovery Modus in dem du die Home Taste Drückst während du das G1 einschaltest.

Dann musst du den Punkt "apply any zip from sd" und dann das radio update auswählen.

Nun den Anweisungen auf dem Bildschirm befolgen.

Danach kopierst du Die Dateien

- spl-signed.zip

- signed-dream_devphone_userdebug-ota-14721.zip und

- update-cm-4.2.8.1-signed.zip

auf die Karte. Das Radio Update würde ich zur Sicherheit wieder löschen, soweit ich mich Erinnern kann bekam ich deswegen schonmal eine Fehlermeldung.

Das gleiche machst du dann auch mit der Datei spl-signed.zip um das SPL Update durchzuführen.

Also wieder in den Recovery Modus (vorher noch ein nandroid Backup erstellen Alt + B) und "apply all zip from sd" und dann das SPL update auswählen & flashen.

Nun mit Alt + X zur Konsole wechseln und "reboot" eintippen. Das G1 sollte nun automatisch in den recovery modus booten, dann war das update erfolgreich.

Jetzt wieder Alt + A drücken, aber diesmal die "signed-dream_devphone_userdebug-ota-14721.zip" auswählen.

Nach dem Flashen ohne Neustart wieder Alt + A drücken und diesmal die CyanogenMod-ZIP auswählen.

Wenn das Update durchgelaufen ist, einmal Alt + W drücken und mit Home + Back rebooten.

Das Handy startet nochmals im Recovery-Modus, nach Home + Back fährt es normal hoch. Dies könnte nen Moment dauern.

Ich nehme hier das CyanogenMod ROM Version 4.2.8.1.

Du kannst aber auch ein anderes ROM Flashen, eine Übersicht gibt es hier: http://db.androidspin.com/android_build_information.asp

Herzlichen Glückwunsch! Du hast nun den CyanogenMod auf dem G1 am laufen!

 

Was mir jetzt noch gefehlt hat war

1. die apps auf sd Karte zu speichern und

2. einen auto updater für das CyanogenMod Rom

Also fangen wir an:

Um die apps auf SD zu speichern musst du nicht viel machen.

Du machst ersteinmal ein Backup der SD-Karte. Dann musst du 2 partitionen erstellen.

Die 1. Partition mit Fat32 und die 2. Partition mit ext2

Beide Partitionen sind primäre Partitionen und die ext2 partition sollte 1,5gb nicht überschreiten.

500mb sollten aber für die ext2 Partition vollkommen ausreichen. Auf diese Partition kommen dann die Apps drauf die ihr installiert.

Ich hatte vorher 20mb verfügbaren internen Speicher und nun 60mb internen Speicher obwohl ich massig apps installiert habe.

Auf der ext2 Partition sind auch noch 450mb frei... es gibt also keine Platzprobleme mehr.

Ich erkläre hier jetzt nicht genau wie man partitoniert, ihr könnt entweder Gparted oder Partiton Magic benutzen, wobei letzteres nicht kostenlos ist.

Danach kopiert ihr eure gesicherten Daten wieder auf die 1. Partition, steckt die Karte ins G1 und schaltet es ein.

Im CyanogenMod ist das apps to sd schon integriert und es sollten nach dem booten eure bestehenden apps schon auf der sd Karte sein.

War doch gar nicht so schwer :)

Den Updater bekommt ihr hier: http://www.cyanogenmod.com/downloads/cm-updater

Ihr müsst nur das .apk herunterladen, auf die sd kopieren und zB mit ASTRO filemanager installieren.

Der Updater unterstützt auch Themes. Dazu müsst ihr das Theme erst mit dem recovery image flashen und dann die theme url im updater eintragen.

Das geht natürlich nur wenn das theme den updater auch unterstützt. Ich habe erfolgreich diesen Theme installiert:

http://www.pinkonbrown.org/2009/08/27/enoch-theme-released-for-cyanogens-android-mod/

Ich werde das installieren des Themes jetzt aber nicht weiter erläutern, im Grunde geht es aber so wie oben beschrieben.

Howto ENDE



 

Quellenangaben:

Also ein Teil dieses Tutuorials ist von mir selbst verfasst und den Rest habe ich von 2 anderen Howtos:

1. http://www.androidpit.de/android/de/de/wiki/view/How_to_root_T-Mobile_G1#toc59

und

2. http://tn.genano.de/wordpress/2009/09/01/howtotutorial-deutsches-t-mobile-g1-rooten/

Danke auch an die Autoren der anderen Howtos, super Arbeit!