04.05.2013

Noch mehr Cyanogenmod im Haus

Ich wollte noch ein bißchen mehr mit Cyanogenmod experimentieren. Mein erstes Testgerät wurde mir ja von meiner Frau brutal entwendet zur Eigennutzung ...

Also hab ich vor einiger Zeit auf Google+ gefragt, welches Telefon in der unteren Preisklasse gebraucht empfehlenswert ist, wenn man mit CM spielen will.

Nach einigen Ausflügen in die Handygalerie der c't, wo man sehr schön die technischen Daten von fast allen auf dem Markt befindlichen Handys nachlesen kann, ist die Wahl auf das Optimus 2X P990 von LG gefallen, eines der ersten Modelle von LG mit Dualcore, verkauft ab 2011. LG hat zuverlässige Hardware, und als Produzent des Nexus 4 haben sie bei mir einen gewissen Vertrauensvorschuss ;). 800x480 nennt man mittlerweile "untere Mittelklasse"; vor zwei Jahren war das noch ein Hingucker in den damaligen Topmodellen Galaxy S und S2. Das P990 hat ein angenehmes Display, es ist aber nicht so knackig scharf wie die AMOLED-Bildschirme von Samsung (eigentlich hatte ich mich auf ein etwas älteres Samsung Nexus S i9020 mit AMOLED festgelegt, aber die haben nach wie vor recht hohe Preise). Das Gerät hat 5,5 GB freien Speicher (von 8 GB, naja ...) und einen SD-Slot bis 32 GB. Alles in allem recht nett.

Gestern kam das Gerät an und nach einem ersten Testlauf mit dem originalen Android 2.3.4 (brrr!), ob es einwandfrei funktioniert, fing ich mit dem Update an. Ich hatte mich letztes Wochenende schon schlau gemacht, was ich brauche, und hatte vor dem Monatsende hin die nötigen Dateien heruntergeladen (Flash-Programm für LG, CWM-Recovery, USB-Treiber, CM-Image, Google-Apps für JB 4.2.2). Ich wollte nicht den neuen Monat schon mit riesigen Downloads anfangen, das ist eine schlechte Hypothek bei LTE ;). Achtung beim Downloaden, unbedingt darauf achten, dass die Google-Apps auch wirklich für Jelly Bean 4.2.2 sind, die älteren (z.B. 4.2.1 oder 4.1.x) darf man nicht verwenden.

Einen kleinen Dämpfer hatte ich dabei schon, als ich feststelle, dass es kein "stable" CM 10.1 für das P990 gibt, sondern derzeit nur die "nightlies". Das sind tägliche Images, frisch aus dem Compiler, die nicht wirklich gründlich getestet sind. Aber der Entwickler der LG-Variante hat einen guten Ruf, also hab ich mich das getraut. Und zur Not kann man in den Foren von Cyanogenmod nachfragen. Die Anleitungen und Foren bei TeamAndroid finde ich auch recht gut.

Immerhin liefert LG für das P990 auch ein eigenes Android 4.0.4 aus, was schon nicht so schlecht ist ... dachte ich zuerst. Ich wollte aber unbedingt gleich das Update auf das neueste 4.2.2 durchführen und sparte mir das ganz. Später hab ich dann gelesen, dass diese Entscheidung sehr vernünftig war, weil nämlich nach dem offiziellen Update auf 4.0.4 der Bootloader des Telefons so verbarrikadiert ist, dass man nichts anderes mehr installieren kann. Das wiederum hätte ich so auch nicht erwartet ;(

Wie üblich muss man das Telefon rooten, damit man einen eigenen Bootloader (genauer gesagt: ein anderes Recovery-System mit den Funktionen zum Einspielen beliebiger eigener Android-ROMs) installieren kann.

Als ersten Schritt muss man zahlreiche USB-Treiber installieren, die zu den verschiedenen Modi passen, je nachdem, ob man das P990 im Recovery-, Emergency- oder normalen MTP-Modus startet. Es hilft auch, wenn man das Android-SDK zur Verfügung hat. In den "one click"-Tools ist meistens nur ein minimales ADB enthalten. Zur Not tut's das aber auch erstmal. Die USB-Treiber sollte man unbedingt alle vorher vorbereiten, das senkt den Streßfaktor, wenn es nötigt sein sollte, z.B. den Emergency-Modus aufzurufen.

Freundlicherweise gibt es mittlerweile fertige "one click"-Programme, in denen alles enthalten ist. Finde ich ziemlich cool ;). Ich habe mir also ein solches "one click CWM" besorgt und damit das Recovery-System "Clockwork Mod" installiert.

Nach dem Start des Recovery-Systems muss man die Daten- und Cache-Partition des Linux-Systems sowie den Dalvik-(JRE)-Cache löschen, weil das neuere Android auch eine neue Version der JRE mitbringt, die eine inkompatible (eben neuere) Bytecode-Version hat. Die gespeicherten alten Bytecodes der Apps müssen weggeworfen und beim Update wieder aus den APKs generiert werden (Stichwort dex/odex).

Das lief soweit gut, dann kam der erste Schreck: gemäß Anleitung hatte ich /data, /cache, /sdcard usw. gelöscht und neu formatiert. Dummerweise waren meine zu flashenden Images auf /sdcard gespeichert, ich hatte mir also gerade selbst den Boden unter den Füßen weggezogen ...

Das ist aber nicht weiter tragisch, weil ich über ADB vom PC aus die Images wieder auf das neuformatierte /sdcard schieben konnte. Mit "adb devices" kontrollieren, ob das Telefon erkannt wird (adb meldet "Recovery"). Danach mit "adb push CM-....zip /sdcard" und "adb push gapps-jb-...zip /sdcard" die Dateien auf's Telefon kopieren. Die Images bestehen aus zwei Dateien, zum Einen das CM-Image (ich habe das Nightly vom 29.04. installiert) und zum Anderen muss man die Google-Apps installieren, damit man den Play Store usw. zur Verfügung hat. Das Google-Apps-Paket ist nicht vollständig, GMail fehlt z.B., aber das gibt es ja dann im Play Store.

Danach hatte ich einen sehr langen Abend vor mir, weil nach dem Flashen von CM und GApps erst mal nichts mehr ging. Das Telefon hing in einer "Panik"-Anzeige mit zwei kleinen LG-Logos fest. Vom Milestone2 war ich gewohnt, dass der erste Bootvorgang sehr lang dauert (fast 30 Minuten). Ich bin also erstmal gelassen zum Abendessen gegangen und hatte erwartet, dass es bis danach fertiggestellt ist ... Pustekuchen!

Ich habe dann mehrere Versuche gebraucht, inklusive die Original-ROMs von LG zu flashen, was leider auch schiefging. Ich hatte mich schon gewundert, dass das Flashen der beiden ZIP-Dateien für mein Gefühl sehr schnell (zu schnell!) ging, aber das ist wirklich normal. Die Fortschrittsanzeige beim CM.ZIP  bleibt sehr lange leer, dann springt sie knapp in die Mitte, dann geht es langsam weiter und zum Ende hin macht die Anzeige nochmal einen Sprung. Das ist normal. Weiß ich jetzt zumindest ;). Beim Überspielen der Daten vom PC schafft die USB-Schnittstelle knapp 2 MB/s, aber das interne Kopieren scheint wesentlich schneller zu funktionieren, wenn die Daten mal auf dem Handy sind. Das CM-Image ist ca. 155 MB groß, die Google-Apps immerhin auch noch 95 MB. Da dauert allein das Kopieren vom PC mehrere Minuten.

Zum Schluss habe ich nochmals auf einem anderen PC alle USB-Treiber installiert, das CWM-Recovery neu geflasht, im Recovery-System alle Daten vom Telefon gelöscht, nochmals CM und GApps geflasht, und plötzlich ging es. Die Anzeige mit den zwei kleinen LG-Logos verschwand recht schnell und als dann das große blaue Logo von CM erschien, fiel mir ein ganzer Steinbruch vom Herzen. Puh!

Ich finde es absolut erstaunlich, wie robust die Android-Telefone konstruiert sind. Selbst wenn man sich das Recovery-System zerschießt, kann man noch in einem Emergency-Modus das Recovery neu überspielen und sich danach Schritt für Schritt weiter in Richtung auf ein funktionsfähiges Telefon vorarbeiten ;)

Der Apollo-Musikplayer im CM ist nicht ganz zuverlässig, bei Playlisten muckt er ein bißchen, und für das eingebaute UKW-Radio gibt es keine App. Da ich gern mal Radio höre, werde ich mich nochmal umschauen, ob es möglich ist, das mit einer App nachzurüsten. Im Play Store gibt es zwar eine, aber die ist ausdrücklich nur für Motorola gedacht. Moment, das bringt mich auf eine Idee ...

Zur Referenz:
  • Um das Emergency-System zu starten, muss man den Akku ausbauen, Kabel abziehen, beide Volume-Tasten drücken und das Kabel anstecken. Der PC erkennt dann das Telefon im "APX"-Modus und mit einem speziellen Programm kann man ein Recovery flashen.
  • Um ins Recovery zu booten, muss man ausschalten, Volume-Down und Einschaltknopf drücken und gedrückt halten. Zuerst erscheint ein weißes LG-Logo. Knöpfe weiter gedrückt halten. Erst Power loslassen, dann Volume, und erst, wenn hinter dem LG-Logo farbige Schleier erscheinen. Einige Sekunden später ist das Recovery-System benutzbar.
  • Das Recovery-System von LG führt einfach nur einen Werksreset durch. Es ist zwingend notwendig, ein Recovery wie CWM zu installieren, sonst kann man keine eigenen ROMs installieren.
  • Der automatische Update innerhalb Cyanogenmod funktioniert nicht. Das neue Image kann zwar heruntergeladen werden, aber es wird nicht automatisch geflasht. Man muss die Datei von /CMUpdater nach / (root) der SD-Karte verschieben und dann im Recovery-Modus manuell "install ZIP from SD-Card" anwählen. Und wieder den Nervenkitzel mitmachen, ob es klappt ;). Immerhin muss man beim Update der Nightlies nicht jedesmal alles löschen, das ist nur nötig, wenn sich die Android-Version ändert (vermutlich also wieder, wenn demnächst 4.3 erscheint).
[Update 20130505: das Telefon hat 5,5 GB Speicher und nicht 5,5 MB ;), und das ist auch kein RAM, sondern ein Flash-ROM]
[Update 20140814: Bild plötzlich kaputt]