Posts mit dem Label CyanogenMod werden angezeigt. Alle Posts anzeigen
Posts mit dem Label CyanogenMod werden angezeigt. Alle Posts anzeigen

21.07.2017

Cyanogenmod auf dem Samsung Galaxy Nexus i9250 installieren

[Der Artikel ist schon älter. Ich habe Stichworte geändert, deswegen sieht das leider wieder wie ein neuer Beitrag aus]
Aus aktuellem Anlass musste ich mal wieder ein Telefon updaten.

Meine Frauen sind sehr destruktiv, was die Handys angeht: meine Tochter fällt mit Handy ins Wasser, oder fällt so unglücklich, dass das Display bricht, oder verliert das Handy im Kino, und meine Frau steckt das Handy in die Jackentasche und setzt sich dann drauf.

Fazit: ich kaufe nur noch gebrauchte Handys, bei denen es nicht so arg schmerzt, wenn sie kaputtgehen. Das zum Sitzkissen mutierte Handy, ein Galaxy S2, hatte mich keine 30 Euro gekostet, weil ich es aus Einzelteilen zusammensetzen konnte. Natürlich tut es trotzdem weh ;)

Diesmal habe ich mir ein Galaxy Nexus i9250 ausgesucht. Das ist ein immer noch sehr brauchbares Gerät, und man bekommt es sehr günstig. Die technischen Daten entsprechen in etwa dem Galaxy S3. Wie üblich bei Nexus-Geräten hat es keinen SD-Slot und ist damit auf 16 GB festgelegt. Macht aber nix, reicht für meine Frau voll und ganz, die sammelt keine Bildchen von Boy groups, bis der Speicher platzt ;-)

Das Installieren eines Custom ROMs ist bei Nexus-Geräten sehr schlicht. Man muss nicht "rooten", indem man eine Sicherheitslücke ausnutzt, sondern es gibt einen dokumentierten Weg, um das Telefon zu entsperren und wie üblich zuerst ein alternatives Recovery und dann ein alternatives ROM zu flashen.

Da die Nexus-Geräte ursprünglich als Geräte für Software-Entwickler geplant waren, die zügig die neueste Android-Version bekommen, stützt sich das Verfahren auf Tools, die im Android SDK enthalten sind. Man bekommt sie aber auch einzeln als Download; es ist nicht nötig, die neueste Version zu verwenden oder das volle SDK zu installieren.

Wenn man von Custom ROMs die Nase voll hat, kann man übrigens bei Google auch die Originale herunterladen und wieder flashen, z.B. wenn man das Handy mit dem Google-ROM weiterverkaufen will.

Die nächsten zwei Absätze sind nur von Belang, wenn man mit Windows geplagt ist. Für Linux- und Mac-Benutzer ist das nicht nötig, man muss nur evtl. dafür sorgen, dass das USB-Gerät 18D1:4E30 (Galaxy Nexus Fastboot-Interface) erkannt wird.

Das Galaxy Nexus hat leider eine Sonderstellung unter den Nexus-Geräten: die USB-Treiber für Windows werden von Samsung bereitgestellt und nicht von Google, und die Samsung-Treiber sind manchmal etwas zickig. Mein eigenes Gerät wurde auf Anhieb von Windows erkannt, das neu gekaufte erst beim dritten Anlauf, und ich musste ein paar Mal am Gerät zwischen PTP/MTP und USB-Debugging hin- und her schalten.

Wenn die Hürde mit dem USB-Treiber genommen ist, gilt es wieder, in mehreren Schritten zunächst ein alternatives Recovery-System zu installieren und mit Hilfe dessen dann das Custom ROM zu flashen.

Zunächst wird das Telefon entsperrt, damit das neue Recovery-System akzeptiert wird. Dieses Entsperren ist mit einem kompletten Löschen verbunden, also vorher alles sichern, auch die Bilder in DCIM  und alle anderen eigenen Daten! Ich empfehle Helium als Backupsoftware.

Auf dem PC nun die Images herunterladen, zum einen Clockwork Mod Recovery (es gibt zwei Varianten mit und ohne Touchscreen-Funktion) und zum Anderen Cyanogenmod mit den passenden Google-Apps (wenn gewünscht). Ich bevorzuge im Moment noch Android 4.3, die Optik von 4.4 gefällt mir eher weniger gut. Die Google-Apps starten zwar sofort ein Update, aber es ist trotzdem wichtig, dass die Grundversion genau zur installierten Android-Version passt.

Beide Lautstärketasten drücken und einschalten. Das Telefon startet nun im "Fastboot"-Modus, in dem es Flash-Inhalte entgegennimmt.
fastboot oem unlock
Nun am Handy bestätigen, dass es gelöscht werden kann.

Zum letzten Mal das alte Android-System starten und die beiden ZIP-Dateien für CM und Apps auf die "Interne SD-Karte" überspielen. Um die Sache zu beschleunigen, kann man auf das Anlegen von Google-Account etc. verzichten; es geht nur darum, die beiden Dateien auf das Telefon zu befördern.

Statt das alte Android nochmals zu starten, könnte man auch direkt nach dem Unlocken und Flashen des Recovery den Menüpunkt "install from sideload" anwählen. Dazu braucht man am PC dann den Befehl "adb sideload". Darüber schreibe ich ein anderes Mal.

Nun geht es daran, das neue Recovery zu flashen. Nochmals ausschalten  und in den Fastboot-Modus starten.
 fastboot flash recovery recovery-clockwork-6.0.4.7-maguro.img
Nun am Handy mit den Lautstärketasten anwählen "Reboot Recovery" und mit dem Einschaltknopf ausführen.

Im CWM-Recovery nun "wipe data" und "advanced -> wipe dalvik cache" anwählen - wie üblich.

Jetzt geht es zum Endspurt: "install zip" anwählen, dann "zip from internal SD card". Wenn das Nexus schon das Update auf 4.2 oder 4.3 hatte, wurde es intern mehrbenutzerfähig, d.h. es gibt Unterverzeichnisse "0" und "legacy". Falls die Zip-Dateien also nicht sichtbar sind, nochmals ein Verzeichnis tiefer gehen, dann sind sie nämlich unter "0" zu finden.

Zuerst das CM.zip und direkt danach die Google-Apps flashen lassen. Als letzten Befehl "reboot system" anwählen und die übliche Einrichtungsprozedur durchlaufen, dabei kann man einen Account bei Cyanogenmod einrichten oder es bleiben lassen. Wenn man einen Account dort hat, kann man ebenso wie beim Google Gerätemanager das Gerät bei Verlust "fernlöschen". Das ist Geschmackssache.

Das war's! Viel Spaß mit einem praxistauglichen Android auf einer immer noch richtig guten Hardware: Dualcore, 1.5 GHz, 4.65 Zoll mit 1280x720, 16 GB, davon ca. 13 GB nutzbar.

15.03.2017

Zweite Erfahrungen mit LineageOS 14.1

Nach dem ersten Bericht folgt hier noch ein kurzes Update zum Thema Update.

Nachdem Google das Security-Bulletin für März veröffentlicht hat, wollte ich natürlich auch gern mit den Custom ROMs aktuell sein und die eingebaute Update-Funktion testen.

Beim AOSP-Build für das Nexus 5 war ich bislang eher unglücklich mit den Updates, allerdings könnte dies auch mein eigener Fehler gewesen sein: nach Forenempfehlungen sollte man in einem Rutsch nach dem Flashen des neuen ROMs auch die Google-Apps unmittelbar hinterher flashen, ohne vorher neu zu starten. Damit würden dann alle Berechtigungen passend gesetzt. Die Update-Funktion im AOSP-ROM hat bis dahin nie Updates gefunden, deshalb der manuelle Weg.

Nun ja, wenn ein weit verbreitetes Custom ROM wie LineageOS eine Update-Funktion anbietet, dann sollte die auch funktionieren. Kurze Zusammenfassung: so halb und halb.

Beim Nexus 5 absolut problemlos. Zuerst im Update-Bildschirm auf "Download" und dann auf "Installieren" drücken, wenn der Download beendet ist. Zack, fertig! Build NOF27B, also der Stand März 2017. Der kleine Fehler, dass man kein Profilbild beim Nutzerkonto abspeichern kann, ist immer noch vorhanden.

Beim Moto G nicht ganz so problemlos. Download hat funktioniert, aber nach dem Druck auf "Installieren" startet zwar das TWRP-Recovery, führt aber kein Update aus. Ich habe dann manuell in den Ordner (/data/data/org.lineageos.updater/app_updates) navigieren müssen, in dem LineageOS das Update ablegt, habe die Zip-Datei und vorsichtshalber (s.o.) auch noch mal die OpenGApps-pico-7.1 ausgewählt und geflasht. Nach dem Booten war alles ok, auch hier Build NOF27B vom 05.03.2017.

Mal schauen, ob das nächste Update mit der neuesten Version von TWRP (3.1) besser funktioniert.

Alles gut ;)

06.03.2017

Erste Erfahrungen mit Lineage OS 14.1

Ich gebe zu, ich bin spät dran ;)

Nach längerer Zeit hab ich nun also auch nicht nur ein, sondern gleich zwei Geräte mit LineageOS, dem Nachfolger von CyanogenMod, geflasht, um es mir mal genauer anzuschauen.

Die Opfer waren ein älteres Nexus 5 ("hammerhead") mit 16 GB, das hier noch herumlag, weil meine Frau ein Gerät mit mehr Speicher wollte, und ein noch älteres Motorola Moto G (1. Gen, "falcon"). Ansonsten ist ein Nexus natürlich optimal, weil es bei den allermeisten Custom ROMs ganz vorne mit dabei ist - eben weil alle nötigen Files von Google veröffentlicht werden und man es ohne Klimmzüge entsperren und flashen kann. Ähnlich entspannt funktioniert das Custom-ROM-Flashen bei Motorola. Die einzige kleine Hürde ist, dass man zum Entsperren einmalig eine Webseite von Motorola aufsuchen muss, dort einen Code vom Handy eingeben muss und dann einen Freischaltcode zurückbekommt.

Der erste Versuch auf dem Nexus 5 nach dem Download war wenig erfolgreich - das Flashen verlief ohne Fehlermeldung und ich bekam zwar die Bootanimation von LineageOS zu sehen, aber nach etwa einer Stunde dachte ich mir, dass da irgendein Problem sein muss, und habe abgebrochen. Das Nexus 5 ist immer noch ein ziemlich aktuelles und vor allem schnelles Gerät, nicht wie damals das Motorola Milestone 2, bei dem der erste Bootvorgang 30 Minuten gedauert hat.

Beim nächsten Versuch, ins Recovery zu booten, stellte ich fest, dass irgendwie auch das Recovery kaputt gegangen ist. Also im Fastboot-Modus erst mal ein neues Recovery geflasht (TWRP), und dann ging das schon mal wieder ;)

Im nächsten Schritt habe ich erneut im Recovery den Nightly Build vom 28.02. und die OpenGApps (pico) geflasht. Diesmal war ich aber noch etwas konservativer und habe die Frage von TWRP verneint, ob ich vor dem Reboot auch SuperSU installieren will. LineageOS liefert ein eigenes Addon für SU-Funktionalität mit, und ich wollte es erst mal ohne alle Veränderungen versuchen.

Bingo! Dieser Versuch klappte auf Anhieb, und wenig später erschien der Einrichtungsassistent von Android Nougat. Lineage ist auf dem aktuellen Stand 7.1.1, Build NOF26W, Sicherheitsstand 05.02.2017.

Beim Moto G war gleich der erste Versuch erfolgreich, und nach einigen Minuten hatte ich auch hier die übliche Ansicht.

Bei den OpenGApps kann man sich aussuchen, wie umfangreich das Google-Paket sein soll, das man als Basissystem installiert. "pico" ist das kleinste Paket und enthält eigentlich nur die App für den Play Store; somit kann man später gezielt aussuchen, welche weiteren Google-Apps man haben will. Die größeren Pakete enthalten dann immer mehr, was gleich als System-App installiert wird. Je nachdem, wie groß die Systempartition ist, kann man also gar nicht alles installieren, was zur Auswahl steht, sondern muss ein "kleines" Paket nehmen und nachinstallieren. Diese nachinstallierten Apps  werden dann in den "normalen" Speicher des Telefons installiert.

Viele Features der bisherigen CyanogenMod-Versionen hat Google ohnehin auf die eine oder andere Weise übernommen, so dringend ist es mit Nougat nicht mehr, eine "Bells and Whistle"-Version von Android zu installieren. Auffällig ist, dass die "Themes" von CM verschwunden sind, es ist also nicht mehr so leicht möglich, z.B. eine angepasste Bootanimation zu verwenden.

Der eine Punkt, der mir bei meiner vorherigen "Custom" ROM aufgefallen ist, war die unzuverlässige Update-Methode. Ich hatte bislang auf dem Nexus 5 einen AOSP-Build, d.h. ein Android, das aus den offiziellen Quelltexten von Google gebaut wird. Nach keinem der Flashvorgänge konnte ich problemlos weiterarbeiten, ich bekam immer Fehlermeldungen, dass Google Play Services abgebrochen wird. Erst ein Factory Reset, d.h. Rücksetzen und Neueinrichten des Telefons, konnte das beheben. Für ein täglich genutztes Werkzeug ist so ein Verhalten natürlich indiskutabel, deshalb hoffe ich, dass die Updates von LineageOS sich problemlos(er) einspielen lassen.

Ich hatte neulich im Nexus 5-Thread zu AOSP-Nougat auf xda-developers gefragt, und da kam doch gerade eben eine Antwort mit einem Vorschlag: man soll beim Update nicht nur das AOSP-ROM, sondern auch noch die OpenGApps in einem Rutsch mit flashen, damit die Berechtigungen der System-Apps korrekt gesetzt werden, das würde nämlich nur beim ersten Booten nach dem Flashen gemacht. Alles in allem trotzdem sehr unschön: ein inkrementelles Update wie beim Nexus-Android wäre natürlich die schönste Lösung, und insbesondere viel kleiner. Die Updates, die ich bislang beim Nexus 5 erlebt habe, waren mit 10-20 MB pro Monat erfreulich klein.

Bislang funktioniert LineageOS bei mir schmerzfrei. Aufgefallen ist mir ein kleiner Fehler sowohl beim Nexus als auch beim Moto G: ich kann zwar bei den Benutzerkonten ein Bild für den Benutzer aussuchen, aber das "Speichern" speichert nicht, ich habe nach wie vor nur das abstrakte Platzhalterbildchen. Das kann ich verkraften ;)

Beim Motorola gibt es noch einen merkwürdigen Effekt: nach der Grundinstallation hatte ich mir einige der Google Apps aus dem Play Store installiert, darunter die aktuellste Version von Kalender, Kontakte und Telefon. Die mitgelieferten Apps von LineageOS hatte ich bei den Apps-Einstellungen deaktiviert. Beim Telefonieren mit einem "Direktwahl"-Widget konnte ich zwar telefonieren, aber die App wollte mir den üblichen Telefonbildschirm nicht anzeigen; somit konnte ich die Zahlentastatur nicht benutzen, stumm schalten, Lautsprecher, etc. Deshalb habe ich die Telefon-App wieder deinstalliert und mit der Version, die mit LineageOS mitkommt, funktioniert alles so, wie es soll.

Was mir im Vergleich zum Vanilla-Android immer noch besser gefällt, ist die Möglichkeit, die Statusleiste, die Benachrichtigungen und die Schnelleinstellungen bequem(er) anzupassen und die Icons rauszuwerfen, die man persönlich nicht braucht. Ich benötige z.B. die Icons für "Hotspot" und "Übertragen" gar nicht. Aber selbst diese Anpassungen kann man mit den normalen Android erreichen. Wenn man nämlich lang auf das Einstellungen-Zahnrad drückt, kann man den "System UI Tuner" aktivieren, und mit dem kann man ebenfalls diese Icons bearbeiten.


Trebuchet App FolderHingegen gefällt mir der Standardlauncher von CM und LO seit den letzten zwei Versionen gar nicht mehr, die Icons in Ordners extrem verkleinert anzuzeigen statt sie mit 3D-Effekt hintereinander zu stapeln. Deswegen ist der erste Handgriff dann auch, auf den Google Now-Launcher umzustellen - der ja leider nun auch eingestellt wird. Der Launcher3 des AOSP-Projekts sieht ziemlich gut aus, alternativ gibt es mittlerweile auch den Pixel-Launcher im Play Store, und jede Menge weitere Alternativen für jeden Geschmack.

Auf jeden Fall ist ein Custom ROM, egal ob es AOSP, LineageOS oder ein anderes ist, immer noch eine gute Möglichkeit, sein Schätzchen auf dem neuesten Sicherheitsstand zu halten, selbst wenn Google die Auslieferung von Updates im Dezember 2016 für dieses Modell eingestellt hat. Eigentlich ist das schade - die Patches werden von Google bis zurück zu 4.4 ins AOSP-Repository eingepflegt (soweit das technisch möglich ist), und die Build-Maschinerie könnte weiterhin das Nexus 5 mit Marshmallow-Updates auf dem aktuellen Sicherheitsstand versorgen.

18.03.2016

Cyanogenmod 13 Marshmallow auf dem Galaxy S2

Seit einiger Zeit gibt es Nightlies, und kürzlich auch die Meldung über die ersten "echten" Releases von CyanogenMod Version 13, das auf Marshmallow, also Android Version 6, basiert.

Da ich immer noch ein paar alte Galaxy S2 zum Basteln und Experimentieren verwende, wollte ich mir die neueste Version natürlich gleich anschauen. Es gibt tatsächlich Enthusiasten, die für das S2 (i9100) noch neue Android-Versionen zusammen bauen.


Also ein Nightly heruntergeladen und gleich ganz mutig auf das Smartphone in den Ordner cmupdater geworfen. Danach in den Einstellungen "CyanogenMod-Update" angewählt, auf den Eintrag für CM 13 getippt, gewartet, und zack!, hatte ich CM 13 auf dem Gerät.

Das ging eigentlich ganz gut - ich war nur etwas überrascht, dass das fertig eingerichtete S2 plötzlich kein Google-Konto mehr hatte. Das Gerät war eigentlich vom letzten Update auf Lollipop noch mit einem Testkonto angemeldet, aber das war plötzlich weg.

Auch ein Factory Reset half nicht - danach hatte ich gar keine Google Apps mehr auf dem S2.

Generell denke ich mittlerweile, dass man bei einem Umstieg auf eine komplett neue Release-Version (5 -> 6) einen Factory-Reset machen sollte. Die internen Strukturen ändern sich so stark, dass man sich versteckte Probleme einhandelt, die man kaum selber finden und reparieren kann. Innerhalb einer Version (6.0 -> 6.0.1 etwa) funktioniert das Update problemlos ohne Neueinrichtung.

Etwas Forschen und Nachlesen brachte dann einige gravierende Veränderungen zutage, auf die ich prompt hereingefallen bin. Vielleicht sollte ich erst lesen und dann ausprobieren. Aber andersherum macht es mehr Spaß ;)

Eine der Veränderungen hatte ich mit Lollipop schon erledigt: die /system-Partition hatte ich damals schon mit Odin und einer .pit-Datei vergrößert, weil die vorhandenen 500 MB nicht mehr für CM 13 und die Google Apps ausreichen. Man sollte mindestens 1 GB vorsehen. Wenn man die komplette Google-Apps-Sammlung vorinstallieren will (in die Systempartition) sollte man 2 oder 4 GB einplanen. Das geht dann natürlich wieder zu Lasten des freien Speichers für Apps, Daten, Bilder, Musik etc. Kann man sich überlegen ;)

Aber eine andere Veränderung hat mir ein Bein gestellt: Cyanogenmod bringt jetzt ein eigenes Recovery mit, das bei jedem Update das bisherige Recovery ersetzt. Und das CM-eigene Recovery schafft es nicht, die Google Apps von opengapps.org zu installieren. Es erscheint eine sehr gut lesbare Fehlermeldung in dunkelblau auf schwarz (oder bin ich nur mittlerweile zu alt für sowas?), dass man TWRP als Recovery nehmen muss, um die opengapps zu installieren.

Erschwerend beim S2 und einigen anderen Galaxy-Modellen ist nun, dass es kein separates Recovery-Image zum Flashen gibt - das Recovery ist mit dem Linux-Kernel zu flashen. Es gibt zwar eine Recovery-Partition im Speicher des S2, aber die wird nicht verwendet. Alles ein wenig seltsam, aber damit muss man wohl leben ...

Der Ablauf, um ein funktionsfähiges S2 mit CM 13 zu erhalten, sieht also so aus:

Herunterladen und Flashen eines Linux-Kernels für das S2 mit einem aktuellen TWRP-Recovery. Dazu verwendet man das "isorec"-Projekt. TWRP selbst ist wegen der Geschichte mit dem Kernel (s.o.) zickig und baut selbst keine Pakete für Samsung Galaxy mehr.

Das Flashen dieses Paketes führt man am besten per "adb sideload" durch. Um das erfolgreich durchzuziehen, braucht man eine Minimalinstallation der Google Android Developer-Tools, von denen "adb" ein Teil ist. Es gibt aber auch Minimalpakete, die nur ein lauffähiges "adb.exe" mit ein paar Windows-DLLs enthalten.

Wichtig ist, dass man auf dem S2 bei einem laufenden Android in den Entwickleroptionen den Debugmodus aktiviert, damit S2 und PC sich über USB anfreunden und man den Schlüsselaustausch zwischen den Geräten bestätigen kann. Ansonsten kann man mit adb keine Dateien übertragen, wenn man im Recovery "sideload" anwählt. Beim Befehl "adb devices" erscheint dann "unauthorized" und es geht nicht weiter.

Wenn man das TWRP-Recovery geflasht hat, kann man mit "adb reboot recovery" gleich in dieses Recovery wechseln. Im TWRP wählt man nun unter "Advanced" den Punkt "ADB sideload" an, markiert die beiden Kästchen unter "wipe flash/wipe dalvik" und wischt dann zur Bestätigung den blauen Schalter nach rechts.

Nach dem Flashen eines neues Recovery-Image könnte man übrigens mit "Triangle Away" das gelbe Warn-Dreieck vom Samsung-Startbildschirm entfernen.

Jetzt wird es umständlich:
man muss in der richtigen Reihenfolge die heruntergeladene zip-Datei von CM 13 mit "adb sideload" installieren, danach die gewünschte Version der opengapps (pico, nano, micro,  etc. - je nachdem, welchen Umfang von Google Apps man vorinstallieren möchte), und danach muss man nochmals das TWRP-Recovery flashen, weil mit CM 13 ja das CM-interne Recovery mitkommt, dass das vorhandene TWRP-Recovery gerade wieder überschrieben hat.


Nach jedem "adb sideload" kehrt man mit der "<--"-Taste auf dem Touch-Screen wieder einen Schritt zurück, wählt erneut "ADB sideload" an und  wischt zum Aktivieren. Dann erneut auf dem PC den nächsten "adb sideload"-Befehl eingeben.

Es ist wichtig zu wissen, dass dadurch der "adb sideload" ebenfalls gerade wieder kaputtgegangen ist, und man das im Debugmode wieder neu autorisieren muss.

Als Erfolg zeigt sich nach dem Booten und der üblichen Wartezeit mit dem CM-Gesicht und dem "Optimieren der Apps ... x von y" unter den Eigenschaften so etwas Ähnliches wie hier rechts.

Es ist übrigens empfehlenswert, im Entwicklermenü dann den Schalter "CM recovery aktualisieren" zu kontrollieren und auszuschalten, damit man nicht nach jedem CM-Update erneut auch TWRP wieder flashen muss.

Außerdem habe ich die Beobachtung gemacht, dass das CM-Recovery nicht von der eingesteckten SD-Karte (sdcard1) installieren kann, es springt nach dem Anwählen sofort zurück ins Recovery-Hauptmenü.

[Update 20160412]
Nachtrag zum Thema "TriangleAway": die derzeitigen Nightlies von CM 13 haben ein Problem, Root-Zugang zu gewähren. Es ist nicht möglich, TriangleAway zu starten. Auf einem der S2 bin ich von Factory 4.1.2 direkt auf CM 13 gegangen, und TriangleAway funktioniert nicht. Auf einem zweiten hatte ich zuerst das Update auf CM 12.1 ausprobiert, und unter 12.1 funktioniert der Root-Zugriff. Derzeit ist es also eine Überlegung wert, das Update in zwei Schritten durchzuführen, zuerst auf CM 12.1, dann TriangleAway aufzurufen, und danach wie oben beschrieben das Update auf CM 13.

30.11.2015

Galaxy S2 mit Cyanogenmod 12.1 installieren und Partitionen ändern

Heute war so ein Tag, an dem ich etwas in Schwitzen gekommen bin, weil ich etwas Neues ausprobieren wollte und mir nicht ganz sicher war, ob es funktionieren würde. Dummerweise wusste ich erst mittendrin während des Updates, dass ich etwas Gefährliches tun muss, damit das Update richtig funktioniert ...

Gute Nachricht vorneweg: alles hat gut funktioniert, ich konnte mir den Angstschweiß abwischen ;). Hier ist ein Beweisfoto:

Aber mal von vorn: da ich noch einige Galaxy S2 zum Testen und Ausprobieren daheim herumliegen habe, und auch noch genug Ersatzteile wie Mainboards und Kleinteile, wollte ich eins davon mit Android 5.1.1 installieren und das aktuellste Cyanogenmod 12.1 drauf werfen.

Also gesagt, getan: erst mal ein halbwegs aktuelles CM 12.1 für i9100 heruntergeladen und ein bißchen Informationen gesammelt, was noch zu tun ist. Dabei habe ich gelernt, dass es empfehlenswert ist, einen für Lollipop angepassten Kernel mitsamt aktuellem Recovery zu flashen. Bei Samsung wird das Custom Recovery zusammen mit einem Kernel geflasht, hier gibt es von verschiedenen XDA-Entwicklern fertige Pakete aus Linux-Kernel und Lollipop-geeignetem Recovery.

Wenn dieser Schritt getan ist (mit Odin als "PDA" flashen), kann man mit dem Samsung-üblichen Dreifingergriff das S2 in den Recoverymodus versetzen und die Zipdatei mit CM 12.1 installieren, und danach wie üblich ein Paket Google-Apps.

Hier hat sich viel für die Bequemlichkeit getan, seit ich das letzte Mal Google Apps herunterladen musste: es gibt ein cooles Projekt bei GitHub, das verschiedene Pakete anbietet, vom Minimalpaket mit gerade mal der Play Store-App ("pico"), über ein Mikro-Paket, das dann schon GMail, GKalender und einige Kleinigkeiten mehr enthält, bis hin zum "Super"-Paket, das wirklich alles enthält, was jemals bei Google aus dem Compiler geworfen wurde.

Das Flashen von CM 12.1 lief wie erwartet glatt, aber dann bekam ich einen kräftigen Schreck beim Flashen der Google-Apps: eine Fehlermeldung "#70" mit eher beunruhigenden Meldungen. Beim Nachschauen in der FAQ des OpenGApps-Projekts stellte ich dann fest, dass die Partition des Speichers im S2, das die System-Apps enthält, nur knapp 600 MB groß ist, und dies nicht ausreicht, um die Google Apps zu installieren. Bislang hat es immer funktioniert, aber Lollipop scheint etwas sehr stark gewachsen zu sein, und nun passten die Google Apps nicht mehr dazu. Das Booten lief trotz des Fehlers beim Flashen einwandfrei, es war also nichts lebenswichtiges zerstört oder unvollständig. Puh!


Mit ein wenig Forschen fand ich heraus, dass es leicht möglich ist, die Partitionsaufteilung des S2 zu verändern, damit die Systempartition mehr Speicherplatz erhält - natürlich zu Lasten des restlichen Telefonspeichers. Bei einem Bastelgerät mit 16 GB Ausstattung ist das natürlich kein allzu großes Problem, und selbst wenn man so ein Gerät dann als Alltagswerkzeug verwenden will, bleibt immer noch die Möglichkeit, eine 32 GB-Speicherkarte zusätzlich einzubauen.

Die Neupartitionierung kann man entweder manuell mit "adb shell" im Root-Modus durchführen und direkt am offenen Herzen des S2 mit dem "parted" Partitionseditor die Größen verändern, oder man verändert die Partitionen mit einem Hilfsprogramm wie Heimdall (für Linux und Windows) oder Odin (nur Windows), das eine Konfigurationsdatei mit der Endung ".pit" verwendet, um den Vorgang zu automatisieren.

Ich war wenig mutig und habe Odin verwendet, nachdem ich mir aus einer Auswahl von fertig vorbereiteten ".pit"-Dateien die ausgesucht habe mit 4 GB für system und den Rest für Daten.

Danach muss im Recoverymodus die Systempartition, die Datenpartition und die simulierte Speicherkarte (üblicherweise "sdcard0" genannt) neu mit einem Linux-Filesystem formatiert werden. Ich empfehle "ext4", das ist erprobt und zuverlässig. Dabei gehen natürlich alle Daten verloren! Es ist also schlau, ein Backup der vorhandenen Inhalte zu machen (Bilder in DCIM usw.). Die Zipdateien für CM 12.1 und die Google Apps sollte man auf eine SD-Karte packen und als externen Speicher ins Telefon stecken. Beim S2 geht das ja, im Gegensatz zu den sonst von mir bevorzugten Nexus-Geräten, die prinzipiell keinen SD-Steckplatz haben.

Genauer gesagt läuft es so ab: unter "advanced" kann man /system, /data, /cache, und /storage/sdcard0 formatieren und dann mounten.

Danach werden mit "install zip" die Zipdatei von CM 12.1 und die Zipdatei der Google Apps installiert und neu gebootet. Die Frage nach dem "fix root" sollte man mit "yes" beantworten, schließlich will man hinterher noch mit "TriangleAway" das lästige gelbe Dreieck beseitigen, mit dem Samsung anzeigt, dass man einen unsignierten Kernel geflasht hat ;). TriangleAway benötigt root-Zugriff. Den muss man im Entwicklermenü dann auch erst aktivieren, CM 12.1 hat den Rootzugriff prinzipiell abgeschaltet, und man muss als Entwickler dann z.B. "Nur Apps" einschalten - oder auch "Apps und ADB", wenn man als Entwickler mit den adb-Befehlen als root arbeiten können will.

Der erste Start des neuen Android-Systems dauert ziemlich lang, weil wie üblich die Java-Dateien in den APK kompiliert und gecache't werden müssen. Seit Lollipop verwendet Android ein neues Verfahren zum Kompilieren und Cache'n, nämlich "ART" und nicht mehr "Dalvik". Dies ist nicht nur aus Performancegründen, sondern auch dem Patentstreit mit Oracle geschuldet. Genauer gesagt ist ART seit Kitkat, also Android 4.4 enthalten, aber nicht als Standardverfahren eingerichtet, und Cyanogenmod hat ausdrücklich erklärt, dass ART auf CM 11 nicht verwendet werden soll. Diese Aussage ist korrekt, ich habe es ausprobiert und hatte permanenten Abstürze der Apps.

Nach dem ersten Start sollte man aus dem Play Store oder von der Speicherkarte TriangleAway installieren. Falls die App nicht aus dem Play Store geladen wird, muss man in den Einstellungen die "unbekannten Quellen" erlauben. TriangleAway lädt einen handgeschnitzten Kernel nach, der genau zum Handymodell passt, startet das Telefon neu, und dann kann man mit der Lautstärketaste "Hoch" den "Flashcounter" wieder auf 0 setzen, damit das lästige gelbe Dreieck nicht mehr auf dem Einschaltbildschirm angezeigt wird.

Da sich der Installationsvorgang bei CM gelegentlich mal ändert, sollte man unbedingt in den Einstellungen einrichten, dass beim Flashen einer neuen CM-Version auch das aktuelle Recovery mit installiert wird. Diese Einstellung findet sich bei den Entwickleroptionen, die man erst sichtbar machen muss. Dazu im Menü "Über das Telefon" siebenmal auf die Buildnummer tippen.

Puh, das war Stress! Wenn man am Partitionslayout herumfummelt, kann es unter Umständen auch böse enden, wenn man eine der Partitionen beschädigt, die das Telefon für die ersten Phasen des Bootvorgangs - vor dem Laden des Linux-Kernels - benötigt. Also auf keinen Fall an den Partitionen für "SBL", "Radio", "Factory" usw. herumfummeln.

[Update 20151204: Links zu Custom Kernels nachgetragen]

30.09.2014

Nochmal Cyanogenmod für das Samsung S+ i9001 - aber anders

Wie schon neulich erwähnt, sind meine Kinder recht destruktiv mit ihren Handys, und Kind 2 macht da keine Ausnahme, er versucht derzeit, Kind 1 einzuholen.

Er hat es geschafft, das Samsung S+ so elegant zu biegen, dass das Display kaputt ist, aber das Glas intakt - auch schon eine Kunst.

Der Ärger ist natürlich da, aber der finanzielle Verlust ist nicht ganz so groß wie beim verlorenen iPhone 5 von Kind 1. Das S+ hat bei einem ebay-Händler nur knapp 60 € gekostet.

Das Handy hatte sogar noch eine ältere Android-Version als das erste i9001, das ich im Frühjahr zum Geburtstag des Lütten beschafft hatte. Damals war es 2.3.5, dieses kam mit 2.3.3 zu mir.

Beim Aufladen vor dem Neu-Flashen erst mal Schreck: ein Warnsymbol neben dem Akku. Da ich das alte Handy noch hatte, konnte ich den Akku auswechseln und war wieder beruhigt. Es war wirklich nur der Akku und nicht die Ladeelektronik im Handy wie beim Wasserschaden in einem S2 von Kind 1.

Nach dem Aufladen ein bißchen Herumspielen mit der alten Android-Version und die wohlige Gänsehaut genießen bei dem Gedanken, dass es bald die fast noch aktuelle 4.3.1 bekommen wird ;)

Nachdem ich eine SD-Karte mit dem passenden Custom Recovery, Custom ROM und den Google Apps für Android 4.3 eingebaut hatte, wollte ich den Samsung Recovery Mode starten, um zunächst ein anderes Recovery zu flashen, mit dem es dann möglich ist, ein Custom ROM zu flashen.

Merkwürdigerweise ließ sich zwar so etwas ähnliches wie ein Recovery Modus starten, aber dort gab es kein Menü, um andere Software zu installieren, sondern nur eine kleine Grafik mit einem Pfeil und einem kleinen grünen MännchenAndroiden. Vielleicht lag es auch nur an meinen dicken Fingern, dass ich immerzu den Zeitpunkt verpasste, nach dem Einschalten die Menü-Taste zu drücken, um ins Recovery zu gelangen. Schwer zu sagen ;)

Also eine andere Idee entwickelt: im Play Store gibt es eine App "ROM Manager", die einen Menüpunkt "Reboot to Recovery" beinhaltet. Damit sollte es möglich sein, ohne langwieriges Gefummel ins Recovery-Menü zu gelangen.

Aber natürlich war es nicht ganz so einfach: der ROM Manager erfordert ein gerootetes Handy, weil die Änderungen am Bootloader tiefe Eingriffe erfordern.

Nächste Frage also: wie rootet man ein i9001? Es gibt mehrere Verfahren, das bequemste ist das "Kingo Root Tool", das eine ganze Menge Handys erkennt und rooten kann. Dieses Tool war auch bei mir erfolgreich.

Danach konnte der ROM Manager das Recovery starten, ich konnte das gewünschte Custom Recovery flashen und danach ging es recht zügig, das ROM mit CyanogenMod und die Google Apps auf's Handy zu bringen.

23.04.2014

CyanogenMod-Basteleien - Samsung Galaxy S plus i9001

Heute morgen brachte der Postbote mal wieder neue Hardware für weitere Basteleien, diesmal hatte ich mir recht spontan für kleines Geld ein Samsung Galaxy S plus i9001 ausgesucht.

Die Bedienung ist sehr angenehm, und die Geschwindigkeit des Telefons reicht allemal für Android 4.3. Ich bin sehr zufrieden, das einzige, was ich vermisse, ist eine Fotoleuchte.

Über die Hardware hatte ich mir vorher wenig Gedanken gemacht - obwohl es haptisch und numerisch sehr nah an einem meiner alten Lieblinge - dem i9000 - liegt, hat es vollkommen unterschiedliche CPU (Qualcomm MSM8255T mit 1,4 GHz statt Samsung S5PC110 mit 1 GHz) und GPU (Adreno 205 statt PowerVR SGX540). Im Gegensatz zum Galaxy S "advance" ist es nach wie vor eine Single-Core-CPU, kein Dual-Core.

Die unterschiedlichen CPUs/GPUs bedeuten natürlich auch, dass man nicht die Custom-ROM-Dateien vom i9000 nehmen darf.
Ich habe mir die Dateien von hier heruntergeladen (ich mag als Recovery das CWM, TWRP geht aber genauso gut, reine Geschmackssache ...). Das CM-ROM hat den Zusatznamen "ION". Außerdem benötigt man noch die Google-Apps für Jelly Bean 4.3.

So ein schnelles ROM-Update hatte ich bisher noch nicht, wow ;). Obwohl es ein Samsung-Gerät ist, habe ich kein Odin benötigt, sondern konnte das Custom-Recovery (CWM) sogar mit dem Stock-Recovery installieren.

Ursprünglich kam das Gerät mit Android 2.3.5, der Händler hatte nichtmal die Daten des Vorbesitzers gelöscht, ganz schön peinlich. Genauso dämlich aber natürlich vom Vorbesitzer, seine Daten und Fotos nicht selbst zu löschen, bevor er es endgültig aus der Hand gibt ...

Ich habe die drei benötigten Dateien für das Custom-ROM zunächst auf eine SD-Karte überspielt und ins Handy gesteckt. Danach muss man letztmalig das Samsung-Android starten, und mit dem Dateimanager "Eigene Dateien" die Dateien von der SD-Karte (zu finden unter external_sd) auf den internen Speicher zu verschieben. Das ist nötig, weil das Samsung-Recovery, das wir ersetzen wollen, nur vom internen Speicher installieren kann, aber nicht von SD-Karte.

Im Gegensatz zum S2 wird der Recovery-Modus aufgerufen, indem man beim Start nur Lautstärke-hoch und den Einschaltknopf drückt. Man darf nicht die Home-Taste drücken, sonst gelangt man in einen "RAM-Dump"-Modus, der hier nicht weiter interessiert.

Nachdem der Schriftzug "SAMSUNG" auf dem Bildschirm erscheint, die Knöpfe noch einen Moment gedrückt halten und dann die Menü-Taste (links neben der Home-Taste) drücken, bis sie aufleuchtet. Dauert alles einen Moment, aber keine Panik!

Im Recovery-Modus dann nacheinander "wipe data", "wipe cache", "install zip" aufrufen. Bestätigt wird mit der Menü-Taste (links). Zunächst zum ZIP für das CWM-Recovery navigieren und auswählen. Bestätigen wie gesagt mit der Menü-Taste, der Einschaltknopf geht einen Schritt zurück. Die Installation geht recht fix, die Datei ist ja auch nicht besonders groß. Danach "Reboot" auswählen und den Ablauf nochmal von vorne, bis das "neue" Recovery erscheint.

Jetzt nacheinander die beiden ZIP-Dateien für das CyanogenMod-ROM und die Google-Apps anwählen und bestätigen. Danach vorsichtshalber nochmals "wipe data", "wipe cache", "advanced" -> "wipe dalvik cache", und dann "Reboot system" auswählen.


Auf dem Startbildschirm unter dem Samsung-Logo müsste jetzt schon etwas zu sehen sein: nämlich das Logo der Entwickler "AriesDev" und darunter das CM-Logo.


Wie üblich dauert der erste Start recht lang, um die Apps auszupacken, zu untersuchen und zu optimieren ("odex"). Danach kommt der übliche Anmeldevorgang zu CM und zu Google, und dann geht es ans Einrichten des neuen Androiden mit 4.3.1 ;)

07.10.2013

Neues vom Senior-Zwerg Motorola Flipout: Update von CyanogenMod RC2 auf RC5

Nachdem ich im Juli ganz begeistert festgestellt habe, dass es für den Senior in meiner Android-Sammlung tatsächlich eine CyanogenMod-Version gibt (wenn auch nur 2.3.7), stellte ich heute fest, dass die Entwicklergemeinde rund um das intern MB511 genannte Telefönchen immer noch sehr aktiv ist.

Spaßeshalber habe ich mit Google nochmals nach "CyanogenMod Flipout" gesucht und eine neue CM-Version gefunden. Nebenbei habe ich gesehen, dass mein Blog-Artikel auf Platz drei der Google-Trefferliste zu finden ist. Das ist doch mal was für's Ego ;)

Das damalige RC2 (release candidate 2) wurde mittlerweile von einem deutlich neueren RC5 überholt.

Ich beschreibe im folgenden Artikel, wie problemlos man beim Flipout eine neuere CyanogenMod-Version installieren kann. Dabei bestätigt sich erneut die Tatsache, dass jedes Modell ein anderes Verfahren erfordert.

Im Prinzip ist es zwar immer dasselbe Vorgehen, aber wie man bis zu dem Punkt kommt, das neue ROM zu flashen, ist bei jedem Modell erneut Gegenstand von Forschungsarbeiten.

Das übliche Vorgehen:
  1. Überspielen der neuen CM.zip auf das Handy (oder die SD-Karte)
  2. Ausschalten
  3. Beim Einschalten die Tastenkombination für Custom Recovery gedrückt halten
  4. Im Recovery-Menü die Auswahl "install zip from SD card" wählen
  5. Vorsichtshalber "wipe cache" und "advanced -> wipe dalvik cache"
  6. Reboot
Beim Flipout mit installiertem CM 7 und Custom Recovery (gemäß meiner damaligen Anleitung) wird das Custom Recovery zusätzlich zum schon vorhandenen sog. "Stock Recovery" installiert.

Um das Custom Recovery aufzurufen, muss man deshalb zwei Schritte durchführen, bis man das neue CM.zip flashen kann.

Zunächst die neue CM.zip herunterladen (100 MB) und auf das Telefon befördern. Meins war gerade ausgeschaltet, deshalb hab ich die SD-Karte ausgebaut und am PC die Datei überspielt.

Da sich die Android-Version nicht ändert, ist es nicht nötig, eine neuere Version der GApps.zip zu flashen.

Nach dem Einbauen der SD-Karte Gerät einschalten und sofort anfangen, die Lautstärke-runter-Taste zu drücken (mehrfach drücken und loslassen). Mindestens solange immer wieder drücken, bis das M-Logo aufleuchtet und wieder schrittweise dunkler wird.

Danach sollte ein sehr schlichtes Menü in blauer Schrift erscheinen, in dem man eine Auswahl "Recovery" findet. Bedienung bei aufgeklapptem Handy mit den Cursor-Tasten der Tastatur, Enter und Löschtaste (über der Enter-Taste).

In diesem Menü kann man übrigens unter "CPU" auch das Overclocking freischalten, das Zwergchen kann man tatsächlich bis 1,1 GHz übertakten, wenn ich das richtig gelesen habe. Allerdings finde ich Berichte, dass das Übertakten über 800 MHz hinaus nicht sehr zuverlässig sein soll. Ich werde das sicher nicht ausprobieren.

Als nächstes erscheint eine Auswahl "Custom Recovery", "Stable Recovery", "Stock Recovery". Dieses kleine Teilchen hat also tatsächlich drei verschiedene Recovery-Funktionen eingebaut, falls irgend etwas schiefgeht ;)

Der Menüpunkt "Custom Recovery" wird ausgewählt, danach erscheint das auch von anderen Androiden bekannte Recovery zum Installieren von Custom ROMs. Hier wird nun "Install zip from SD card" und dann im folgenden Menü "Choose zip from SD card" ausgewählt. Mit den Cursor-Tasten dann die neue CM.zip auswählen und mit "Yes" bestätigen.

Wenn das erfolgreich war, noch "wipe cache" und im "Advanced"-Menü den Punkt "wipe dalvik cache" auswählen. Mit dem Punkt "wipe data" werden alle Benutzerdaten (Konten, Apps etc.) gelöscht, das ist nur beim Umstieg vom Original-ROM auf ein Custom-ROM nötig, aber bei Updates innerhalb einer Custom-ROM-Serie nicht mehr. Falls ich die Idee hätte, von CM auf einen anderen Typ von Custom-ROM (MIUI, AOKP etc.) umzusteigen (nur hypothetisch, sofern es sie gäbe), müsste ich wiederum einen "full wipe" machen, aber nicht bei einem Update auf eine neuere Version von CM.

Jetzt "Reboot" und ein bis zwei Minuten Geduld, dann hat das Flipout die neueste Version RC5 (0.7.4) vom 4. Oktober ;)

Wenn ich mir die Entwicklungsgeschwindigkeit und die Begeisterung im XDA-Forum anschaue, ist tatsächlich demnächst mit einem "stable"-Release zu rechnen. Unglaublich!

04.08.2013

FrankenS(2)tein - Zweiter Teil - Cyanogenmod

Da war also nun wieder ein funktionsfähiges Galaxy S2. Juhu.
Aber mit Branding von 1&1 und mit Android 2.3.5. Brrr.

Also das übliche Vorgehen: Rooten, CWM, Cyanogenmod.

Da Samsung nicht sehr freigiebig mit Informationen über den Exynos-Chip ist, funktionieren manche Dinge nicht oder schlecht. Der TV-Ausgang und das UKW-Radio sind nicht funktionsfähig und USB ist langsamer als mit dem Samsung-ROM. Diese Dinge waren mir aber nicht so wichtig, deshalb bin ich auf CM gewechselt, statt das Samsung-ROM 4.1.2 zu flashen.

Vor den Erfolg hat das fliegende Spaghetti-Monster aber den Fleiß und ein Problem gesetzt: das Handy wurde vom PC nicht erkannt, damit war also das Aufspielen von Software mit Odin oder Kies utopisch.

Genauer: am Handy wurde gemeldet: "MTP-Verbindung gestartet". Am PC aber erschien überhaupt keine Meldung.

Erster Verdacht: ein Hardware-Defekt.

Also der Versuch, den USB-Träger gegen eine andere Platine austauschen. Handy nochmals komplett demontieren, austauschen und wieder zusammen bauen.

Hilft aber nicht.

Was nun?

Nochmal Hardware tauschen? Dazu müsste ich erst ein Ersatzteil bestellen, soviel Vorrat hab ich dann doch nicht zuhause 'rumliegen ;)

Noch ein bißchen mit Google suchen ("PC erkennt Galaxy S2 an USB nicht") fördert Erstaunliches zutage: die USB-Schnittstelle am Handy kann man mit MMI-Befehlen umprogrammieren. Das ist doch vielleicht ein Hoffnungsschimmer.

*#9090# eingeben und Log Via UART anklicken. Danach den Home-Button drücken.
Dann wieder in der Telefon-App *#7284# eintippen und bei UART auf Modem, bei USB auf PDA stellen.
Dann den Home-Button drücken.
Telefon neustarten.
Dann sollte das Gerät wieder erkannt werden
Also recht mutig die beiden Befehle in die Telefon-Anwendung eingegeben, danach mit dem USB-Kabel wieder an den PC, und ... Juhu, es klappt! Das S2 wird wieder erkannt.

Mit der Installation der Treiber von Samsung ist alles geregelt, Kies und Odin sehen das S2 korrekt. Auch das Umschalten in den Debug-Modus ("Samsung ADB device") funktioniert.

Wichtig: das funktioniert nur mit dem originalen Samsung-ROM, mit CyanogenMod nicht (mehr).

Der Rest ist schnell erzählt: mit Odin einen gerooteten Kernel mitsamt Custom Recovery geflasht (sogar einen richtig coolen mit Touch-Bedienung!), CyanogenMod 10.1 nightly heruntergeladen (für das S2 gibt es derzeit keine stable, im Gegensatz zum i9000) und zack, schon hat das S2 das fast noch aktuelle Android 4.2.2 vom Dezember 2012.

Puh, das ging zu schnell. Also nochmal im Einzelnen:

Im eigenen Telefon nachschauen, welcher Kernel verwendet wird.
Menü ->
Einstellungen ->
Über das Telefon ->
Baseband-Version
Dort steht dann so etwas ähnliches wie "i9100XXLS8". Davon sind nur die letzten drei Stellen wichtig.
Einen möglichst genau passenden Root-Kernel hier suchen. Wenn "LS8" nicht in der Liste auftaucht, kann man einen nah benachbarten verwenden, also LS7, LS9 o.ä. Ich empfehle eher, einen leicht späteren zu nehmen, wenn die Version nicht exakt passt.
Handy möglichst komplett aufladen, damit keine unangenehmen Überraschungen passieren.

Diesen Kernel runterladen, S2 in den Odin-Modus versetzen und als "PDA" flashen.
Danach S2 in den Recovery-Modus booten und CM flashen.

Upps, schon wieder zu schnell. Hier langsamer mit mehr Details:

Also:
  • Handy ausschalten
  • Gleichzeitig Lautstärke-Runter, Home und Einschaltknopf drücken.
  • Erst loslassen, wenn das gelbe Dreieck erscheint.
  • Mit "Lautstärke hoch" bestätigen, dass ein Download gewünscht ist.
  • Das Handy mit dem USB-Kabel anschließen.
  • Odin starten (ich verwende Odin 1.85).
Jetzt sollte zu lesen sein, dass das Handy erkannt wird.
Den Button "PDA" anklicken und die heruntergeladene Datei auswählen (Dateiname endet mit .tar oder .tar.md5).
Auf Start klicken und nix mehr anfassen, bis das Telefon erfolgreich neu gestartet wurde und in Odin in grün "PASS" angezeigt wird.

Jetzt die gewünschte CyanogenMod-Version herunterladen, die dazu passenden Google-Apps nicht vergessen (wichtig, genau die Google-Apps auswählen, die zur Android-Version passen!) und alles auf die interne SD-Karte überspielen.

Jetzt das Handy nochmals ausschalten und im Recovery-Modus starten.
Gleichzeitig Lautstärke-Hoch, Home und Einschaltknopf drücken.
  • Wipe Data
  • Wipe Cache
  • Advanced -> Wipe Dalvik Cache
  • Install ZIP from internal SD card
  • CM-10.1-2013mmdd.zip auswählen
  • Install ZIP from internal SD card
  • gapps-2012mmdd.zip auswählen.
  • Reboot now
Das Telefon sollte nun mit Android 4.2.2 laufen.
  • Starten
  • Warten (wie üblich einige Zeit beim ersten Start)
  • Freuen

[Update 20140815: Bilder plötzlich defekt]

03.08.2013

Das FrankenS(2)tein-Handy - Operation am offenen Herzen

Mit Kindern erlebt man was ... ich erlebe mit Kind 1 den gelegentlichen Handyverlust im Kino, oder das gelegentliche gebrochene Display, oder auch gelegentliche feuchte Unfälle auf Ferienfreizeiten.

Dieser letzte Vorfall hat zu einem teilweise unbrauchbaren Galaxy S2 geführt. Das Display war noch in Ordnung, aber beim Anschließen des Ladegeräts wurde ein Warnschild auf dem Display angezeigt, dass der Akku zu heiß wird, mit anderen Worten: durch die Feuchtigkeit war es zu einem Kurzschluß und Defekt des Mainboards gekommen.

Natürlich ist das besonders ärgerlich, weil das Display schonmal repariert wurde und der Spaß auch 160 Euro und zwei Fahrten nach Gießen gekostet hat. Bei Samsung sind in der Galaxy-Baureihe Glas und Display leider verklebt und man kann diese beiden Bauteile, also das Glas mit dem sogenannten Digitizer, dem eigentlichen "Touchscreen", und das Display (eigentlich AMOLED und nicht LCD), ohne professionelles Heißluftgerät nur schwer zerstörungsfrei trennen. Andere Smartphones sind da wartungsfreundlicher, man kann Glas und Display getrennt austauschen.

Kind 1 war nun verständlicherweise sehr unglücklich, weil das Handy letztes Jahr mit selbst zusammengespartem Geld finanziert war.


Was macht der mutige Bastler nun: er beschafft ein baugleiches Galaxy S2 mit einem defekten Display, um das Mainboard zu transplantieren. Praktischerweise sogar im benachbarten Ortsteil, so daß es mit wenig Aufwand abgeholt werden kann. Kleiner Schreck beim Abholen: der Vorbesitzer erklärt, dass das Telefon vom Auto überrollt wurde. Bange Frage: hat das Mainboard überlebt, war das Gehäuse stabil genug? Auf dem Glas war noch eine Displayschutzfolie befestigt, so dass keine Splitter zu befürchten waren.


Diese Frage beantwortet erst der erfolgreiche Umbau ... um es vorweg zu nehmen: das Mainboard hat diese brachiale Behandlung wirklich unbeschadet überstanden. Die Transplantation war erfolgreich.

Man kann natürlich Glück haben wie ich und ein defektes Handy mit intaktem Mainboard sehr günstig bekommen. Bei Ebay gibt es mit den richtigen Suchbegriffen auch nahezu alle Ersatzteile für Handys als Einzelteile zu kaufen. Bei meiner Recherche habe ich ein Mainboard einzeln vom Händler für 120 Euro gefunden. Das ist natürlich jenseits aller Wirtschaftlichkeit, wenn man ein i9100 gebraucht vom Händler für unter 180 Euro bekommt.

Die Anschaffung einer leistungsfähigen Arbeitsplatzleuchte mit Lupe ist eine lohnenswerte Anschaffung für solche Bastelarbeiten. Solche Leuchten gibt es schon für 20 bis 25 Euro bei ebay. Außerdem benötigt man Feinwerkzeug, also Uhrmacherschraubendreher mit Flachklinge und Kreuzschlitz, 1 und 2 mm, und wenn man nicht sehr stabile Fingernägel hat, am besten ein flaches nichtmetallisches Hebelwerkzeug. Musiker können auch ein Gitarrenplättchen aus Plastik verwenden. Eine schmale Pinzette hilft, wenn die lockere Schraube sich nicht greifen lässt. Ich mag die gebogenen lieber ("gekröpft"), aber das ist Geschmackssache.

Wenn man nicht gerade zwei linke Hände hat, sollte ein solcher Umbau gut gelingen, das Galaxy S2 kann man sehr leicht auseinander- und zusammenbauen.

Pedanten können auch ein antistatisches Armband tragen oder vor Beginn der Bastelei an ein blankes Heizungsrohr fassen, um eventuelle statische Elektrizität los zu werden.

Man beginnt damit, den Akkudeckel zu öffnen und dann Akku, SIM- und SD-Karte zu entnehmen.

Zumindest das Telefon mit dem funktionsfähigen Display sollte man nur auf einer weichen Unterlage lagern (Brillenputztuch), wenn man es bearbeitet, damit es während der Operation keine Kratzer bekommt.

Unter dem Akkudeckel finden sich nun 7 kleine Kreuzschlitzschrauben, die entfernt werden wollen. Da alle gleich groß sind, erübrigt sich, festzuhalten, welche wohin gehört. Bei anderen Geräten gibt es unterschiedlich lange, man sollte die Schrauben dann schematisch so lagern, dass es der Position im Gerät entspricht, oder mit einem feinen Filzstift sogar im Gerät Markierungen, Nummern etc. vermerken.

Nach der Entfernung der Schrauben muss man mit (sehr!) sanfter Gewalt das Display vom Rücken trennen. Man sucht eine Ansatzstelle, um mit dem Hebelwerkzeug oder einem Fingernagel zwischen Rücken und Displayrand zu drücken. Dann fährt man einmal um den gesamten Rahmen herum. Vorsicht an den Plastikknöpfen für Lautstärke und Einschalten! Den Rückendeckel kann man dann beiseite legen, es gibt keine Kabel, Stecker o.ä. zu lösen.

Das Mainboard selbst wird mit weiteren zwei Schräubchen gehalten, eine in der Mitte des schmalen Teils, die andere direkt neben dem dicken, würfelförmigen Kameramodul.

Nach dem Lösen der Schrauben muss man mit dem Hebelwerkzeug einige Stecker lösen, die die Einzelteile elektrisch miteinander verbinden. Alle Stecker sind von oben aufgesteckt; am besten nimmt man wieder einen Fingernagel oder das Plastikteil, um seitlich anzugreifen und vorsichtig nach oben zu hebeln. Dann kann man den Stecker an der Folie vorsichtig hochbiegen. Das sollte man nicht übertreiben und auch nicht allzu oft machen, sonst riskiert man einen Bruch in den Leiterbahnen auf der Folie. Ein feines Kabel verbindet das Mainboard mit einer zweiten kleinen Platine, die unten quer eingebaut ist. Auch hier vorsichtig mit dem Fingernagel den Stecker nach oben abhebeln.

Etwas trickreich wird das Lösen der Schalter für Lautstärke und Einschaltknopf: die sind ebenfalls mit Folien mit dem Mainboard verbunden, und werden von hinten mit Klebeband in senkrechter Position gehalten. Ich habe diese kleinen Module gelöst, indem ich die Platinchen von mehreren Seiten mit dem feinsten Schraubenzieher gelockert habe, bis ich seitlich flach dahinter pieksen konnte (nicht kratzen!). Jetzt können die Platinen immer weiter gelockert werden. Das Klebeband sollte am Untergrund bleiben, weil es noch gebraucht wird.

Falls man alle Stecker gelöst und sanft hochgebogen hat, sollte nun das Mainboard ohne Gewalt vom Display abzuheben sein. Falls nicht, nochmals kontrollieren, wo es klemmt. Vorsicht, das Kameramodul ist recht schwer und wird nur von der Folienleiterbahn gehalten. Nicht allzusehr biegen und wackeln!

Bei Unsicherheiten, welche Platine defekt ist, sollte man auch den Träger für USB und Mikrofon mit austauschen. Dies bietet sich nun an, da zu dessen Auswechseln das große Mainboard sowieso komplett demontiert werden muss. Hier gilt dieselbe Warnung wie bei der Kamera: das Mikrofon wird nur von einer weichen Folie gehalten, also nicht zu stark biegen.

Die kleine Platine wird mit zwei Schrauben und einer Plastiknase gehalten. Am besten hebt man die Seite leicht an, an der das Antennenkabel ankommt, und drückt dann am USB-Stecker nach hinten, so dass die Platine unter der Plastiknase herausrutscht. An dieser kleinen Platine ist noch ein recht langes Stück Folie mit einem Stecker zur anderen Platine befestigt. Diese Folie ist mit Klebeband fixiert. Sehr, sehr vorsichtig vom Klebeband abziehen!

Dieselbe Operation führt man an beiden Handys durch (nicht defekte und funktionsfähige Teile verwechseln ;) und der Einbau geschieht in umgekehrter Reihenfolge. Achja: nicht die Teile verwechseln und wieder ein defektes Bauteil einbauen!

USB-Platine vorsichtig in Position schieben und festschrauben.
Mainboard vorsichtig einschieben, so dass alle Stecker bündig aussehen.
Vor dem Festschrauben die Lautstärke- und Einschaltplatine senkrecht an die richtige Stelle schieben und vorsichtig am Klebeband andrücken. Unten am Boden auf Bündigkeit achten.
Zwei Schrauben anziehen.
Stecker senkrecht von oben ohne Gewalt auf ihr Gegenstück drücken. Man hört das Einrasten deutlich!
Antennenkabel ebenfalls senkrecht von oben aufdrücken. Beide Seiten kontrollieren!
Vor dem Aufdrücken des Deckels Akku einlegen, beim Umdrehen festhalten und einen ersten Test machen, ob sich das Handy einschalten lässt.

Akku wieder ausbauen, Rückendeckel festdrücken. Vorher darauf achten, dass die Wippe für die Lautstärke und der Einschaltknopf mit den feinen Gummilaschen in der Führung sitzen (im Bild links)
.
Schrauben festdrehen. Nach fest kommt ab, also nur sachte anziehen.
SIM, SD und Akku wieder einbauen, Deckel drauf und fertig!


Nach dem Einschalten begrüßte mich ein 1&1-Branding und Android 2.3.5. Dazu aber mehr im nächsten Beitrag.


[Update 20140815: Bilder plötzlich kaputt]

24.07.2013

Mehr CyanogenMod: Motorola Flipout, der Senior-Zwerg

Unglaubliche Sachen passieren in diesem merkwürdigen Internet ...

Ich hatte das alte Motorola Flipout immer noch als Notfallhandy im Regal liegen, nachdem Kind 1 sich ein Galaxy S2 zulegen wollte, und ab und zu hab ich damit ein wenig herumgespielt.



Allerdings ist es aufgrund des extrem kleinen Bildschirms mit 320x240 eher ein Hilfsmittel zur Umsatzsteigerung für Augenärzte denn ein ernstzunehmendes Smartphone.

Offensichtlich gibt es aber trotzdem Liebhaber für schnuckelige kleine Geräte mit lustiger Drehmechanik: das Gerät wird "über Eck" geöffnet, um die Tastatur zu entblößen. Es ist also weder ein Aufklapphandy wie die recht erfolgreichen Motorola V3 "Razr"-Geräte noch ein Schiebehandy wie Motorola Milestone und Milestone 2.

Irgend jemandem hat es also keine Ruhe gelassen, dass dieses Gerät quasi ab Auslieferung schon für tot erklärt wurde. Es gab nie ein vernünftiges Update von Motorola. Alles, was sich im Internet finden lässt, ist ein Update, das die "Blur"-Software entfernt, aber die Android-Version ist nach wie vor 2.1 "Eclair".

Ich wollte es schon einem Museum stiften und bot es in Google+ zum Verkauf an ... Mit dem Hinweis "Kein Update möglich". Spaßeshalber hab ich dann trotzdem "CyanogenMod Motorola Flipout" gesucht und es gibt wirklich Bastler, die im Juli 2013 (!) an CyanogenMod 7 für das intern MB511 genannte Flipout arbeiten.

Es funktioniert tatsächlich. Im zweiten Anlauf hab ich es geschafft, das Gerät mit Android 2.3.7 zu versorgen. Aber der kleine Bildschirm ist in meinem hohen Alter das K.O.-Kriterium, ich will es trotzdem loswerden. Immerhin ist Android 2.3.7 jetzt sogar ein starkes Werbekriterium beim Verkauf ;). Leider hat es insgesamt nur 512 MB RAM, davon sind knapp 150 MB frei zur Installation von Apps. Diese Einschränkung kann man mit einer kleinen App umgehen, wenn man in Kauf nimmt, dass man dafür eine neu partitionierte SD-Karte einsetzen muss, die man dann nicht mehr entnehmen darf (s.u.). Google Maps funktioniert leidlich mit der Bildschirmgröße, der Google-Authenticator hat am unteren Bildschirmrand (hochkant!) schon Probleme, die neue PIN komplett anzuzeigen.


Im CM-Paket ist sogar schon eine App für das UKW-Radio enthalten, allerdings nur in Japanisch. Wenn man einen Kopfhörer als Wurfantenne anschließt, kann man damit sogar Radio hören.

Hier also wie üblich die Anleitung in Ihrem freundlichen Android-Serviceblog, was zu tun ist, um statt des originalen Motorola-Android 2.1 das immerhin etwas modernere 2.3.7 zu installieren. Achtung, die derzeit verfügbare CM-Version heißt "RC version 2: 0.7.1", sie ist also als "RC" (release candidate) gekennzeichnet, es kann sein, dass nicht alles perfekt funktioniert.

Wie üblich muss das Gerät gerootet werden, damit man einen alternativen Bootloader und Recovery-Modus installieren kann.

Falls das Gerät schon modifiziert ist, sollte man laut Empfehlung der Entwickler zunächst mit dem offiziellen Tool "RSD Lite" die Motorola-Version zurückspielen (für Europa die 1.14 Central Europe).

Als Vorbereitung für den nächsten Schritt sollte man die "Installation aus unbekannten Quellen" erlauben, sonst kann man keine lokalen apk-Dateien von der SD-Karte installieren. Danach müssen die zwei apk-Dateien, CM7 und die Google-Apps für Android 2.3.7 auf die SD-Karte kopiert werden, am besten ins Root-Verzeichnis. Dummerweise enthält das Flipout keinen Dateimanager, mit dem man sich den Inhalt der SD-Karte anschauen und apk anwählen kann. Man benötigt also z.B. "ES File Manager" oder "AndExplorer" oder ähnliche.

Danach kann man mit Hilfe des Dateimanagers eine App "UniversalAndroot" installieren, die das Rooten und Unrooten durchführen kann. Extrem bequem!

Der nächste Schritt ist die Installation von CWM Recovery mit der App "Charms Bootstrapper". Zunächst den oberen Menüpunkt "install recovery" anwählen, danach den unteren Menüpunkt "boot to recovery".

Da das Telefon recht langsam ist, dauert es, bis tatsächlich das Recovery-Menü erscheint. Spätestens jetzt bietet es sich an, das Telefon aufzuklappen, man benötigt zur Bedienung des Recovery-Modus die Cursor-Tasten und die Eingabetaste auf der Tastatur. Die Lautstärketasten und der Einschaltknopf funktionieren nicht in allen Menü-Ebenen. Diese Situation erkennt man daran, dass ein Bildschirm mit einem Hut und einem großen gelben Pfeil erscheint. In diesem Fall kommt man einfach mit dem Einschaltknopf zurück.

Der Reihe nach nun die üblichen Löschbefehle anwählen:

  1. Wipe Data
  2. Wipe Cache
  3. Advanced -> Wipe Dalvik Cache

Wenn das erledigt ist, muss die /system-Partition noch manuell gemountet werden:

  1. Mounts and Storage -> mount /System

Danach "install zip from SD card" anwählen und der Reihe nach CM7.zip und gapps.zip (es muss genau diese hier sein: gapps-gb-20110828-signed) anwählen und installieren lassen. Das geht recht fix.

Als nächstes den Reboot auswählen und warten ...
Wie üblich dauert der erste Start von CyanogenMod recht lang, danach kann man sich das System neu einrichten. Einige Google-Apps wollen sich danach von selbst updaten.

Wenn etwas schiefgeht: keine Panik, man kann problemlos immer wieder zurück zur Motorola-Originalversion. Am PC muss man mit dem Motorola-Devicemanager zunächst alle Windows-USB-Treiber und danach die Flashsoftware "RSD Lite" installieren. Wenn das erledigt ist, als nächstes kurz den Akku entnehmen, Gerät aufklappen, Akku wieder einlegen, bei gedrückter Cursor-Hoch-Taste einschalten und die Cursor-Taste weiter gedrückt lassen, bis ein bißchen Text in weiß auf schwarz erscheint.

Jetzt das USB-Kabel zum PC anschließen, abwarten, bis Windows alles erledigt hat, und dann RSD Lite starten. "Show Device" anklicken. Sobald das Telefon erkannt wurde, mit dem "..."-Button die SBF-Datei mit der Originaldatei von Motorola anwählen und auf "Start" klicken (Runterladen kann man meistens eine sbf.zip oder sbf.gz, die muss ausgepackt werden, z.B. mit 7-Zip). Das Flashen dauert ca. 5 Minuten. Unbedingt das Kabel stecken lassen, bis das Telefon von allein neu startet und im Flashprogramm "PASS" angezeigt wird. Erst jetzt das Kabel entfernen. Patsch, das Telefon ist wieder auf Android 2.1.

Allerdings macht es ehrlich gesagt keinen großen Spaß mit dem kleinen Bildschirm. Trotzdem finde ich es faszinierend, dass es eine Entwicklergemeinde gibt, die das aktiv betreibt ;)

Zum Schluss noch der versprochene Punkt mit der Verbesserung der geringen RAM-Ausstattung: wenn man eine hinreichend große SD-Karte einsetzt, kann man diese Karte mit zwei primären Partitionen ausstatten (eine große mit FAT32, eine kleinere 1 bis 2 GB große mit ext2), kann man mit Hilfe der App INT2EXT die interne und die externe SD-Karte "tauschen" und hat dann nicht mehr knapp 150 MB, sondern die gesamte ext2-Partition auf der großen SD-Karte zur Verfügung. Der Rest der SD-Karte ist dann wie üblich Datenbereich für Fotos, Musik etc.
Für die Partitionierung der SD-Karte muss man die Karte in einem Kartenleser an ein Linux-System anschließen und kann dann mit fdisk oder einem ähnlichen Tool die SD-Karte umbauen. Danach ist aber der Menüpunkt "SD-Karte entnehmen" in den Android-Einstellungen tabu, sonst zieht man dem laufenden Android-System den Boden unter den Füßen weg ;)
Technisch passiert dabei folgendes: die App verschiebt große Dateien auf die externe SD-Karte und hinterlässt an der ursprünglichen Stelle im internen Filesystem nur einen symbolischen Link (eine wunderbare Erfindung von Unix) auf die große SD-Karte.

19.07.2013

Noch'n Update. CyanogenMod ist schneller als Google Nexus.

Mein Vertrauen in die Nexus-Baureihe der Android-Smartphones ist leicht erschüttert ...

Es gibt zwei bekannte Sicherheitslücken in Android (angeblich seit 1.6), mit denen man die Installationsarchive (apk-Dateien) so verfälschen kann, dass die Prüfsumme korrekt ist, aber trotzdem bösartige Dateien aus diesem Paket auf dem Smartphone installiert werden.

Die Sicherheitslücken können allerdings nur ausgenutzt werden, wenn man apk-Dateien am Google Play Store vorbei installiert ("side loading") und dazu in den Sicherheitseinstellungen "Installation aus unbekannten Quellen" erlaubt. Beim Upload in den offiziellen Google Play Store wird seit einiger Zeit geprüft, ob Apps in dieser Art verfälscht sind. Hier sollten Android-Benutzer also auf der sicheren Seite sein.

Allein die Namensgebung dieser Einstellungsmöglichkeit sollte Warnglocken klingeln lassen ... Allerdings erfordert jeder alternative App Store, wie z.B. Amazon, dass man dort ein Häkchen setzt. Eine gewisse Gefahr besteht also durchaus auch in der Realität. Zumal es auch schon Baukastensysteme gibt, die die Erstellung von bösartigen apk-Dateien stark vereinfacht.

Ich hoffe, dass in der Google-Veranstaltung, die demnächst stattfindet, eine neue Android-Version angekündigt wird, in der diese Fehlerkorrektur enthalten ist. Und vor allem hoffe ich, dass mein Galaxy Nexus das nächste Android-Update noch mitmachen wird. Das Vorgänger-Modell Nexus S ist bei 4.1.2 stehengeblieben und hat kein 4.2 mehr bekommen. Irgendwann wird vermutlich auch mein Modell "out of support" sein. Bis jetzt schlägt es sich aber noch ganz wacker, die technischen Daten sollten für 4.3 auf jeden Fall gut genug sein.

In den Android-Quelltexten ist der Fehler repariert, aber es wurde noch kein Update auf die Nexus-Geräte verschickt.

Hier ist CyanogenMod schneller gewesen. Mit den Updates 10.1.1 und 10.1.2 wurden nacheinander beide Sicherheitslücken repariert und als "stable"-Versionen veröffentlicht, zumindest für die "offiziell" unterstützten Geräte.

Ich bin jetzt also in der etwas merkwürdigen Situation, dass meine Frau mit dem i9000 Galaxy S und CM 10.1.2 aktueller ist als ich mit dem i9250 Galaxy Nexus ;). Ich überlege ernsthaft, ob ich ebenfalls auf CM umsteige.

26.06.2013

Cyanogenmod Update auf neue nightly Version beim LG P990

In den letzten Tagen hab ich mich mal wieder mit Android-Updates und CyanogenMod beschäftigt. Leider gibt es für mein Test- und Bastelgerät Optimus P990 noch keine stable-Variante der CM 10.1 (also Android 4.2.2), sondern nach wie vor nur die Nightly Versionen, also sozusagen Betatest-Releases.

Nichtsdestotrotz wollte ich ein Update durchführen und hoffe, dass die Patches und Bugfixes, die zum offiziellen "stable" 10.1 geführt haben, auch schon in die Nightlies für das P990 eingeflossen sind.

Wenn man CM und ein alternatives Recovery schon installiert hat, kann das Update sehr einfach sein ... leider ist es beim P990 nicht ganz so.

Der erste Schritt ist noch leicht: man lädt mit Hilfe des Update-Menüs einfach erstmal die neueste CM-Version herunter. Dieses Menü erreicht man über "Einstellungen" -> "Über das Telefon" -> "CyanogenMod-Updates".




Alternativ kann man natürlich auch am PC die ROM-Version für das P990 herunterladen und mit USB auf das Telefon befördern.

Ich habe hier den Modus auf "manuell" gestellt, weil ich nicht will, dass mein Testgerät dauernd im Netz nach neuen Versionen fragt, sondern nur, wenn ich es will. Beim P990 gibt es wie gesagt derzeit nur die Nightlies, deshalb muss der Typ der gewünschten Updates auf  "Inkl. Nightlies" eingestellt werden. Wenn man "stable" einstellt, findet die Update-Suche keine neuen Dateien.

Danach kann man die gewünschte Version durch Antippen des Download-Pfeils herunterladen. Je nach Internet-Bandbreite dauert das ein wenig, die Datei ist 155 MB groß.



Der nächste Schritt ist jetzt natürlich das Installieren des neuen Android-Images - und hier trennen sich die Wege. Wie man sieht, erscheint der Hinweis "erfordert ein kompatibles Recovery", und offensichtlich ist es bei P990 mit dem offiziellen CWM-Recovery trotzdem nicht kompatibel genug.

Wenn man diesen Weg wählt, gelangt man nicht ins Recovery zum Flashen des neuen Images, sondern es bootet der Emergency-Modus, den man nur durch Entfernen des Akkus verlassen kann.














Also nicht auf "Update" tippen, sondern "Abbrechen" und danach den manuellen Weg einschlagen: Ausschalten und beim erneuten Einschalten den Lautstärke-Runter-Knopf gedrückt halten, damit das Recovery aufgerufen wird. Das sieht dann erstmal so aus wie auf dem Foto hier rechts.




Der nächste Schritt ist dann, den Menüpunkt "choose zip from sdcard" auszuwählen und zum Verzeichnis /CMUpdater (oder /cmupdater, je nach Telefon) zu wechseln.


In diesem Verzeichnis wählt man die gewünschte Datei aus und bestätigt dann im nächsten Bild, indem man zu der Zeile mit dem "Yes" wechselt und dort bestätigt (wie üblich der Einschaltknopf im Recovery-Modus).



Danach fängt das Telefon an, sich selbst das neue ROM-Image einzuprogrammieren (zu "flashen"). Am Anfang dauert es recht lang, bis überhaupt etwas mit dem Fortschrittsbalken passiert, danach geht es recht zügig weiter. Insgesamt dauert dieser Vorgang 2-3 Minuten.





Wenn das beendet ist, kann man "Go back" anwählen und befindet sich wieder im Hauptmenü des Recovery-Modus. Den Erfolg der Aktion kann man im unteren Bildschirmteil weiterhin nachlesen.



Als nächstes wird einfach das Telefon neu gestartet mit dem Menüpunkt "Reboot system now". Der erste Neustart nach einer Installation dauert etwas länger als gewöhnlich, auch hier wieder 3-5 Minuten. Keine Panik.



Wenn das Logo von CM erscheint und sogar animiert ist, wird alles gut ;)



Danach werden die Apps erneut aus dem apk ausgepackt und für eine eventuell geänderte Java Runtime (Dalvik)  neu "optimiert".

Alles ist gut ;)


[Update 20140814: die Bilder waren plötzlich alle weg]

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.