CyanogenMod

Aus lugvswiki
Version vom 4. Oktober 2012, 20:55 Uhr von Ulf (Diskussion | Beiträge) ("Ulf"s Erfahrungsbericht ergänzt)
Zur Navigation springenZur Suche springen

Einführung

CyanogenMod ist eine freie (leider kann das nicht zweifelsfrei bewiesen werden) alternative von Googles Smartphone Betriebssystem Android, die nachträglich auf einige Smartphones aufgespielt werden kann. Eine gute Beschreibung in Deutsch gibt es auch in der Wikipedia und in englisch auf der Projekt-Homepage. Nachfolgend wird am beispiel des SonyEricsson Xperia Neo beschrieben, wie diese aufgespielt wird. Weitere unterstützte Geräte kann man in folgender Liste finden. Wobei sich hier zwei Hersteller positiv hervorheben, da sie das "Modden" wie das aufspielen einer Alternativsoftware auch genannt wird, direkt unterstützen. Dieses sind HTC und SonyEricsson bzw. Sony (nach übermahne des Ericsson Anteils).

CynagenMod ist auch eine in der Free Software Foundation Europe (=FSFE) "Befreien Sie Ihr Android!" Kampagne gelistete Mögliche freie Android alternative.


SonyEricsson Xperia Neo

Erste Zusammenfassung von Michael welche er an die Mailingliste gesendet hat.

Bisheriger Stand:

  • cM7.1 und 7.2 hat hatte eine bootloop (stable)
  • cM9.x lief nur zum teil (testing)

Letzte Aktionen:

  • habe dann alles formatiert und suchte nach einer Lösung wie ich die original Firmware von SE wieder drauf bekomme, kann man aber wohl knicken.
  • hatte noch ein backup vom original SE was aber nicht klappte das System hing im "Nirgendwo"
  • es ging nichts mehr auch eine andere Sicherung; "MD5 failed"
  • bevor ich das flicken wollte, wollte ich die Sicherungsdatei kopieren aber dazu fehlen mir die rechte, selbst ein Löschen als su geht nicht und ich muss nun sehen wie ich diesen Müll wieder von meine HDD bekomme
  • jetzt hatte ich keine "Wanze" mehr, es ließ sich nichts installieren außer das sinnlosen Original Backup meiner original SE-Soft die mit dem bootmanager CWM (ClockWorkMod) erstellt hatte und mit den ich es auch zurückspielen konnte
  • mit fast jeder cM Version wird auch der bootmanager angepasst
# ./fastboot -i 0xfce flash boot boot.img
  • und mit dem bootmanager von cM7.x konnte ich auch problemlos die /system Parition formatieren (was man nicht machen sollte) so hatte ich es dann auch mit dem bootmanager von cM9 getan was dazu führte dass jegliche Installation mit einen error abgebrochen ist, die /system Partition hatte einen Fehler.
  • jemand kannte das wohl und sagte man soll in den ersten Zeilen unter (z.B.)
update-cm-7.2.0-RC1-hallon-signed/META-INF/com/google/android/updater.script
  • ... in den ersten Zeilen das "getprop..." Zeug entfernen.
  • naja, das kann man ja auch mal probieren, ist ja eh alles im Ars ... äh im Eimer.
  • wow, erneute installation von cM7.2 ohne error, ich würde mich ja schon freuen wenn das Ding wenigstens bis zum bekannten bootloop kommt.
  • shit, kein bootloop aber, was soll ich sagen ... mir kommen die Tränen ... ein Wisch (nein nicht über die nassen Augen) sondern über das Display und cyanogenmod 7.2 furzt ohne Fehlzündungen !!!!!
    • filmen, kein Problem
    • Bluetooth ok
    • WLAN ok
    • usw ...

Was mich am Ball gehalten hat war einfach dass cm7.x bei vielen läuft und die ganz begeistert sind. Ist aber nichts neues dass ich über die Bugs stolpere, ebenso wie ich an der Kasse immer das Teil habe wo der Barcode nicht passt.


--Ulf 10:47, 7. Apr. 2012 (CEST)


Einleitung

Update von Micheal Juni 2012


Allgemeine Anmerkung von Michael

Eine Art Vortrag zum Thema „Smartwanze „modden“ Zitat:

„Hätte man Dir vor 10 Jahren gesagt dass Du eine Spionage-Wanze mit Dir trägst und sogar freiwillig den Akku wieder auflädst, Du hättest sicherlich gelacht“ Das ist aber heute Fakt daher musste meine „Smartwanze“ sich einer gründlichen Kur unterziehen damit es zu einem „Smartphone“ werden kann. Es ist kein Telefon mehr, es ist sogar mehr als ein PC … da frage ich mich: " … lässt Du jeden Fremden an Deinen PC?“

Oder:

Bevor ich einen „smarten angebissenen Apfel“ benutzen darf muss ich meine Kreditkartennummer eingeben und die Trackingdaten werden sogar im ausgeschalteten Zustand geloggt. In den AGB‘s muss (!!!) ich das Übermitteln der Daten erlauben sonst kann ich diesen „angebissenen Apfel“ nicht benutzen aber um „beschädigte“ Äpfel geht es hier nicht.


Hintergründe

Das „modden“, „routen“, „flashen“ oder wie man es immer auch nennen kann meine ich. Der Sinn ist das vom Provider bzw. vom Hersteller modifizierte, und in weiten Teilen „Zugeschlossene“, Android-System wieder zu dem zu machen was dem Grundgedanken von LINUX entspricht: „Ein freies Betriebssystem“ in dem ich löschen, modifizieren und installieren kann was ich für richtig halte.


Es kann z.B. nicht sein dass …
  • … man nur Apss über google installieren kann
  • … u.A. facebook fest in das System integriert ist
  • … div. Vorinstallierte Apps uneingeschränkten Zugriff auf die persönlichen Daten haben und sie sogar übermitteln dürfen ohne den Nutzer vorher klar zu informieren (die Internet Flatrate macht‘s ja möglich) Schaut mal unter Einstellungen -> Apps -> Anwendungen verwalten ... in der installierten Software ganz unten nach was da alles an „Berechtigungen“ drin steht.
  • … und man kann diese Apps nicht löschen!!!

Die oben genannten Gründe sind schon Grund genug dem „Gelieferten“ zu misstrauen und den ganzen Mist zu löschen.

(erst wollte ich eine tabellarische Aufstellung machen, aber anhand der Hinweise, bzw. Randbemerkungen die nötig sind habe ich mich für Prosa entschieden mit annähernd chronologischem Ablauf und … ohne Englischkenntnisse kann man das modden vergessen!).


Zum Thema „Garantie“ noch eine Kleinigkeit:

Es wird heftig davor gewarnt zu rooten weil die Garantie verfällt ok, „no risk, no fun!“ aber es gibt eine Hardware- und eine Software-Garantie und wenn man z.B. seinen Prozessor mit dem selbst aufgespieltem System nicht übertaktet, bleibt die Hardwaregarantie erhalten denn was kann die Software dafür wenn z.B. ein Knopf ab fällt?

Falls Ihr es aber wegen eines HW-Schadens einschicken müsst, dann ist sicherlich auch Eure Arbeit futsch es erfolgreich gemoddet zu haben., ergo:

Macht Euch Notizen und Hinweise „wie“ es geklappt hat.

Egal welches Gerät ihr nehmt, denkt immer daran das die Testberichte, je nach Verlag, „gekauft“ sind. Meines Wissens ist es bei der c‘t nicht so denn was viele kaufen muss nicht das Optimale sein, die c‘t ist da neutral.


Noch ein Hinweis:

Es kann sein dass nicht alle HW-Komponeten gleich am Anfang nutzbar sind, so ist es eben wenn man sich „auf Neuland“ begibt denn die Entwicklung geht sehr schnell und man muss anfangs auf etwas verzichten. Wie die Erfahrung aber bisher gezeigt hat kommt es mit dem nächsten Ubdate, also bitte etwas Geduld und etwas Zeit nehmen den Entwicklern mal einen Hinweis zu geben.


Ablauf

Im folgenden eine „Wegbeschreibung“ anhand eines „SE Xperia NEO“ wie es machbar ist es zu „modden“. Es wurde einfach für runde 300.- EU bestellt, ohne Provider-Branding nachdem ich hier nachgesehen habe welche Typen unterstützt werden.

Kriterium für SE ist, so finde ich zumindest, das beste Preis/Leistungsverhältnis bezüglich Preis und gelieferter Hardwarequalität.

Es gibt z.Zt. auch den Versuch für ein nahezu freies Handy, „greeksphone-zero“ aus Spanien aber dieses hat meinen Hardwareansprüchen nicht entsprochen.

Eine komplett freie Lösung, egal ob Hardware oder Betriebssystem, kann man noch nicht erwarten, es ist immer ein Kompromiss der aber durch nachfrage in die Richtung weist freie Systeme zu fördern und fordern (ähnlich wie bei Bio-Produkten). „Replicant“ kommt dem schon recht nahe, unterstützt aber z.Zt. nicht so viele Smartwanzen.

Bitte achtet, wenn Ihr in den Foren nach Info‘s sucht immer auf das Datum wann es gepostet wurde denn vieles ist veraltet und entspricht nicht mehr der Vorgehensweise von heute (ein Jahr kann schon „veraltet“ sein). SE hat inzwischen offiziell das rooten des Bootsektors frei gegeben. Ebenso HTC, so weit ich gehört habe.

Ohne den „boot loader“ zu knacken geht es nicht ein neues System aufzuspielen!

Ach ja, bei einem gerooteten Telefon kann man z.B. eine Firewall installieren die, die Zugriffe ins Netz regelt wie z.B. DroidWall

Bei allem suchen kam CyanogenMod (oder kurz: cm) als am meisten und weitesten entwickelten System zur Installation in Frage. Man stelle sich vor dass täglich über 10.000 Smartwanzen mit cm „infiziert“ werden! (zu finden unter CyanogenMod -> COMMUNITY -> Installation Statistics)

Wer ein Debian auf seine Smartwanze basteln will findet hier etwas nützliches: guardianproject

Ok, nun wird es spannend (vor wenigen Tagen habe ich nichts zum Umgang mit Smartwanzen gewusst) und lasst am besten gleich den Deckel offen denn so lange Ihr am modden seid müsst ihr evtl. öfters mal den Akku oder Chip raus nehmen.

Bei meinem NEO musste ich upgraden, und nicht wie so oft beschrieben downgraden denn erst durch das Upgrade wurde der Bootloader frei gegeben. Dies musste ich unter „WinDOS“, online mit dem SE-Tool „Sony PC Companion“ machen bei, über USB, eingestecktem Handy. Nun benötigt man einen „bootloader-Key den man hier findet sowie auch weitere *wichtige* Hinweise. Dazu müsst ihr den Servicestatus abfragen, z.B. bei SE-Neo mit *#*#7378423#*#*


Schritt für Schritt

Wenn ihr folgendes seht ist der erste Schritt getan:

Rooting status:
bootloader unlok allowed: *Yes*

vor dem Upgrade stand da nichts vom bootloader das richtige „fastboot“ muss auf dem PC installiert sein. Für SE-NEO hier zu finden mit weiterführendem Link zum download.

Dann musste es auf „chmod 0775“ setzen damit es ausführbar wird und endlich wird die Smartwanze auch gefunden. Jetzt sind auch alle Optionen verfügbar siehe "fastboot --help"

.../tools # ./fastboot devices
BX902H1MDT&ZLP  fastboot

dann Sinngemäß,

if you use fastboot often and you don't want to type cd /path_to_your_SDK_directory/platform-tools, ./fastboot <action> every time, you can do this:
1. Open Terminal and type:
sudo nautilus
to get file browser with root privileges.
2. Copy fastboot binary to /bin directory
Now, just open terminal and type fastboot <action> and that's it?
Copy this file to /etc/udev/rules.d
EDIT:
Code:
sudo chmod a+r /etc/udev/rules.d/51-android.rules

ich habe einfach "chmod 644" gemacht und in die SE vendor ID (0fce) eingetragen

# ./fastboot -i 0x0fce oem unlock <Bootloaderkey von SE>

so habe ich es gelesen probiert, geht aber nicht, war also falsch die Info

# ./fastboot -i 0x0fce oem unlock 13D1728xxxxxxxxxx
...
(bootloader) Unlock phone requested
FAILED (remote: oem unlock 0xFFFFFFFFFFFFFFFF)
finished. total time: 0.002s

vor dem key gehört ein "0x" dann sieht es so aus:

# ./fastboot -i 0x0fce oem unlock 0x13D1728xxxxxxxxx
...
(bootloader) Unlock phone requested
(bootloader) Erasing block 0x00000d00
(bootloader) Erasing block 0x00000e00
(bootloader) Erasing block 0x00000f00
(bootloader) Erasing block 0x00001000
(bootloader) Erasing block 0x00001100
(bootloader) Erasing block 0x00001200
(bootloader) Erasing block 0x00001300
(bootloader) Erasing block 0x00001400
(bootloader) Erasing block 0x00001500
(bootloader) Erasing block 0x00001600
(bootloader) Erasing block 0x00001700
(bootloader) Erasing block 0x00001800
OKAY [  3.500s]
finished. total time: 3.500s

nach ziehen des USB-Steckers aus dem fastboot-Modus mal gestartet um zu sehen was sich verändert hat (hat recht lang gedauert und die "erste-Schritte" Anleitung startete ergo ist es resettet worden.

in den Servicemodus *#*#xxxxxxxx#*# gegangen und nun steht da:

Rooting status:
    Bootloader unlockt: Yes

(Es ist ratsam bei jeder Gelegenheit den Akku zu laden irgendwie verschwindet der Saft bei solchen Aktionen einfach.)

# ./fastboot -i 0xfce flash boot boot.img
< waiting for device >
sending 'boot' (5218 KB)...
(bootloader) USB download speed was 9325kB/s
OKAY [  0.579s]
writing 'boot'...
(bootloader) Download buffer format: boot IMG
(bootloader) Flash of partition 'boot' requested
(bootloader) S1 partID 0x00000003, block 0xx000002e3
(bootloader) Erase operation complete, 0 bad blocks encountered
(bootloader) Flashing...
(bootloader) Flash operation complete
OKAY [  1.065s]
finished. total time: 1.645s

Essenziell ist folgende Seite, diese ist Schritt für Schritt auszuführen es heißt zwar dass man ein Backup machen soll was ich auch versucht habe. Da mein Gerät aber noch keinerlei wichtige Daten hatte war es mir egal. Trotzdem habe ich es versucht aber eine Wiederherstellung klappte nicht, wozu also dann ein Backup?

Unter „Flashing CyanogenMod“ aufgeführten Punkte variieren etwas:

  • Punkt 7 ist etwas kurz gehalten, er startet dann nicht automatisch sondern ich musste selbst den "On-butten" drücken und dann die Lautstärke-Tasten mehrmals drücken.
  • Punkt 8 ist bei mir auch nicht ganz richtig, ich muss die Kamera-Taste drücken und nicht die Powertaste.

Als Bootsektor habe ich ClockworkMod (CWM) (ist auch auf CyanogenMod-Wiki) was ja zur Installation benötigt wird. Damit habe ich, nach dem ich meine Brille gefunden habe, auch meine 16GB MicroSD-Chip formatiert. Er legt dabei eine SWAP von 244MiB an, eine ext3 mit 3,81GB und eine fat32 mit 10,85GB an. Wozu die SWAP bei einem Smartphone gebraucht wird ist uns völlig schleierhaft. In die ext3 wird nur „lost+found“ angelegt, es befinden sich aber keine Daten drin. Vielleicht sind diese für Entwickler. Die mit CWM erstellten Backups gehen auf die fat32 Partition. Ich habe schon überlegt die ext3 zu verkleinern aber momentan reichen die 10GB fat32 noch.

Bei der Erstinstallation ist auch wichtig das die Installationsdateien auf dem PC unter /boot/... der Version die man auf dem Handy installieren will zusammen passen. Man kann nicht boot von CWM was für cm 9.x.x gedacht ist benutzen und ein cm 7.x.x zu installieren.

Ok, nach Anleitung dann das „update-cm-7.x.x.xxx-XperiaNeo-MT15i-signed.zip“ auf den Chip - gebootet und, natürlich wieder mit Brille, die Installation eingeleitet. Diese google-installations-Dateien benötigt man nicht wenn man sie nicht will, was soll das auch, um dieses Zeug los zu werden modde ich ja.

So weit so gut, aber ...

Wenn ich boote startet cm und bleibt beim der Oberfläche stehen und loopt immer wieder zwischen bootlogo und Oberfläche. Tippen oder Knöple drücken ignoriert das Teil einfach.

Ich muss die Batterie raus nehmen.

Habe verschiedene cm Kernelversionen getestet aber überall das selbe.

Das Backup was ich vorher vom System gemacht habe bringt, wie ich schon sagte, auch nichts, es klappt einfach nicht. Auch das unter WinDOS laufende „Sony PC Companion“ - Tool klappt wegen dem neuen Bootsektor nicht mehr, das Handy wird einfach nicht mehr gefunden.

Schade, bei cm buggt da noch etwas. Manche Andere haben das selbe Problem. So liegt es nicht an mir. Leider ist die Hilfe nicht hilfreich denn cm ist überzeugt dass es gehen muss.

Meine Geduld neigte sich dem Ende zu.

Generell muss man sich an die Foren halten, was ich hier schreibe kann schnell veraltet sein die Android-Hilfe Seiten sind zur Zeit sehr aktuell. Daher halte ich mich hier mit Installationsdetails zurück, schaut lieber selber nach „aktuellen“ Installationshilfen.

Eine kleine Zwischenbemerkung von Ulf noch: Thema: "Fest und frei" von Kai Paterna zum "Gerichtsentscheid zu OS-Bestandteilen in FritZ!Box-Firmware" aus der c't 2012/09 Seite 150ff. Dort berichtet der Autor "Einige Mobilfunkhersteller haben begonnen die Leistungen von Modifiziertem wert zu schätzen: Samsung hat den Hauptentwickler des beliebten Cyanogen-Mod-Projekts ins Unternehmen geholt, ...".

Die Such nach der Lösung meines Problems war echt gewaltig. Da ich mir die Seite der Lösung nicht notiert hatte und heute sie einige Stunden erneut danach gesucht und nicht gefunden habe kann ich es leider nur ohne Quellennachweis hier posten.

Die Lösung beim „SE Xperia NEO“ mit bootloop bei Cyanogenmod 7.2.0, (evtl. nur wenn man die google-Pakete nicht haben will) ist in dem *.zip-File unter: update-cm-7.2.0-RC1-hallon-signed/META-INF/com/google/android/ das „updater.script“ bei den ersten Zeilen die "getprop..." Zeilen entfernen (ich habe sie nur mit einer # ausgeklammert)

# assert(getprop("ro.product.device") == "MT15i" ||  getprop("ro.build.product") == "MT15i" || getprop("ro.product.board") == "MT15i" ||
# getprop("ro.product.device") == "MT15a" || getprop("ro.build.product") == "MT15a" || getprop("ro.product.board") == "MT15a" ||
# getprop("ro.product.device") == "hallon" || getprop("ro.build.product") == "hallon" || getprop("ro.product.board") == "hallon");
package_extract_file("system/bin/backuptool.sh", "/tmp/backuptool.sh");
set_perm(0, 0, 0777, "/tmp/backuptool.sh");
run_program("/tmp/backuptool.sh", "backup");
(…)

… sichern -> in das Rootverzeichnis des Chips kopieren und die Installation wie bei cm beschrieben einleiten.

Klasse, die Smartwanze ist erfolgreich gemoddet und darf sich nun Smartphone nennen.

Allerdings muss ich ein den Verlust des eingebauten Radios hinnehmen (ist wohl noch nicht im Kernel) auch wird der Lichtsensor (noch) nicht unterstützt aber dies sind nur Kleinigkeiten die ich gerne in Kauf nehme.


Weitere Erfahrungen

Seit ein paar Tagen habe ich im Tausch mit meinen Nokia N8 (OS: Symbian Belle) ein Samsung Google Nexus S mit CyanogenMod 9 im Tausch (da ein Kollege mein Telefon für eine Vorführung auf einer Messe benötigt - und sein N8 defekt ist). Ich muss sagen, dass mir das Google/Samsung Nexus S mit Cynagenmod 9 sehr gut gefällt. Ich habe auch gleich ein paar wichtig Apps (überwiegend mit GPL oder vergleichbaren Lizenzen) von F-Droid heruntergeladen. Das hat auf Anhieb sehr gut funktioniert und ich bin überwiegend zufrieden. Nur der Fehlende µSD-Card Schacht sowie die USB-Host Unterstützung und die Hervorragende Kammera des N8 vermisse ich doch etwas. --Ulf 22:28, 19. Aug. 2012 (CEST)

Heute ist die Version 9.1.0 von CyanogenMod erschienen - lade sie mir gerade herunter. Bin mal gespannt wie diese funktioniert. Bisher bin ich recht zufrieden mit der Stabilität und den Funktionen, allerdings ließ sich nicht vermeiden den Google-Store doch zu installieren (und damit auch ein Konto bei Google anzulegen. Problem war zum einen das der Terminkalender nicht funktionierte, und auch das Adressbuch ärger machte. Erst nach dem ich das Konto angelegt hatte und die Google Anwendungen installierte - waren alle Funktionen die ich brauchte richtig verfügbar. :-( --Ulf 17:32, 31. Aug. 2012 (CEST)

Leider musste ich mittlerweile das Samsung Google Nexus S wieder abgeben, aber im wesentlichen hat mich der Zwischenstop bei Android/CyanogenMod davon überzeugt mir gegen ende des Jahres ein Modbares neues Android Smartphon zuzulegen. Zur Diskussion stehen neben Samsung Galaxy S3 LTE und dem evtl. doch etwas zu großen Samsung Galaxy Note II (evtl. in der ab November erhältliche LTE Version) insbesondere das Wasserdichte Sony Xperia™ V --Ulf 21:55, 4. Okt. 2012 (CEST)


Empfehlenswerte Apps

Achtung - wir übernehmen keinerlei Garantie, dass die von uns vorgeschlagenen Apps bei jedem einwandfrei Funktionieren und wir können auch nicht garantieren dass sie alle Datenschutzrechtlichen und sonstigen Rechtlichen Anforderungen entsprechen! Also jeder sollte sich bei der Installation die benutzten Ressourcen genau ansehen und anschließend mit dem Gesunden Menschenverstand bewerten, ob diese OK sind bzw. benötigt werden. --Ulf 22:28, 19. Aug. 2012 (CEST)


Firefox

Nach meinem Empfinden, ist der in CyanogenMod 9 enthaltene Browser besser. Dass ist aber nur meine persönliche Meinung - und kann z.B. bei Verwendung des Datenableichs zwischen der Mobilen und Desktop Version anders bewertet werden. --Ulf 22:28, 19. Aug. 2012 (CEST)


K-9 Mail und APG

Dieses Mailprogramm insbesondere in Verbindung mit dem Verschlüsselungs-Tool APG ist um Klassen besser als das enthaltene Mailprogramm. Es arbeitet insbesondere mit IMAP Konten sehr zuverlässig (incl. Verwendung von PUSH Mails in bis zu 10 Unter-/Ordnern). --Ulf 22:28, 19. Aug. 2012 (CEST)