24.05.2013

Langsam wird's zur Gewohnheit ... Samsung i9000 mit CyanogenMod ROM 10.0

Nachdem das Aufspielen der CyanogenMod-ROMs beim Motorola Milestone2 und beim LG P990 erfolgreich waren (wenn auch mit Hürden und viel Schweiß), habe ich mir das Samsung Galaxy i9000 vorgenommen. Dieses Modell besaß ich bis letztes Jahr schon mal selbst und aus Ärger, dass es von Samsung keine offiziellen Updates über 2.3.3 hinaus gibt, hab ich es verkauft und mir vorgenommen, ab jetzt nur noch Nexus-Geräte mit direktem Update von Google anzuschaffen. Bis jetzt waren das ein Samsung Galaxy Nexus i9250 (mehr oder weniger baugleich mit dem S3) und ein Asus Nexus 7.

Es gibt zwar auch schon "nightly"-Versionen von Android 4.2.2 (also CM 10.1), aber ich wollte diesmal lieber eine "stable"-Version installieren, und da bleibt nur CM 10.0, d.h. Android 4.1.2. Wenn aber schon eine CM-Version installiert ist, kann der Update auf eine neuere CM-Version ziemlich schmerzfrei passieren. Hier ist die Übersichtsseite von Cyanogenmod zum i9000.

Wenn ich letztes Jahr gewusst hätte, wie problemlos das Updaten mit CyanogenMod funktioniert, wäre möglicherweise mein Galaxy Nexus i9250 als Ersatz für das i9000 nicht so schnell gekommen. Andererseits hat das i9000 ein paar Nachteile, dier mir häufig aufgestoßen sind: zum Einen hat es kein Fotolicht, im Gegensatz zu den anderen Smartphones, die wir angeschafft haben. Trotz alledem ist die Kameraqualität für 5 MP sehr hoch - meine Schwiegermutter war über die Fotos der Ergebnisse ihrer gärtnerischen Künste sehr angetan ;). Zum Anderen benötigt auch das GPS sehr lang, um einen Fix für genügend Satelliten zu finden (20 Sek. sind eher noch am unteren Ende der Skala), das ist schon sehr lästig, wenn man unterwegs ist und z.B. Foursquare oder Google Locations aufrufen will. Dieses Verhalten kann man schön beobachten, wenn man ein Tool wie "GPS Essentials" verwendet, das alle Sensoren des Handys schön aufbereitet anzeigen kann.

Auf der anderen Seite ist man natürlich bei CyanogenMod genauso darauf angewiesen, dass es einen "Maintainer" gibt, der genug Energie aufwendet, um CM an ein bestimmtes Handy-Modell anzupassen. Da es von den Herstellern unterschiedlichen Enthusiasmus gibt, was die Verfügbarmachung von proprietären Paketen angeht, kann es außerdem auch sein, dass bestimmte Features mit einem Custom-ROM nicht funktionieren, weil z.B. ein Firmware-Binary aus rechtlichen Gründen nicht vorhanden ist (Firmware für GPU, WLAN, UMTS, Kamera, Bluetooth, Audio usw.usf.). Beim i9000 scheint nach meinen Tests aber alles soweit zu funktionieren, also kann man sich ganz gelassen an's Flashen machen ;).

Im Gegensatz zu den Modellen von Motorola und LG verläuft das Aufspielen eines Custom-ROMs beim Samsung Galaxy *ganz* anders. Der prinzipielle Ablauf ist natürlich derselbe: man muss ein Custom Recovery installieren, das die Installation von unsignierten Paketen erlaubt, und dann mit Hilfe dieser Recoveryfunktion das gewünschte Custom-ROM installieren. Um nun ein Custom-Recovery installieren zu dürfen, benötigt man wiederum Root-Rechte.

Bei Samsung benötigt man dazu das Programm "Odin" und einen fertig gerooteten Kernel, möglichst dieselbe Version, die schon installiert ist (z.B. JP7 bei einem i9000 mit 2.2, das ist aber eher unkritisch). DIeser modifizierte Kernel wird als "PDA" mit Odin geflasht. Die Downloadlinks finden sich hier in dieser Anleitung. Das Flashen mit Odin erfordert den Emergency-Modus, d.h. Lautstärke-Taste runter, Home-Taste und Einschaltknopf drücken. Das Telefon zeigt dann "Download Mode" an und ein gelbes Warnschild. Erst jetzt das Kabel an den PC anschließen und warten, bis Odin das Telefon erkennt. Alle "zerstörerischen" Häkchen wie "Repartition" etc. abschalten, dann erst flashen. Danach wird neu gebootet und hoffentlich hat man nun ein Handy mit root-Zugang. In diesem Flash-Vorgang ist auch ein "su"-Programm und busybox als Allround-Utility mit enthalten.

Als Vorbereitung ist es ratsam, einen vollgeladenen Akku zu haben, bevor man loslegt ;).

Zu diesem Zeitpunkt sollte man auf die interne SD-Karte das gewünschte CM-ZIP und sinnvollerweise auch gleich die passenden Google-Apps überspielen - es gibt je nach Android-Version unterschiedliche Zusammenstellungen von Google-Apps, hier muss man aus einer Tabelle genau die richtige Version auswählen und downloaden.

Als Nächstes wird aus dem Play Store der "ROM Manager" installiert, der komfortabel ein Custom Recovery installieren kann, sofern man ihm Root-Rechte zubilligt. Hier muss man schnell reagieren: das Popup mit der Frage, ob man Root-Rechte gewähren will, bleibt nur ein paar Sekunden sichtbar, danach meldet der ROM Manager "failed".

In einer Anleitung habe ich gefunden, dass man bestimmte Konfigurationsdateien (das gesamte Directory /efs mitsamt der Permissions) sichern sollte, in denen die IMEI-Nummer des Handys gespeichert ist, weil beim Flashen gelegentlich da was kaputtgehen kann. Ich war mutig, und es ist nichts passiert. Das muss aber nichts heißen. Eigentlich sollte man solche Warnungen beherzigen. Diese Sicherung kann man entweder über eine Kommandozeile durchführen (man muss eine App wie z.B. "Android Terminal Emulator" installieren und dort Befehle eintippen) oder man verwendet ein Hilfswerkzeug wie GScripts oder "EFS Backup".

Wenn das Custom Recovery erfolgreich geflasht ist, startet man das Handy neu und drückt dabei beim Einschalten die Knöpfe für Recovery (Lautstärke hoch und Home-Taste). Die Power-Taste sollte man dabei rechtzeitig loslassen, weil dies die Enter-Taste im Recovery-Modus ist. Wenn man zu spät loslässt (also während das Recovery schon angezeigt wird), löst man üblicherweise den Reboot aus und muss nochmal von vorne anfangen ;)

Irritierenderweise landet man beim ersten und zweiten Versuch nicht im Custom Recovery, sondern im Samsung-"2e"-Recovery. Man muss hier noch den Menüpunkt "install update.zip" auswählen, und dann startet erst das Custom Recovery. Bei meinen Recherchen mit Google bin ich auch darauf gestoßen, dass es einen noch stärker gesperrten "3e"-Recovery gibt; wenn man dieses Pech hat, muss man tatsächlich das Handy erst downgraden auf eine ältere Version, die den "2e"-Recovery enthält!

Nun also im "richtigen" Recovery-Modus angelangt, kann man "wipe data", "wipe cache" und "advanced -> wipe dalvik cache" ausführen. ACHTUNG: dies löscht alle Daten und Einstellungen des Handys (die CM-ZIP und die externe SD-Karte werden nicht gelöscht).

Danach ruft man "choose zip to install" auf, wählt beim ersten Mal die CM-ZIP aus und lässt das Handy ungefähr drei bis fünf Minuten lang vor sich hin flashen.

Im nächsten Schritt wird derselbe Menüpunkt nochmal aufgerufen, um die GApps-ZIP zu installieren.

Wenn eine Fehlermeldung angezeigt wird, sollte zunächst das Flashen erneut probiert werden. Wenn das nicht klappt, die CM-ZIP überprüfen, ggfs. neu downloaden und neu auf das Handy überspielen (z.B. mit "adb push" oder Neubooten ins alte Samsung-Android).

Bei meinem ersten Versuch brach das Flashen der CM-ZIP sofort ab. Ich habe dann nochmals das Android 2.2 gestartet (lief noch), die ZIP-Datei neu auf's Handy überspielt und beim zweiten Versuch hat es problemlos geklappt.



So müsste das dann aussehen, abgesehen davon, dass dies ein altes Bild vom LG P990 ist ;)
















Keine Panik, der erste Boot dauert extrem lang (ca. 10 min.), danach werden "Apps optimiert", d.h. aus den gepackten APK-Dateien werden zu Caching-Zwecken bestimmte Dateien ausgepackt und in den JRE-Cache gelegt (dex/odex).

Nach der üblichen Anmeldung bei Google und der Einrichtung des Handys sollte man sicherheitshalber noch ein- bis zweimal komplett booten, um sicher zu gehen, dass alles einwandfrei funktioniert.

Genau wie beim Motorola bin ich auf's Angenehmste überrascht von der gefühlten Geschwindigkeit des i9000 mit CM. Immerhin ist es ein Single-Core mit 1 GHz und einer nach heutigen Maßstäben eher schwachen GPU. Mit CM ist es durchaus noch konkurrenzfähig. Die Speicherausstattung ist natürlich nicht besonders toll (512 MB RAM), aber man kann damit gut leben.