Schlagwort-Archive: CyanogenMod 7

Android meets OBD

Im Zuge der Lambdasondenreparatur habe ich mich mal nach Möglichkeiten umgesehen OBD II Fehlercodes selber auszulesen.
Klar, bei Opel-Fahrzeugen aus den 2000er-Jahren geht das auch so, aber Opel ist im heimischen Fuhrpark klar in der Unterzahl.
Jeder drittklassige Elektronikversand bietet mittlerweile handliche Lesegeräte für den Heimanwender an. Auch eBay hat da reichlich im Angebot.
Aber in Verbindung mit den Preisen, spricht für mich auch die Abhängigkeit vom Hersteller für Updates gegen ein solches „geschlossenes“ System.
Für ein selbst geklöppeltes System bin ich jedoch nicht blond genug:

Es gibt auch Open-Source-Ansätze, wie z.B. OpenOBD.
Aber auch dort fehlt mir die Motivation, mich so tief in die Materie einzuarbeiten, als dass es auf einem der ollen Laptops die hier noch rum fliegen läuft.
Guckt man etwas weiter, so stolpert man ziemlich schnell über die Software „Torque„.
Torque nutzt Android-Geräte als Hardware und liest per Bluetooth oder W-LAN OBD II-Schnittstellen aus.
Es gibt zwei Versionen. Einmal „Torque Lite“ als kostenlose Version mit trotzdem riesigem Umfang und einmal „Torque Pro“ für sagenhafte 3,54 €.
Auch Herstellerspezifische Codes können damit ausgelesen werden.
NICE!
Hier ein kleines Video, was Torque Pro alles kann:

Und eine kleine Übersichtsgrafik:

Den Fehlerspeicher auslesen und löschen können übrigens beide Versionen.
Damit stand der Entschluss fest und ich hab mich mal nach kompatiblen Adaptern umgesehen.
Die vom Anbieter aufgelisteten Adapter waren mir alle zu teuer.
Also mal eBay direkt mit der Anfrage „Torque Bluetooth“ konfrontiert.
Da finden sich auch von deutschen Anbietern Angebote für schmale Mark.
Ich habe mich für dieses hier entschieden.
Ein deutscher Anbieter erleichtert die Nörgelei, sollte der Adapter doch nicht funktionieren.
Neben dem Adapter war noch eine deutsche Anleitung im Lieferumfang:
Lieferumfang
Die OBD II-Buchse findet sich beim Opel Corsa C bzw. Combo C in der Mittelkonsole unterhalb der Heizungssteuerung:
OBD II Anschluss
Der Adapter muss da leider über Kopf rein, so dass man die Kontroll-LEDs nicht sehen kann:
Adapter eingesteckt
Zu Anfang sah auch alles knorke aus.
Der Adapter wurde von meinem Defy gefunden und es konnte auch „gepaart“ (Ferkelkrams!) werden:
Pairing
Allerdings wollte Torque partout keine Verbindung mit dem Adapter herstellen.
Zurück am heimischen Rechner stellte sich heraus, dass ich mir selbst ein Bein gestellt habe.
Motorola verwendet proprietäre Treiber für die Ansteuerung seiner Bluetoothelemente.
Diese Treiber sind daher nicht in der von mir verwendeten Version des CyanogenMod 7 enthalten.
„Gibt’s nicht, bekommen wir auch nicht mehr rein…“ war die Antwort aus dem Netz.
Und ich bin nicht alleine.
Doof, aber weder ein Fehler des Verkäufers, der Cyanogen-Crew oder den Jungs von Torque.
Da ich wenig Lust auf Experimente mit anderen ROMs hatte, habe ich mich einfach im Freundeskreis nach Android-Geräten mit Stock-ROMs umgehört.
Michael war so freundlich mir den Zugang zu dem Mist-neuen Motorola-Telefon seiner Freundin zu verschaffen (herzlichen Dank dafür).
Da läuft noch ein gebrandetes original Android 2.3 drauf.
Damit war der Verbindungsaufbau glücklicherweise kein Problem und ich konnte den Fehlerspeicher auslesen:
hinterlegter Fehlercode
Wie zu erwarten war, war dort noch der Fehler P0136 hinterlegt (auch wenn die Motorkontrollleuchte längst erloschen war).
Zwei Klicks später war der Fehler gelöscht und bei einer Runde um den Block konnte ich mich davon überzeugen, dass Lambdasonde 2 wieder ihren Dienst aufgenommen hat:
Lambdawert von Sensor 2
Als Fazit bleibt mir nur zu sagen, dass Torque ein hammermäßiges Tool ist, dass in keiner Auto-Nerd-Hosentasche (insbesondere beim Gebrauchtwagenkauf) fehlen sollte.
Eine Aufnahme in die Liste mit den besten Schrauber-Apps ist längst überfällig!

OpenSource für mein Defy

Nachdem mein geliebtes Motorola Defy nun aus dem Garantiezeitraum raus war, konnte ich endlich dem beschämenden Support seitens Motorolas ein Ende setzen.
War die Auslieferung mit dem schon damals veralteten Android 2.1 „Éclair“ ein Ärgernis, so grenzte das stiefmütterlich behandelte Update auf Android 2.2.2 „Froyo“ an eine Frechheit!
Dementsprechend verwunderte es auch niemanden, dass Motorola kurz nach dem Update verlautbarte, es würde keine weiteren Updates mehr für das Defy geben.
Dazu kamen dann noch all die Hemmnisse durch das Branding namens „MotoBlur“, welches seinen Namen ganz zu recht trägt.
Passenderweise häuften sich in letzter Zeit auch unmotovierte Abstürze und Neustarts.
Damit war meine Hemmschwelle, die Programmierung des Smartphones zu kacken und ein neues Betriebssystem zu installieren in Flokati-Höhe angelangt.
Also Nägel mit Köppen gemacht und schlau gelesen, was die OpenSource-Community für das Defy in Petto hat.
Das sind eine überraschend stattliche Anzahl an Betriebssystemen!
Nach näherer Betrachtung kamen für mich eigentlich nur zwei Systeme in Betracht:

  1. CyanogenMod 7 (Android 2.3.7) 7.2.0 stable
  2. CyanogenMod 10 (Android 4.1.2) Nightly Builds

Da ich auf das Telefon täglich angewiesen bin, entschied ich mich gegen das momentan noch experimentelle CyanogenMod 10 und für die erprobte Version 7.

Der erste Schritt war, die Root-Sperre des Defys zu knacken.
Hierbei ist das Programm „SuperOneClick 2.2“ in Verbindung mit diesem Thread sehr hilfreich.

Als zweites Stand ein umfassendes Backup auf der Tagesordnung, denn ein schlechtes Backup-System ist besser als gar kein System!
Alle Programme, die eine eigene Backup-Funktion haben (z.B. mein geliebtes „acar„), durften selbige zum Besten geben.
Außerdem habe ich noch mittels „SMS Backup & Restore“ den nicht eh Cloud-mäßig gesicherten Teil meiner vergangenen Kommunikation kopiert.
Um jedoch ein 1:1 Spiegelbild des gesamten Systems zu erzeugen (sollten später beim flashen alle Stricke reißen) habe ich ClockworkModRecovery installiert (findet sich im Anhang zu diesem Post). Das Programm wird später auch zum Wechsel der ROMs gebraucht.
Zum Vorgehen kann man sich an den Abschnitt „Backup“ in der oben verlinkten Anleitung halten oder auch die hier nehmen. Das Backup dauerte bei mir knapp 10 Minuten (zwischendurch herrscht verdächtige Untätigkeit, also nicht nervös werden) und benötigte etwas über 1 GB an freiem Speicherplatz auf der SD-Karte:
ClockworkModRecovery Backup
Will man den Platz auf der SD-Karte anschließend für das neue ROM frei räumen, kann man das erstellte Image auch einfach auf den Rechner kopieren. Zur Wiederherstellung muss dann natürlich die Ordnerstruktur auf der SD Karte (Clockworkmod/Backup/IMAGEDATUM/) vorhanden sein bzw. erstellt werden.

Anschließend kommt das Telefon ans Ladegerät, bis der Akku randvoll ist.

Zum flashen habe ich mich hauptsächlich an die hübsch bebilderte Anleitung von Domingo2010 und RATTAR aus dem Android-Hilfe-Forum gehalten.
Will man auch die proprietären Anwendungen aus dem Hause Google (Maps, Navigation, GMail, Play Store, etc.) nutzen, so muss man neben der Datei „cm-7.2.0-jordan.zip“ auch „Gapps“ als Zip mit auf die SD-Karte packen und später ebenso über ClockworkModRecovery installieren. Hierbei ist es wichtig, dass ihr eine kompatible Gapps-Version verwendet! Eine Übersicht findet sich hier im cyanogenmod-Wiki.
Ich verwendete (nach einem ersten fehlgeschlagenen Versuch) „gapps-gb-20110828-signed.zip“.
Die Installation verlief erfreulich reibungslos:
ClockworkModRecovery Installationsablauf CM7
Einzig Schritt 18 – „Fix Permissions“ aus der Anleitung musste ich auslassen, da es diesen Eintrag in der von mir verwendeten Version 5.0.3.1 nicht mehr gab.

Einen Reboot später erfreute mich mein Defy mit neuem Bootlogo („Tschüss Motorola!“) und neuer Benutzeroberfläche:
CyanogenMod 7 Boot Animation

CyanogenMod 7 Desktop

Die Freude währte allerdings nur kurz.
Im Abstand von Sekunden tauchte immer wieder folgende Fehlermeldung auf:
„Die Anwendung Android-Tastatur (Prozess com.android.inputmethod.latin) wurde unerwartet beendet. Versuchen Sie es erneut.“:
Fehlermeldung
Da ein Defy ohne Touchscreen-Tastatur jedoch kaum zu nutzen ist, musste ich über den Rechner-Umweg Lösungen probieren.
Um es kurz zu machen: Alle in verschiedensten Foren vorgeschlagenen Lösungswege (Cache mehrfach löschen, „UserDictionaryProvider.apk“ neu installieren, Dalvik Cache löschen, ROM komplett neu installieren etc.) brachten keine Besserung.
Das Defy war in diesem Zustand nutzlos.

Warum dann also nicht weiter experimentieren und einfach eine „Nightly-Version“ von CM7 installieren? „Kaputt is eh schon.“
Ich entschied mich für „Cm-7-20121207-UNOFFICIAL-jordan-signed.zip“ von maniac103. maniac103 ist in Deutschland für die Weiterentwicklung des CyanogenMods für das Defy (Motorola-intern „Jordan“ genannt) verantwortlich. Daher hatte ich in das von ihm kompilierte ROM dass meiste Vertrauen.
Die Installation lief mithilfe dieser Anleitung ebenfalls problemlos.

Und was soll ich sagen? Der Fehler ist verschwunden!
Das System läuft bisher absolut stabil und erfreut mit schnellerer Reaktion sowie längerer Akku-Laufzeit.
Auch die Wiederherstellung meiner alten Nutzerdaten verlief problemlos.
Ein Sieg auf ganzer Linie!

Damit dürfte mein geliebtes Motorola Defy noch lange Zeit nicht zum alten Eisen gehören.

Anschließend installierte ich noch Swype Beta 1.4, welches ebenfalls einen großen Fortschritt gegenüber dem alten Motorola-Swype darstellt.

Der einzige Wermutstropfen ist bisher, dass ich kein Widget finde, welches mit der Androideigenen Mailverwaltung kooperieren möchte, um mir meine neuen Mails auf dem Desktop darzustellen.
Beim alten 2.2.2 gabs da extra noch ein Widget für (ähnlich des Kalender-Widgets). Weiß da einer von euch ne elegante Lösung?

P.S.: Nachdem ich nun weiß, wie der Lagomorpha läuft, werde ich irgendwann sicherlich auch auf CyanogenMod 10 umsteigen. Da warte ich jedoch erst noch, bis die Version ausgereifter ist. Aktuell berichten mir zu viele Leute von rapidem Akkuverbrauch beim Defy mit CyanogenMod 10.