CyanogenMod mit Linux auf dem Defy+ installieren

Wie ich bereits erwähnte, war ich mit meinem Motorola Defy+ nicht sonderlich zufrieden. Zu häufig hat sich das Smartphone aufgehangen, neugestartet oder mir verweigert, einen Telefonanruf anzunehmen. Genervt und frustriert, beschloss ich vor einiger Zeit, dass ich vor dem Kauf eines alternativen Gerätes, doch erst mal ein alternatives ROM versuchen sollte.

Die wohl bekannteste Alternative zum regulären Android, ist der CyanogenMod, der aber leider offiziell nur das Motorola Defy unterstützt, und explizit das Defy+ aus dem Support ausschließt. Doch nach einiger Recherche, fand ich auch schon ein Custom-Rom für mein Gerät bei Quarx. Basierend auf dem CyanogenMod 10, das wiederum auf Android 4.1 aka Jelly Beans aufbaut, wurden die letzten Anpassungen Ende September 2012 veröffentlicht. Sicherlich nicht der aktuellste Stand der Dinge, aber solange es stabil läuft, soll es mir recht sein.

Doch nun stellte sich die Frage, wie ich den angepassten CyanogenMod unter Linux auf mein Smartphone bekomme. In der Tat war hier etwas mehr Recherche erforderlich, doch durch den ein oder anderen Forenbeitrag bin ich recht schnell an ein einfaches vorgehen gekommen.

Anmerkung: Ich übernehme keine Haftung für eventuelle Schäden an dem Smartphone! Diese kleine Anleitung setzt voraus, dass der Benutzer fundierte Vorkenntnisse im Umgang mit Linux und Android besitzt und weiß, was er tut! Simples Copy’n Paste ist nicht gewünscht! Außerdem sollten die verlinkten Forenthreads gelesen werden, um eventuelle Fragen im Vorfeld zu klären.

  • Voraussetzung ist ein Defy+ mit dem letzten offiziellen Update auf Android 2.3.6, aktiviertem USB-Debugging, angeschlossen über USB an meinen Linux-Rechner mit der Verbindungsart „Nur laden
  • Zum Aufspielen der neuen Roms brauchen wir das Tool sbf_flash
    • Anfangs wollte sbf_flash nicht richtig, weil mir das Paket cpio fehlte, das aber schnell über die Paketverwaltung nachinstalliert wurde.
  • Mittels sbf_flash installieren wir nun zwei ROMs, die das Android-Hilfe.de-Forum nannte:
$> wget http://sbf.droid-developers.org/umts_jordanplus/DEFYPLUS_U3_4.5.1-134_DFP-231_GR_SIGN_UCADEFYEMARAB1B80AA004.0R_PDS03C_USAJRDNGIBRRTCEE_P022_A022_Service1FF.sbf.gz
$> gunzip DEFYPLUS_U3_4.5.1-134_DFP-231_GR_SIGN_UCADEFYEMARAB1B80AA004.0R_PDS03C_USAJRDNGIBRRTCEE_P022_A022_Service1FF.sbf.gz
$> ./sbf_flash DEFYPLUS_U3_4.5.1-134_DFP-231_GR_SIGN_UCADEFYEMARAB1B80AA004.0R_PDS03C_USAJRDNGIBRRTCEE_P022_A022_Service1FF.sbf
    • Wenn sbf_flash auffordert, das Telefon in den Bootloader-Modus neuzustarten, schaltet man das Defy+ aus und startet es neu, derweil der Lautstärkebutton „Leiser“ gleichzeitig gedrück gehalten wird
    • Anschließend wird das „rooted“ ROM gleichermaßen installiert. Der Download von 4.5.1-134 DFP-231 Retail.en.EU CEE Rooted SBF geschieht über Mediafire.
$> unrar e DEFYPLUS_U3_4.5.1-134_DFP-231_CEE_ROOTED_No_Signed.rar
$> ./sbf_flash DEFYPLUS_U3_4.5.1-134_DFP-231_CEE_ROOTED_No_Signed.sbf
  • Anmerkung: Zur Installation dieser beiden ROMs, war bei mir das im Forenbeitrag erwähnte Wipen nicht notwendig.
  • Mit den nun erworbenen Super-User-Rechten auf dem Defy+, wird 2ndInitRecovery installiert. Das APK findet man im Forum von XDA-Developers.com. Wer nun nicht weiß, wie man ein eine App aus „unsicheren“ Quellen installiert, sollte sich generell die Installation eines Custom ROMs gut überlegen (;
  • Den zuvor heruntergeladenen CyanogenMod für das Defy+, kopiert man simpel per USB-Verbindung als vorliegende Zip-Datei auf die SD-Karte des Defy+. Gleiches macht man auch mit den Google Apps, die man aus dem Wiki des CyanogenMods runterladen kann. Ich entschied mich – passend zur ROM-Version – für gapps-jb-20121011-signed.zip.
  • Nun wird die App 2ndInit gestartet, wo man das Bootmenü installiert. Bitte Root-Rechte gewähren, sonst bringt diese Prozedur rein gar nichts.
  • Ist das Bootmenü installiert, startet man das Defy+ neu und drückt die „Leiser“-Taste, sobald das blaue Benachrichtigungslicht aufleuchtet.
    • Im 2ndInit-Bootmenü navigiert man mit den Lautstärke-Tasten und bestätigt eine Auswahl mit dem Ein-/Aus-Knopf des Smartphones.
    • Hier wählt man den Punkt „Recovery
    • Zunächst wird das Telefon zurückgesetzt mittels „wipe data/factory reset
    • Anschließend wird über den Punk „Install zip from sdcard“ der zuvor kopierte CyanogenMod ausgewählt
    • Nach der erfolgreichen Installation des CyanogenMod, wird über „Install zip from sdcard“ das gapps-Paket gleichermaßen installiert.
    • Anmerkung: Optional kann man über den Menüpunkt „backup and restore“ auch vorher das aktuelle ROM sichern, falls etwas schief gehen sollte. Dies sollte logischerweise geschehen, bevor man den CyanogenMod installiert hat.
    • Zum Schluss startet man das Defy+ über den Menüpunkt „reboot system now“ neu und wartet, bis der CyanogenMod vollständig geladen ist. Das kann mehrere Minuten dauern.

Und Tadaa: Android 4.1.1 läuft auf dem Defy+! Soweit ich das bisher beurteilen kann: Schnell und flüssig!

Nach der Installation fehlt aber leider die GMail-App, die man auch nicht regulär über den Play-Store nachinstallieren kann. Andere Google-Apps wie der Google Reader, Google Calendar, Google Drive, Google+, etc. sind gar kein Thema. Mir ist schleierhaft, warum GMail da eine Ausnahme darstellt.
Glücklicherweise findet man auch hier die passende APK mit etwas Suchen im Forum von Android-Hilfe.de.
Nun kann man diese Datei einfach manuell installieren, oder man registriert sie als System-App:

  • Man verbindet das Defy+ im USB-Debug-Modus mit dem Rechner
  • Zur Kommunikation mit dem Smartphone über ADB, benötigt man das Tool adblinux
  • Vorausgesetzt, adblinux und Gmail.apk liegen im gleichen Verzeichnis
$> ./adblinux remount
$> ./adblinux push Gmail.apk /system/app
  • Anschließend das Telefon neustarten

Nützlicher Tipp: Um festzustellen, ob das Defy+ richtig im Debug-Modus mit dem PC verbunden ist, kann man mittels ./adblinux devices alle verbundenen Android-Geräte abfragen.

Anmerkungen: Aus irgend einem Grund verweigerte mir mein Smartphone im Lauf dieses Prozesses immer wieder die Verbindung mit meinem Laptop (aktuelles Arch Linux). dmesg meldete immer wieder „device not accepting address“. Hingegen am Windows-Laptop meiner Frau, verband sich das Smartphone ohne Probleme. Und komischerweise funktionierte die USB-Verbindung nach einiger Zeit auch wieder an meinem Laptop. Eine Ursache oder Regelmäßigkeit dieser Aussetzer konnte ich genau so wenig feststellen, wie ob der Fehler beim Defy+ oder meinem Laptop lag. Mittlerweile ist das Phänomen nicht mehr reproduzierbar.

Links:

Advertisements

Awesome Window Manager – im wahrsten Sinne des Wortes

In meiner Zeit als Linux-User habe ich schon viele Window-Manager und Desktop Environments durchprobiert. Angefangen mit KDE 3.x unter Suse zu Gnome 2 auf Ubuntu. Dort kamen auch XFCE und LXDE zum Einsatz, später das pure Openbox mit einem tint2-Panel. Mit neuer Hardware war ich anfänglich auch von Unity begeistert, wechselte dann aber irgendwann zu Gnome3. Auf meinem eee 701 bin ich lange Zeit der Openbox treu geblieben, nicht zuletzt der begrenzten Hardware-Ressourcen geschuldet.

Doch ich bin ein wenig neugierig und experimentierfreudig. Gerade durch die Platzmöglichkeiten eines Widescreen-Monitors hatte ich immer wieder überlegt, einen Tiling Windowmanager zu probieren. Denn in der Regel ist ein Browserfenster im Full-Screen bei 1920×1080 etwas überdimensioniert. Da kann man locker noch ein Chatfenster und einen Twitter-Client bequem daneben platzieren. Auf der Arbeit habe ich mehrere Terminals auf einem Desktop offen, um diverse Ausgaben im Überblick zu halten und schnell Befehle abzusetzen. Bei den regulären DEs und WMs muss diese Platzierung manuell mit der Maus vorgenommen werden. Tiling Windowmanager bieten hier den Vorteil, dass sie automatisch die Fenster in einem Raster anordnen und den vorhandenen Platz optimal ausnutzen können.

Was mich bisher immer von der Nutzung eines Tiling WMs abgehalten hat, waren die Menge an Implementierungen und die oft ziemlich komplexe Konfiguration und Bedienung von manchen Programmen. Ich habe keine Lust, mich nur auf die Tastatur alleine zu verlassen, ab und zu will ich auch mit der Maus den Fokus setzen können. Ich will nicht für jede kleine Modifikation direkt den kompletten Windowmanager neu kompilieren müssen. Ich will auch schon mal Fenster außerhalb des Tilings frei platzieren und skalieren können.

Dann habe ich ein Programm gefunden, was meine Anforderungen erfüllt, und es einfach testweise auf dem eee Netbook installiert: Awesome! Der Name ist vielleicht etwas unglücklich gewählt, sucht einfach mal nach „awesome“ oder „awesome windowmanager“ bei Google, die vermeintlichen Treffer beziehen sich nicht unbedingt immer auf den Awesome Windowmanager (;

Hervorgegangen aus dwm, der für Änderungen neu kompiliert werden muss, kann Awesome über Lua-Skripte gesteuert werden. Die Optionen sind verdammt mannigfaltig und würden in der Auflistung den Rahmen hier sprengen. Neben diversen Tiling-Optionen, kann Awesome Fenster auf fließend verwalten. Da es in der Standardkonfiguration aber keine Titelleisten gibt, muss man zum Verschieben oder Skalieren die Tastatur zur Hilfe nehmen:
– bei gedrückter Windows-Taste kann ein Fenster mit Drag’n Drop mit der linken Maustaste verschoben werden
– bei gedrückter Windows-Taste kann ein Fenster durch Ziehen mit der rechten Maustaste skaliert werden
Im Endeffekt die gleichen Aktionen, wie unter Openbox. Nur dass man die Alt- und die Windowstaste tauschen muss.

Gleichsam aus Openbox bekannt und für mich auch ein sehr nettes Gimmick: Per Rechtsklick auf den Desktop wird ein Applikationsmenü geöffnet. Dieses wird gleichsam über die Konfigurationsdatei unter ~/.config/awesome/rc.lua gesteuert. Im Standard-Setup befindet sich auch ein Button für dieses Menü in der „Taskleiste“. Daneben sind die unterschiedlichen „Tags“, die man wie virtuelle Desktops verstehen kann. Neben dem Systray und einer Uhr kann das Panel durch beliebige Wigets erweitert werden. Dafür muss man nur in besagter Config-Datei ein paar Änderungen im Lua-Script tätigen. Inspirationen und Code findet man beispielsweise im Awesome-Wiki oder dem „Share your Awesome (WM) Desktop„-Thread im Archlinux Wiki.

Die Installation erfolgt simpel aus den Repositorys von Ubuntu oder Archlinux. Ich denke andere Distributionen sollten Awesome gleichermaßen in den Paketquellen haben. Detaillierte Konfiguration, Handhabung und erste Schritte findet man genug in den üblichen Quellen, darum verzichte ich darauf.

https://wiki.archlinux.org/index.php/Awesome
http://awesome.naquadah.org/wiki/Main_Page
https://bbs.archlinux.org/viewtopic.php?id=88926

[Kurz-Tipp] Batteriestatus über die Konsole ausgeben

Will man auf seinem Laptop unter Linux den Batteriestatus ausgeben, hilft das Packet acpi und der gleichnamige Befehl weiter.

Durch Parameter kann man neben aktuellem Füllstand noch weitere Informationen ausgeben lassen:
-t Temperatur des Akkus
-a Informationen über den Stromadapter
-V alle verfügbaren Informationen

Doch in der regel sollte ein parameterloser Aufruf die gewünschten Informationen liefern.

TTYtter: Twitter auf der Konsole

Ich war auf der Suche nach einem schlanken Twitter-Client für Linux. Dank Hinweisen aus den Kommentaren, habe ich mir auch Alternativen angesehen. Doch irgendwie erschienen mir weder Hotot noch Turpial richtig passend für den Gebrauch auf meinem Asus eee 701 G4. Darum versuchte ich eine weitere Möglichkeit: Twitter über die Konsole.

Als perfekte CLI-Applikation stellte sich TTYtter heraus. Sowohl Archlinux wie auch Ubuntu pflegen die Anwendung in ihren Repositorys. Die Installation geht entsprechend schnell und bequem über pacman und apt-get.

Nach dem ersten Start von ttytter über die Konsole, folgt die Authentifizierung. Man wird gebeten, eine URL im Browser zu öffnen und ein OAuth-Token in die Konsole einzugeben. Anschließend muss ttytter neu gestartet werden.

Im interaktiven Modus ruft ttytter neue Tweets im Hintergrund ab und zeigt sie auf der Konsole an. Dabei werden die einzelnen Nachrichten einer vorangestellten Kennziffer zugeordnet. Über diese Kennziffer kann man mit den Tweets interagieren.

/reply <nr> sendet eine Antwort an den Tweet mit der angegebenen Nummer
/rt <nr> retweet die Meldung
/fav <nr> favorisiert die Nachricht

Um selber einen Tweet in die Welt zu setzen, schreibt man einfach und schickt die 140 Zeichen mit Enter auf die Reise. Zu lange Meldungen beschneidet ttytter und gibt die gekürzte Nachricht noch mal zur Revision aus.

Will man einen Link kürzen, gibt es ein handliches build-in: /short <url>. Die gekürzte Adresse wird dabei in die Variable %URL% gespeichert, die man in den nächsten Tweet integrieren kann.
Mit /url <nr> öffnet man die URL aus dem angegebenen Tweet und speichert die Adresse in %URL%.

Interaktion mit anderen Benutzern erfolgt über /whois, /follow und /unfollow. /dm <nick> <nachricht> verschickt eine Direct Message. /refresh holt die neuesten Tweets, /again läd die Timeline neu, /replies die eigenen @-Mentions und /dm ohne Angabe von Nick nun Nachricht, läd neue privaten Mitteilungen, /dmagain alle letzten DMs.
Hat man mal Mumpitz publiziert, löscht /dlast die letzte gesendete Nachricht der aktuellen ttytter-Session.

Will man eine Übersicht der wichtigsten Kommandos, hilft /help. Alle Befehle gibt es auf der Homepage.
/quit oder /exit beendet ttytter.

Über Einstellungen kann man ttytter konfigurieren. Entweder im Programm selber mit /set <key> <value>, oder über die .ttytterrc im eigenen Home-Verzeichnis. Dort stehen die Parameter als key=value einzeln pro Zeile.
Ich mag farbige Ausgaben, darum habe ich ansi=1 und damit ANSI-Color-Ausgaben aktiviert. Und da ich schon mal gerne vorschnell auf Enter drücke, steht ihn meiner Konfiguration slowpost=1. Dann wartet ttytter eine Sekunde mit dem Abschicken des Tweets und ich kann mit STRG-c den Vorgang noch abbrechen. Ein Bestätigen jeder Meldung mit verify=1 wäre mir zu unbequem.

ttytter kann auch Desktop-Benachrichtigungen. Dafür muss das Programm aber mit den entsprechenden Parametern gestartet werden:
-notifytpe=libnotify -notify=reply,dm
Weitere Startparameter und Einstellungen gibt es auf der Homepage von ttytter. Dort steht auch, wie man ttytter nicht nur interaktiv, sondern auch für Scripting verwenden kann.

Als Konsolen-Cowboy und Linux-Nerd habe ich mich schnell in diesen mächtigen Twitter-Client verliebt. Hotot ist zwar noch auf meinen Desktop-Rechner installiert. Doch für das Daily Twitter verwende ich eigentlich nur noch ttytter. Auf der Arbeit hat es außerdem den Vorteil, dass das geschäftige Treiben auf der Konsole aussieht, als ob es Arbeit wäre, hehe…

http://www.floodgap.com/software/ttytter/

FYI: Ubuntu 12.04 verträgt sich nicht so gut mit Openbox

Eine komplette Desktop Environment ist schön. Aber auch schwergewichtig. Aus diesem Grund wollte ich von der dicken Gnome 3 wieder zum schnellen Openbox wechseln. Eigentlich kein großer Voodoo. Gäbe es da nicht den tollen Bug, dass GTK3.4 Anwendungen unter Verwendung von Openbox den X-Server von Ubuntu 12.04 zum Abstürzen bringen. Doofe Sache, die hoffentlich bald einen Fix bekommt.

eee 701: Back to Arch

Irgendwie war es ein kurzes Intermezzo. Ende Februar musste ich ein neues Betriebssystem auf meinen betagten Asus eee 701 4G aufspielen. Doch die Suche nach einem geeigneten Betriebssystem für dieses Netbook der ersten Stunde war kein leichtes Unterfangen. Schlussendlich kam ein Linux Mint auf die Kiste und verrichtete mehr oder minder gute Dienste.

Natürlich war dieses Ubuntu Derivat etwas übergewichtig für die schmale Hardware. Trotz installierter und verwendeter LXDE-Oberfläche, war ich gezwungen entweder Gnome3 oder den Mate-Desktop auf der Platte zu halten. Die Deinstallation der einen Desktopumgebung bedingte die Installation der anderen. Unschön, aber konnte ich mit leben. Irgendwann kam aber nach dem Bootvorgang nicht mehr der Login-Manager, sondern verharrte bei den System-Checks. Zumeist dem Batteriestatus, der als „okay“ positiv beendet wurde. Ein Wechsel auf TTY1 war aber jederzeit möglich. Dort konnte ich mich anmelden und ohne Probleme ein startx ausführen. Sicherlich unschön, aber eine schnelle Lösung des Problems ließ sich nicht finden. So lebte ich mit dieser etwas komplizierteren Anmeldung und auch dem Umstand, dass die Soundkarte des eee nicht erkannt wurde.
Vor zwei Tage wollte aber der Xorg-Server gar nicht mehr starten. Ursache: Fehlende oder korrupte Keyboard-Konfiguration. Tolle Wurst, von jetzt auf gleich das System zerschossen – ohne dass ich bewusst irgendwas getan habe. Wenn man von den üblichen Updates absieht.

Also: Linux Mint scheint keine Alternative zu sein. Ich entschloss mich zum einzig richtigen Schritt: Es sollte wieder Archlinux auf das Netbook. Das lief bis zu meinem Fehltritt mit der Paketsignierung sicher, schnell und zuverlässig. Da ich eh Openbox als Windowmanager verwenden wollte, probierte ich Archbang, ein Archlinux-Derivat mit Openbox. Leider brach die Installation immer mit einem undefinierten Fehler ab.
Die Installation des Core-Images der Hautdistribution verlief hingegen schnell und ohne besondere Probleme. Dank guter Einstiegshilfe im Wiki waren alle eventuellen Fragen auch bereits im Vorfällt beantwortet.

Auf einen Displaymanager verzichte ich. Über die TTY kann ich mich bequem anmelden und mit startx Openbox aufrufen. Als Panel dient Tint2, als Terminal xterm und lxterminal. PCManFM ist zwar auch installiert, aber für die wenigen Aufgaben im Dateisystem reicht mir auch die Shell. Mit Chromium als Browser ist das eigentliche Setup (fast) komplett – und belegt unter einem Gigabyte auf der SSD. Was will ich mehr?

Leichte, grafische Twitter-Clients für Linux – Teil 2

Durch die Kommentare zu meiner letzten Suche nach einem geeigneten Twitter-Client, habe ich mir noch mal zwei weitere Programme genauer angeschaut.

Polly (ehemals als Schizobird bekannt): Ein Client, der auf die Verwendung mehrerer Accounts ausgelegt ist. Die Installation erfolgt über ein PPA, die Anmeldung mittels OAuth. Die Optionen erlauben das automatische Kürzen von URLs, optional erst ab einer bestimmten Länge und über drei verschiedene Dienste und diverse Konstellationen für Benachrichtigungen. Zur Darstellung der Tweets kann man unterschiedliche Streams erstellen. Die UI ist sehr simpel und überschaubar gehalten. Was mir etwas fehlt, ist die Markierung von ungelesenen Tweets seit der letzten Aktualisierung.

Hotot ist zwar nur als Alpha erhältlich, doch davon sollte man sich nicht abschrecken lassen. Über die Homepage bekommt man Hilfestellung für die Installation auf Windows, Mac, als Chrome-App und unter Linux. Für Ubuntu findet sich wieder ein PPA, wobei es auch eine gesonderte QT-Variante gibt. Andere Distributionen wie Debian und Fedora haben Hotot bereits in den Repositorys.
Bislang scheint dieser Client nur auf einen Account ausgelegt, der mittels OAuth verbunden wird. Die Oberfläche wirkt sehr modern und kann mit Themes und Effekten noch etwas gepimpt werden. Für Medien gibt es eine Vorschau-Funktion und es stehen drei Dienste für Bilder-Upload zur Auswahl.
Die Darstellung der Informationen erfolgt auch über recht freie Streams, die man auch individuell mit Benachrichtigungen und automatischen Updates versehen kann. Bei aktivierten Effekten ist der Wechsel zwischen den einzelnen Strömen sehr schick anzusehen.
Interessantes Feature von Hotot, sind seine Plugins. Da gibt es eine Content Firewall, Darstellung der Geodaten über GMap, einen Übersetzungsdienst, Statistiken oder Dienste zum später lesen wie Read-It-Later.
Wie auch bei Polly fehlt mir hier die Markierung von ungelesenen Tweets. Doch insgesamt gefällt mir das Look-And-Feel von Hotot so gut, dass es vorerst Turpial als Client abgelöst hat.

Alternativ wurde auch die Verwendung des Twitter-Plugins für Pidgin vorgeschlagen, was ich vor langer Zeit auch mal probiert hatte. Doch hier fehlt es mir am komfort einer vollständigen Applikation. Retweets, Antworten, Suchen, Benutzerinteraktionen ist alles nicht möglich. Dann verwende ich doch lieber die Twitter-Homepage in einem permanent geöffneten Tab meines Browsers (;