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]

09.06.2013

Datenschutz im Internet oder - Anleitung für eine handfeste Paranoia

Die Welt ist schlecht, das wissen wir im Grund unseres Herzens doch alle.
Jeder ist nur auf seinen eigenen Vorteil bedacht. Die Ethik eines Menschen bemessen wir nur noch daran, wie groß der Schaden ist, den er anrichtet, wenn er in seine eigenen Taschen wirtschaftet.

Im Internet ist es genauso wie im echten Leben: Jeder will nur unser Bestes.
Im echten Leben ist unser Bestes natürlich unser Geld.
Im Internet hingegen ist das Wichtigste, was wir haben, unsere Privatsphäre und unsere privaten Daten.

Ich zähle mal ein paar Sachen auf, die mir gerade so durch den Kopf gehen, wie man Privatsphäre verliert, und schlage gegen Ende dann einige Hilfsmittel für die gängigen Browser vor, mit denen jeder ein wenig mehr Kontrolle über seine Privatsphäre behalten und wiedererlangen kann, wenn er sich durch's Netz bewegt.

Das, was ich hier aufzähle, biete ich übrigens auch kostenlos als Vortrag an, z.B. für Schulklassen, Schulelternbeiräte usw. Genaueres hab ich neulich hier schon mal aufgeschrieben.

Zu unseren privaten Daten gehören ganz banale Sachen, die für sich genommen vollkommen harmlos sind. Das Gefährliche daran, wenn man diese Daten im Internet irgendwo preisgibt: das Internet vergisst nichts. Und wenn man mal die Kontrolle verloren hat, kann man diese Daten nicht mehr "einfangen" und zurückholen. Und je mehr dieser "harmlosen" Daten spazieren gehen, desto umfangreicher wird das Bild, das sich jemand von uns machen kann.

Ja nun, aber was ist so gefährlich daran? Je mehr solcher Daten man über sich preisgibt, desto zielgerichteter kann z.B. Werbung zugeschnitten sein. Das ist die eine Seite, die vielleicht für sich betrachtet gar nicht mal so schlecht klingt ... auf den ersten Blick. Preisgegebene Daten können aber auch sein, dass man irgendwann mal private Fotos geteilt hat, die man mit mehr Lebenserfahrung vielleicht lieber doch nicht veröffentlicht hätte.

Übrigens bedeutet "veröffentlichen" nicht nur, dass man seine privaten Urlaubs- oder Party-Fotos bei Facebook + Co. abgibt - es reicht auch, wenn man ein privates Foto an einen Freund oder Liebhaber gibt, der dann irgendwann und irgendwie ein "Ex" wird. Manche "Ex" können ganz schön garstig werden und aus Rache diese sehr privaten Fotos (die mit viel Rosa) ungefragt veröffentlichen. Man kann dann zwar mit rechtlichen Mitteln den "Ex" sehr gut ausbremsen, nichtsdestotrotz sind die Bilder dann in der Welt. Noch ein Randproblem: wenn zwei Jugendliche solche "privaten" Fotos machen und weiterverbreiten, fällt das auch ganz schnell unter Kinderpornographie, und das ist dann sogar strafrechtlich bedeutsam, wenn derjenige über 14 ist, also schon beschränkt strafmündig. Das gibt dann vielleicht sogar einen Eintrag im Bundeszentralregister ("polizeiliches Führungszeugnis"), und das macht sich bei der ersten Bewerbung gar nicht gut ...

Auch, wenn es nicht in den strafbaren Bereich geht, kann es doch sein, dass man verlockt ist, etwas zu schreiben oder zu veröffentlichen, was man später bereut. Faustregel: nur das schreiben, was man derjenigen Person auch direkt in's Gesicht sagen würde. Als Intimitätsregel schlage ich vor, nur solche Daten oder Beiträge zu schreiben, die man auch an einer Kneipentheke in normaler Lautstärke erzählen würde (wo ggfs. auch Fremde mithören könnten).

Zurück zum eigentlichen Thema: das Preisgeben von Daten kann ganz offensichtlich sein: ich gebe meine Adresse, Namen, vielleicht noch Geschlecht, Geburtsdatum, Telefonnummer auf einer Webseite ein, weil mich ein Gewinnspiel verlockt. Das Perfide daran: ein Datensatz wird um so wertvoller für Adresshandelsfirmen, je mehr Zusatzinformationen darin stecken. Simple Listen mit Name und Postadresse gibt es im Tausenderpack für wenige Euronen. Wenn aber noch qualifizierende Informationen enthalten sind, wie z.B. Alter, Telefonnummer, Anzahl der Kinder, Arbeitgeber, Berufsbezeichnung, oder sogar Finanzinformationen (Nettogehalt zwischen x und y €), kann so ein einzelner Datensatz schnell mal 30-40 € wert sein. Eine Firma gibt also eine lächerlich geringe Summe für die Gewinne aus (10 iPads oder so) und gewinnt dadurch im besten Fall einige Tausend Datensätze, mit denen Werbung gemacht werden kann. Mal ehrlich: wer liest das Kleingedruckte und streicht die Einverständniserklärung für Werbung durch? Und: wer glaubt denn ernsthaft, dass sich eine Firma daran hält, wenn man das Kreuzchen bei "erlaubt" nicht macht?

Es gibt auch nicht ganz so offensichtliche Informationen, die man über sich preisgibt: in sozialen Netzwerken. Das ist natürlich zum Einen der Zweck eines solchen Netzwerks (ob das nun Facebook, Google Plus, Xing, LinkedIn oder eher unbekannte wie Diaspora sind, ist unerheblich): man findet Gleichgesinnte, die das Interesse zu einem bestimmten Thema teilen. Mit Hilfe des Internets ist es natürlich leicht, solche Seelenverwandtschaften zu finden. Andererseits gibt man dadurch eine riesige Sammlung von privatesten Informationen über sich preis, mit jedem "Like" oder "+1" weiß der Betreiber des Netzwerks ein Häppchen mehr über den Benutzer. Und wenn ich fünfmal die "Star Trek"-Filme ge-like-d habe, könnte es erfolgversprechend sein, mir die Kinowerbung für den neuesten Film etwas prominenter unter die Nase zu reiben. Oder sogar Werbung für ein Kino in meiner Nähe, verbunden mit der Info, wann der Film dort läuft, und beim Anklicken kann ich gleich Karten reservieren.

Hier sind natürlich auch die "location-based services" gefährlich, also die Dienste, die ich z.B. mit dem Smartphone unterwegs nutze. Nahezu jedes heutige Smartphone enthält GPS-Technik. Das Handy weiß also, wo ich mich gerade befinde. Dienste we "Foursquare" oder "Google Latitude" verwenden diese Daten, um mir regionale Vorschläge zu machen (wo ist die nächste Pizzeria, Geldautomat, Bushaltestelle usw.). Ob das Handy nun "nach Hause telefoniert" und irgendwohin übermittelt, dass ich mich gerade am Ort XY befinde, hängt von den Apps ab, die auf dem Smartphone installiert sind. Hier lohnt es sich auf jeden Fall, während der Installation einer App genau hinzuschauen, welche Rechte diese App anfordert (ich spreche hier hauptsächlich über Android, das ich als Entwickler genauer kenne). Wenn eine "harmlose" App wie z.B. ein Bildschirmschoner oder eine Taschenlampe anfordert, das GPS und die Internetverbindung benutzen zu dürfen, sollten einige Alarmglocken anfangen zu schrillen. Fußnote: es gibt eine tolle App namens "AppGuard", mit der man einer Android-App nachträglich Berechtigungen entziehen kann, auch ohne gerootetes Smartphone (ab Android-Version 2.3).

Letztes Jahr gab es übrigens eine technisch recht interessante, aber vom Prinzip her ganz schön gefährliche App namens "where are the girls" für Apples iPhone. Diese App hat die öffentlichen Abfragefunktionen (die sog. "APIs", "application programming interface") von Foursquare, Facebook und anderen sozialen Netzwerken genutzt, um dem Anwender der App persönliche Daten über "girls" zu liefern, die in der Umgebung sind.

Idee dabei: ich gehe in eine Disco und frage ab, wer sich noch in dieser Disco befindet (das ist genau der Zweck von "foursquare", diese Information zu veröffentlichen). Dann nehme ich den Nutzernamen und frage nach familiären Daten dieser Person bei einem Netzwerk wie Facebook. Dann weiß ich z.B., dass das hübsche Mädchen einen großen Bruder hat, und kann sie ansprechen und dabei diese neu gewonnenen Informationen verwenden, um einen hohen Grad an Vertrautheit herzustellen, indem ich vorgebe, ihren Bruder zu kennen. Der Phantasie sind hier keine Grenzen gesetzt ... Apple hat übrigens diese App recht schnell wieder aus dem App Store entfernt, aber natürlich kann das jeder andere App-Programmierer nachbauen.

Es ist also sehr (in Worten: sehr) sinnvoll, in allen sozialen Netzwerken die Privatsphäre-Einstellungen so restriktiv wie möglich zu setzen, also die Sichtbarkeit so einzustellen, dass nur gut bekannte Personen die eigenen persönlichen Daten und Beiträge sehen können. Leider ist Facebook berüchtigt dafür, häufig neue Funktionen einzuführen und die Grundeinstellungen dafür dann auf "alle Welt kann es sehen" zu setzen. Es ist also ratsam, entweder regelmäßig nachzuschauen oder die Ankündigungen von Facebook zu verfolgen, dass es neue Funktionen gibt, und dann in den Kontoeinstellungen unter "Privatsphäre" wieder alles so einzustellen, dass nur "Freunde" alles sehen dürfen. Schon für "Freunde von Freunden" würde ich als Empfehlung ein wesentlich strengeres Regime einführen, so dass diese deutlich weniger sehen dürfen.


 Übrigens gibt es eine sehr unangenehme Eigenschaft in Facebook, die man unbedingt abschalten sollte: wenn man mit einer Person befreundet ist, können die Apps, die dieser "Freund" einsetzt, meine persönlichen Daten abfragen, bis hin zu Geburtstag, Wohnort, Links und alle Posts, Likes usw..

Nach diesem Exkurs zu den Schattenseiten von Apps und Smartphones und sozialen Netzwerken wieder zurück zum eigentlichen Thema dieses Artikels: Privatspäre und Werbung.

Auf den ersten Blick ist es natürlich eine Win-Win-Situation, wenn ich mehr Daten über mich preisgebe: ich bekomme keine Werbung, die mich nicht interessiert, und der Werbetreibende hat eine sehr hohe "Konversionsrate", d.h. das Verhältnis von Aufwand zu Erfolg bei seiner Werbung ist sehr hoch.

Auf den zweiten Blick verliere ich aber die Kontrolle: wenn ich nämlich mehrfach Interesse an etwas hatte, aber dann den Spaß daran verliere, bekomme ich trotzdem weiter Werbung, auch wenn ich sie später nicht mehr will. Es dauert dann recht lang, bis diese Informationen "veralten". Oder wenn ich nur zu einem bestimmten Zweck ein Geschenk bei Amazon gekauft habe, bekomme ich danach vergleichbare Angebote ("das könnte Sie auch interessieren"). Vor Jahren hab ich mal für einen Spaß ein Schlagerlied aus den Sechzigern gekauft (grässliche Musik!), und ich bekomme jetzt immer noch solche Hinweise. Dumm gelaufen.

Noch unauffälliger sammeln Firmen Informationen über mich, wenn ich Webseiten besuche. Die HTTP-Technik ist an sich konstruktiv (fachchinesisch!) ein "zustandsloses" Protokoll, das bedeutet, die Gegenstelle erinnert sich prinzipiell nicht an mich (kann sie nicht), wenn ich die Webseite zweimal besuche. Das gefällt den Seitenbetreibern aber nicht, deshalb wurden Hilfsmittel erfunden, um diesen Zustand zu "reparieren". Das geschieht mit Hilfe von sogenannten Cookies oder Sitzungskennungen (manchmal auch beides zusammen). Mit Hilfe dieser Techniken kann eine Webseite erkennen, dass ich schon mal da war, und kann dann mittels interner Buchführung nachschauen, was ich beim letzten Mal gemacht habe. Manchmal ist das praktisch (Warenkörbe für das Einkaufen wären ohne Cookies oder Session-IDs kaum möglich). Auf der anderen Seite kann die Webseite darüber auch in Maßen bestimmen, wie lange ich eine Webseite betrachtet habe, d.h. die Dauer meines Besuchs feststellen. Über diese Maßzahl kann also berechnet werden, wie interessant die Webseite für mich war.

Die meisten modernen Webseiten heutzutage arbeiten mit Werbevermarktern zusammen, d.h. sie vermieten einen bestimmten Bereich in der angezeigten Webseite, haben aber überhaupt keine Kontrolle, was dort angezeigt wird. Die Werbung (Text, Bild, Video, Flash) wird von einem Server des Werbedienstleisters geholt und angezeigt. Und hier ist gleich der nächste Kontrollverlust: die Werbung wird zum Einen auf meine Kosten vom Server des Dienstleisters geholt, und der Dienstleister erfährt zum Anderen dadurch von mir selbst, dass ich gerade eine Webseite besucht habe, auf der er Werbung geschaltet hat. Üblicherweise hat mir die Webseite aber gar nicht mitgeteilt, dass sie meine persönlichen Daten (in Form meiner IP-Adresse) an einen Dienstleister weitergibt, indem in der Webseite eine "fremde" URL eingeschmuggelt wird, die mein Browser i.a. automatisch abruft. Es gab zwar diverse Gesetzesänderungen in den letzten Jahren, aber so gut wie niemand hält sich daran, das den Besuchern der Webseiten mitzuteilen. Wohlwollend muss ich sagen, dass Google seit Neuestem einen Hinweis einblendet, dass Cookies verwendet werden. Viele andere tun das (immer noch) nicht.

Gefährlich oder unangenehm wird es dann, wenn die Informationen aus dem Medium Internet verwendet werden, um eine andere Form von Werbung zu transportieren. Hier gab es letztes Jahr ein wenig Aufruhr bei folgendem Fall: ein amerikanisches Versandunternehmen hat ein wenig "Data Mining" betrieben, d.h. einfach mal neue Verknüpfungen zwischen den schon vorhandenen gesammelten Daten hergestellt. Dabei hat sich über mehrere Millionen Datensätze von betrachteten Artikeln des Webshops herausgestellt, dass es ungefähr 25 Datensätze braucht, um mit einer Sicherheit von 98% eine Schwangerschaft einer Besucherin zu konstatieren. Diese Versandfirma hat dann eine Zeitlang zielstrebig Werbekataloge verschickt. In dem bekannt gewordenen Fall war die Besucherin des Webshops minderjährig, und die Eltern wunderten sich zunächst, warum sie einen Katalog mit Babyzubehör in der Post hatten. Mit anderen Worten: das Versandhaus wusste zwei Wochen vor den Eltern, dass die 16-jährige Tochter schwanger war.

Nebenbei: das erinnert mich an die Szene aus "Harry und Sally", als der Spediteur eine Woche vor Harry wusste, dass sich seine Frau Helen von ihm scheiden lassen wollte ("Don't fuck with Mr. Zero"). Sie wollte ihm nicht den Geburtstag versauen ;)

So, nun ist also der Untergang des Abendlands, wenn nicht sogar der Weltuntergang, an die Wand gemalt. Und nun?

Was kann man dagegen machen?
Kann man was dagegen machen?

Ja, man kann! Sogar eine ganze Menge. Leider gibt es keine Patentlösung, man muss für sich selbst einen Kompromiss finden zwischen dem Nutzen, den man selbst aus Webseiten ziehen will, und der Menge an privaten Daten, die man preisgeben will. Wenn man alles abblockt, ist man zwar sicher, aber manche Dinge funktionieren dann einfach nicht. Wie immer im Leben: es ist eine Abwägungssache.

Allein schon mit Bordmitteln kann man in den meisten Browsern einiges an Privatsphäre schützen. Allerdings sind diese Einstellungen meistens global gültig, sie gelten also immer und für alle besuchten Websites. Das ist eher lästig und unbequem, weil es eben doch gewisse Websites gibt, denen man mehr vertraut als anderen. Hier gibt es für die meisten Browser kleine Zusatzpakete ("Add-On" oder "Extension" genannt), die eine Kategorisierung ermöglichen. Man kann damit bestimmte Websites als "vertrauenswürdig" kennzeichnen und sie mit voller Funktionalität benutzen, andere als "bedingt vertrauenswürdig" mit Einschränkungen, und andere Websites werden mit voll aufgedrehtem Mißtrauen besucht.

Umgekehrt gilt: es wurden auch schon Fälle von "undercover" Add-Ons bekannt, die sich im Browser einklinken und "nach Hause telefonieren", hier hat man dann den Teufel mit dem Beelzebub ausgetrieben. Die Add-Ons, die ich vorstelle, halte ich für vertrauenswürdig. Das muss aber nix heißen, ich kann mich auch irren, und Sie müssen mir auch nicht vertrauen ;), schließlich geht es in diesem Artikel um eine Anleitung für den Weg zu einer guten Paranoia ...

Mein Lieblings-Add-On für Firefox ist nicht mehr "Adblock Plus" (deswegen auch kein Link), sondern eine Abspaltung davon namens Adblock Edge, das die allermeiste lästige Werbung ausfiltern kann. Sie wird nicht nur nicht angezeigt, sondern auch nicht von fremden Werbeservern abgerufen, und das ist schonmal eine deutliche Verbesserung. Adblock Plus Edge wird mit "Filterlisten" gesteuert, die man abonnieren kann, oder man kann auch seine eigenen Regeln eingeben, was erlaubt und verboten ist. Dasselbe Problem hier: beim Abruf der Filterlisten teile ich dem Lieferanten der Filterliste mit, dass ich den Werbeblocker einsetze. Der Nutzen überwiegt für mich, so dass ich hier mit nur ganz wenig Bauchschmerzen die Filterliste abonniert habe. Diese Funktion gibt es auch für Google Chrome. Ich empfehle nicht mehr Adblock Plus, weil vor einigen Wochen heraus kam, dass die Firma hinter Adblock Plus andere Webseiten gegen Gebühr auf eine Whitelist nimmt und vorschreibt, wie "akzeptable" Werbung aussehen soll. Diese Geschäftspraktik will ich nicht unterstützen.

Nachtrag (20151111): das Add-On "Adblock Edge" wird nicht mehr weiterentwickelt, stattdessen wird die Verwendung des leistungsfähigeren und schnelleren "uBlock origin" empfohlen. Dieses Add-On gibt es sowohl für Firefox als auch für Chrome.

Als Ergänzung zu sehen ist eine Extension, die ich nur für Google Chrome kenne: Facebook Adblock. Diese Erweiterung verhindert die "sponsored stories", die Facebook ungefragt anzeigt.

Das nächstbeste, das ich fast noch mehr liebe, ist ein Add-On, mit dem man steuern kann, welche Websites Programme im Webcode auf meinem Rechner ausführen dürfen (Javascript, Java, Flash, usw.). Die meisten Schädlinge, die man sich beim Browsen einfangen kann, dringen über Programmfehler im Browser in den PC ein, und davon wiederum die meisten über Code von bewusst oder kriminell verseuchten Websites ("code injection", unsichtbare I-Frames, transparente Layer usw.). Hier kann man also nicht nur etwas für die Privatsphäre tun, sondern auch für die Sicherheit des PCs.

Dieses Add-On gibt es als "NoScript" für Firefox, und für Google Chrome etwas Ähnliches namens "NotScripts". Das sind übrigens zwei verschiedene Produkte. Es gibt auch ein "ScriptNo" des Firefox-Entwicklers für Chrome, aber das halte ich für schlechter.

Ehrlicherweise muss ich dazusagen, dass das Surfen mit einem solchen Skriptblocker unbequemer wird. Viele moderne Webseiten funktionieren erstmal nicht wie gewohnt, manche Seiten werden gar nicht erst angezeigt und man sitzt vor einem weißen Bildschirm, oder das Layout der Seite ist durcheinander oder kaputt. Für diesen Fall (der Browser "kennt" die Website also noch nicht) kann man dann schrittweise Genehmigungen vergeben ("whitelist"), bis die Website korrekt funktioniert, und man hat dann trotzdem unerwünschte Drittseiten ausgeschlossen. Das braucht zugegeben etwas Übung und Erfahrung, bis man herausgefunden hat, was man einschalten bzw. erlauben darf, und was nicht nötig ist. Das ist aber auch eine heilsame Erkenntnis: mit diesem Hilfsmittel wird angezeigt, wieviele verschiedene Quellen befragt werden, wenn man eine "einfache" Webseite abruft, und wieviele Stellen nun Kenntnis davon haben, dass ich gerade eine bestimmte Seite abgerufen habe.

Nebenbei wird der Browser auch ein wenig schneller, wenn man die Werbung nicht abrufen lässt ;)

Was ich prinzipiell bei diesem schrittweisen Vorgehen nicht erlaube, sind Abrufe von Werbedienstleistern. Hier sind mal ein paar aufgezählt, die bei mir keinen Fuß in die virtuelle Tür bekommen:

  • googlesyndication.com
  • googleadservices.com
  • quality-channel.de
  • google-analytics.com
  • ivwbox.de
  • doubleclick.net

Aber dieser Artikel ist ja auch eine Anleitung, um paranoid zu werden, also muss da auch ein bißchen Mühe dabei sein ;)





Übrigens funktionieren die meisten Websites mehrstufig: das sieht man bei "spiegel.de" sehr schön. Mit abgeschalteten Skripten bekommt man nur die Anzeige von "NotScripts", dass "spiegel.de" geblockt wurde. Im ersten Schritt zur Prüfung sollte man nun "spiegel.de" vorübergehend erlauben ("temp").







Die Seite wird nun automatisch neu geladen, und da jetzt die Ausführung von Skripten erlaubt ist, die direkt von "spiegel.de" kommen, wird ein bißchen Code ausgeführt. Aber dieser Code hat es in sich: hier werden Programmteile nachgeladen, die von weiteren Servern wiederum Javascript-Programme holen und ausführen wollen. Probieren Sie's aus! Diese weiteren Dienstleister würde ich an Ihrer Stelle nicht mehr erlauben ;)








Des weiteren, wenn wir gerade von Privatsphäre zu Sicherheit gesprungen sind, noch ein Add-On, das ich sehr gern mag, weil es mir das Gefühl gibt, eine bestimmte Art von Schadsoftware auszutricksen: es heißt "Secure Login" für Firefox und löst ein eigentlich sehr exotisches Problem, das aber wirklich mal vor einiger Zeit von einigen Schädlingen gern verwendet wurde. Diese Schädlinge nutzen aus, dass die Browser zur Bequemlichkeit des Benutzers Namen und Passwörter speicher können (hoffentlich verschlüsselt! Haben Sie das eingeschaltet? Im Firefox unter "Einstellungen" -> "Sicherheit" -> "Master Password"!) und beim Erkennen bestimmter Schlüsselwörter in Webseiten automatisch die gespeicherten Daten in die Formularfelder einsetzen können. Hier kommt nun einiges zusammen: die Formularfelder werden vom Browser-Automatismus recht früh während des Ladens und Anzeigens gefüllt,  und wenn in der Webseite bestimmte Javascript-Funktionen verwendet werden, kann ein Skript im Web-Code diese gefüllten Formularfelder während des Starts ("<body onload=scriptfunktion>") auslesen und (siehe oben) "nach Hause telefonieren". Das Add-On verzögert das Ausfüllen der Formularfelder durch den Browser, und es verhindert ebenfalls bestimmte Mechanismen, derer sich diese Schädlinge bedienen. Für mich ein Muss!

Zurück zur Privatsphäre: ähnlich wie Adblock, das gezielt Werbung verhindert, gibt es ein vergleichbares Add-On, das für den Schutz vor Ausspionieren entwickelt wurde, und auch Aufrufe von Statistikfunktionen verhindert. Es heißt "Ghostery" und macht den Browser zum unsichtbaren "Geist", der eine Website besucht, aber nicht die von externen Dienstleistern eingebundenen Zählfunktionen aufruft (es verhindert also z.B. auch transparente 1x1-Bilder, sogenannte "web bugs", die zum Zählen eingesetzt werden). Außerdem begrenzt es die Lebensdauer von Cookies. Manche Server wollen "unsterbliche" Cookies setzen, damit sie auch nach Jahren den Besucher wiedererkennen, aber das will ich ganz sicher nicht. Cookies können entweder bis zur Beendigung des Browsers am Leben bleiben oder für einen bestimmten Zeitraum (3-30 Tage ist normal).

Manche Websites versuchen auch, unterschiedliche Cookies zu setzen, manche davon kurzlebig, manche dauerhaft. Diese Datenpakete werden vom Server des Anbieters an meinen Browser geliefert und enthalten irgendwelche Daten. Beim nächsten Besuch werden von meinem Browser diese(s) Cookie(s) wieder vorgezeigt und ich bin damit wiedererkennbar. Die meisten Cookies sind übrigens auch verschlüsselt oder wenigstens "verschleiert", teilweise zum Verkleinern, teilweise aber auch tatsächlich, um zu verbergen, was drin steckt. Ein sehr gutes Add-On zum Überwachen und automatischen Aufräumen von Cookies ist "Better Privacy" für Firefox.

Diese Add-Ons überschneiden sich teilweise, man muss sie nicht alle einsetzen, aber jedes von ihnen gibt dem Benutzer ein Stück seiner Privatsphäre zurück. Wenn man mehrere einsetzt, wird der Schnitt besser ;)

In diesem Sinne: lasst uns eine gesunde Paranoia entwickeln!

[Update 20131106: Umbruchfehler, Links eingefügt, Hinweis auf Vortrag]
[Update 20130722: Hinweis auf Adblock Edge statt Adblock Plus]
[Update 20151111: Hinweis auf uBlock origin statt Adblock Edge]

05.06.2013

Verbrauchtes LTE-Volumen protokollieren

Ich beschäftige mich weiter mit der Telekom, heute zur Abwechslung mal wieder ein technischer Beitrag, der beschreibt, wie man den Überblick über das schon verbrauchte Volumen behalten kann.

Bekanntlich ist unser Haushalt seit letztem Jahr mit LTE unterwegs im Internet. Bedauerlicherweise gibt es nur Verträge mit Pseudo-Flatrate, die nach einer bestimmten verbrauchten Datenmenge im Monat von der Nominalgeschwindigkeit ("bis zu" 16 MBit/s) auf DSL-light-Geschwindigkeit (384 KBit/s) gedrosselt werden.

Zu dieser Kontingentierung gehört übrigens auch mein Upload. Wenn ich also Bilder hochlade, um Papierabzüge zu bestellen, wird das voll gezählt.

Um das verbrauchte Volumen abzurufen, gibt es eine Info-Seite bei der Telekom, die mir berichtet, wieviel von meinem Kontingent schon verbraucht ist. Mit ein bißchen Getrickse in einem Skript kann ich daraus die zwei Zahlen extrahieren, die ich wissen will, und die protokollieren.

Mein Artikel besteht also aus zwei Teilen: dem Skript zum Abfragen, und einem (wahlweise zwei) Cron-Jobs zur regelmäßigen Aufzeichnung.

Das Skript ist sehr einfach: es verwendet eine "regular expression" in perl, um die Zahlen und die zugehörigen Maßeinheiten (KB, MB, GB) aus dem HTML-Wust herauszufischen.

Übrigens muss man kein Linux haben, um diese kleinen Hilfsmittel einzusetzen: wget, perl und die GNU Kommandozeilenwerkzeuge gibt es auch für Windows. Alternativ kann man auch die komplette CygWin-Umgebung installieren. Mit einem Cron-Job wird es etwas schwieriger, aber wenn man einen PC hat, der immer angeschaltet ist, kann man mit dem Windows-Befehl at auch so etwas zusammenbauen. Die Hilfefunktion wird mit at /? aufgerufen.

Zurück zum eigentlichen Thema: mein erster Versuch, um das HTML anzuschauen, war übrigens diese Kommandozeile:

wget -SO- http://pass.telekom.de/portal/home |\
  perl -pe 's!>!>\n!go' |\
  grep -B1 verbraucht

Diese drei Befehle fragen die Info-Seite ab (wget), und nach jedem HTML-Tag wird mit einem simplen perl-Einzeiler ein Zeilenumbruch eingefügt. Durch die nun entstandene Zeilenstruktur kann der "grep"-Befehl ein Stichwort finden ("verbraucht") und die gesamte Zeile, in der dieses Stichwort vorkommt, ausgeben. Außerdem hätte ich gern die Zeile davor ebenfalls in der Anzeige (der Switch -B anzahl zeigt soviele Zeilen vorher - "Before" - ebenfalls an - diese Option funktioniert nur beim GNU grep, nicht bei AIX, Solaris, etc.).

Mit genau demselben Prinzip, nur etwas aufgehübscht, funktioniert die eigentliche Protokollierung. Da das Werk als Cron-Job laufen soll, muss ich mich selbst um vernünftige Umgebungsvariablen wie PATH kümmern; in Cron-Jobs gibt es nur Minimaleinstellungen.

#!/bin/sh

PATH=/opt/bin:/usr/bin:/usr/local/bin:/usr/local/sbin${PATH:+:$PATH}

date=
file=

while getopts "df:" opt
do
  case "$opt" in
  d) date="%Y%m%d-%H%M%S ";;
  f) file="$OPTARG";;
  esac
done
shift $(expr $OPTIND - 1)

if [ -n "$file" ]
then
  d="${file%/*}"
  test -d "$d" || mkdir -p "$d"
fi

q=$(wget -qO- http://pass.telekom.de/portal/home |\
  perl -ne '
    print("$1 $2 $3 $4\n")
   
if (m#<span.*?>([0-9,.]+).*([KMG]B)</span> von ([0-9,.]+).*([KMG]B) mit voller Geschwindigkeit verbraucht#i)')
test "$(/bin/tty)" = "not a tty" || date +"$date$q"
test -n "$file" && date +"%Y%m%d-%H%M%S $q" >> $file

Die Ausgabe wird hier auf Wunsch noch mit dem Datum der Abfrage versehen, und wenn man mit -f einen Dateinamen angibt, wird die Ausgabe zusätzlich noch an diese Datei angehängt.

Ein paar kleine Tricks will ich ein bißchen näher erklären:

  • PATH=...${PATH:+:$PATH} - hier prüfe ich, ob in der Variablen PATH überhaupt irgendetwas enthalten ist. Falls ja, hänge ich einen Doppelpunkt und den alten Inhalt hinten dran und setze vorn neue Pfadnamen davor.
  • d="${file%/*}" - Vom Dateinamen in $file schneide ich alles nach dem letzten / ab. Als Ergebnis steht in der Variablen $d der Pfadname der Datei.
  • test -d "$d" prüft, ob dieses Verzeichnis existiert, und erzeugt es ggfs. mit mkdir -p mit allen Unterverzeichnissen dazwischen.
  • In einem Cron-Job ist eine Ausgabe auf die Konsole sinnlos, deshalb prüfe ich, ob der Befehl /bin/tty mir das Ergebnis "not a tty" liefert.
  • Der date-Befehl akzeptiert +Formatstring. Ich baue einfach das aktuelle Ergebnis in den Formatstring mit ein: date +"$date$q"

Mit einem Cron-Job wird dieses Skript nun stündlich aufgerufen:

57 * * * * /usr/local/bin/lte-quota.sh -f /var/spool/lte-quota.txt >/dev/null 2>&1

Und einmal am Tag lasse ich mir den aktuellen Stand auch noch als Mail zuschicken:

1 8 * * * (/bin/tail -1 /var/spool/lte-quota.txt | /bin/mail -s "LTE quota" ths) >/dev/null 2>&1
Das Ergebnis sieht dann bei mir etwa so aus:

20130603-225703 1,7 GB 30 GB
20130603-235702 1,9 GB 30 GB
20130604-005702 1,9 GB 30 GB
20130604-015702 1,9 GB 30 GB
20130604-025702 1,9 GB 30 GB
20130604-035702 1,9 GB 30 GB
20130604-045702 1,9 GB 30 GB
20130604-055702 2 GB 30 GB
[Update: die Telekom-Seite hat sich geändert, im Skript Regex angepasst]

Der Kreishaushalt und die CDU

Und schon wieder überkommt mich das Bedürfnis, einen Leserbrief zu schreiben.
Die Unsitte, über Pressemitteilungen zu kommunizieren, auch wenn man nix zu sagen, macht auch vor der CDU nicht halt.

Alexander Kartmann von der Butzbacher CDU und Mitglied im Kreisparlament, spricht recht vage von einem "Verdacht", dass der von Kämmerer Joachim Arnold vorgelegte Haushalt, "schöngerechnet" sei und der vorjährige Abschluss absichtlich besonders schlecht.

Zu solchen Verdächtigungen habe ich eine Meinung:

Lieber Herr Kartmann junior,
Ihre Pressemitteilung zum vorgelegten Haushalt des Kreises ist ja unterste Schublade.
Von einer Opposition im Kreistag erwarte ich als Steuerzahler - der Sie und Ihre Fraktion immerhin finanziert - konstruktive, sachliche Arbeit.
Die Opposition soll die Regierung kontrollieren, das ist ihre und Ihre Rolle in einer demokratischen Gesellschaft.
Wenn Sie nun einen "Verdacht" aussprechen, dass die Zahlen frisiert wurden, um in diesem (Wahl-)Jahr besonders gut auszusehen, werfen Sie unsubstantiiert ganz schön schlimm mit Dreck. Vermutlich in der Hoffnung, dass dann "irgendetwas" hängen bleibt in der Erinnerung der Leser? Aber das verstehe ich nicht unter Kontrolle.
Sie behaupten ohne jegliche Begründung, dass hier Bilanzfälschung betrieben wird? Haben Sie Belege dafür? Dann liefern Sie die Belege! Sie rücken die Mitarbeiter, die an der Bilanz beteiligt waren, in die Nähe von Straftätern. Ist Ihnen das bewusst? Eine Bilanz wird aufgrund rechtlicher Vorschriften erstellt. Haben Sie einen Nachweis, dass Vorschriften missachtet wurden? In Ihrer Pressemitteilung finde ich davon kein Wort. Sie sprechen von Erhöhungen bestimmter Umlagen zu Lasten der Gemeinden und Kommunen. Könnte hier nicht vielleicht eine entsprechende vertragliche Verpflichtung aus dem Rettungsschirm des Landes zugrunde liegen? Aber das wäre ja politisch unbequem, zur Abwechslung mal sachlich Für und Wider abzuwägen.
Herr Arnold hat jahrelang als Wölfersheimer Bürgermeister bewiesen, dass er gut  wirtschaften kann. Wölfersheim steht im Vergleich zu anderen Kommunen gut da und hat so gut wie keine Schulden. Es gibt also per se keinen Anlass, ihm aufgrund der beleglosen Verdächtigungen, die Sie hier äußern, zu mißtrauen.
Darf ich daran erinnern, dass die Kürzungen im kommunalen Finanzausgleich in Höhe von über 340 Mio. Euro von der CDU-geführten Landesregierung beschlossen und gerade kürzlich vom Staatsgerichtshof als verfassungswidrig bezeichnet wurden? In der FAZ war von einem "juristischen Debakel" zu lesen. Begründung des Gerichts: es wurde gekürzt, ohne vorher zu prüfen, welchen Finanzbedarf die Kommunen überhaupt haben. Unbegründete Kürzungen mit dem Rasenmäher also. Genauso unbegründet wie Ihr "Verdacht" der Schönfärberei.
Der Kreis und die Kommunen haben also aufgrund rechtswidriger Finanzkürzungen Einsparungen vornehmen müssen. Worüber genau wollten Sie sich nochmal in Ihrer Pressemitteilung aufregen? Die CDU hat diese Misere doch erst verursacht!

31.05.2013

Die Telekom und die Störungshotline

Eben gerade hat es die Telekom überraschend geschafft, mich positiv zu verblüffen.

Ich bin ja eher gern und schnell dazu bereit, zu meckern, aber wer genau hinguckt, stellt fest, dass diesmal wirklich das Tag "Gejammer" bei diesem Artikel fehlt ;). Aber so ganz ohne geht es nicht, deswegen hab ich ja auch wieder ein Thema zum Schreiben ;)

Kurz nach 10 Uhr fiel unser LTE plötzlich und unerwartet aus. Eben noch ein paar Dinge bei Google gesucht, und plötzlich ging nix mehr ...

Ein bißchen hab ich mich schon daran gewöhnt, dass der LTE-Router nicht so das zuverlässigste Stück Technik im Haushalt ist, und deshalb einen nächtlichen Cron-Job im Server eingerichtet, der einen Reset des LTE-Routers durchführt.

Spontan und unerwartet fiel also die Internet-Verbindung aus, und als ich bei der Telekom-Hotline anrief, um eine Dreiviertelstunde später die Störung zu melden, befürchtete ich schon das Schlimmste ... Der Sprachcomputer nahm meine Kategorie "Störung" entgegen und bestand dann darauf, dass ich die Nummer des gestörten Anschlusses eingab. Nach einigen Knacksern und dem "Durchführen einer vorläufigen Prüfung" wurde mir dann mehrfach hintereinander mitgeteilt, dass "alle Plätze belegt" seien und ich später wieder anrufen solle.

Na klasse, die Telekom rechnet sich ihre SLAs schön ... In meinem Vertrag bzw. in den AGB steht drin, dass sie innerhalb von 24 Stunden auf Störungsmeldungen reagieren müssen. Da macht es sich in der Statistik doch gut, wenn man die Störungsmeldungen einfach noch ein bißchen hinauszögert oder gar nicht erst annimmt.

Nach dem dritten oder vierten Versuch und dem ebensovielten virtuellen Hinauswurf fing ich an, mit den Servicenummern zu spielen (0800-330-xy00) und wenige Versuche später hatte ich dann tatsächlich ganz ohne Warteschleife einen echten Menschen am Telefon und konnte mein Leid loswerden. Darin enthalten war ausdrücklich der Hinweis, dass der LTE-Router keine Verbindung ins Internet bekommt und gelegentlich "Fehler 44 beim Verbindungsaufbau" anzeigt. Allerdings konnte die Hotline-Dame niemanden in "der Technik" erreichen und bat mich, ein paar Minuten später nochmal anzurufen.

Wenig später dann ganz überraschend (wirklich ein Tag voller Wunder) ein Rückruf auf dem Handy von derselben Dame, dass sie doch jemanden in der Technik erreicht habe und meine Störungsmeldung weitergegeben wurde. Wahnsinn!

Wenige Minuten später ein Anruf auf der Festnetznummer, und das folgende Gespräch war so unterhaltsam, das hat mir wirklich den Freitag gerettet!

Eine andere Dame war in der Leitung, die annahm, ich hätte ein "PC-Problem". Vom Teamleiter wurde ihr das Problemticket zugeteilt, und der Anrufer (also ich) wäre wohl so ein "altes Op'chen" und hätte wohl ein Problem, weil er mit seinem PC nicht ins Internet kommt. Wir konnten das Mißverständnis dann schnell aufklären, dass es am LTE-Router liegt und kein PEBKAC ist. Ich fand es sehr schmeichelhaft, dass sie während unseres Gesprächs meinte, dass ich am Telefon nicht wie ein alter Opa klinge, ganz im Gegenteil. Hach, war das nett ;). Dabei geh ich doch auch schon auf die Fünfzig zu ...

Mittlerweile schlug die SMS mit der Ticketnummer bei mir auf, und eine knappe Stunde später lief wieder alles. Juhu.

Und nochmal ein paar Minuten später kam nochmal ein Anruf auf dem Handy von einer weiteren Dame aus "der Technik", die zuerst nachfragte, ob meine Telefonleitung immer noch gestört sei. Ich wies sie darauf hin, dass es um LTE geht und schon gelöst ist, und fragte sie, warum ich bei der Störungsannahme eine Telefonnummer angeben musste. Sie lachte und konnte mir dann freundlicherweise noch eine spezielle Hotline-Telefonnummer für LTE-Probleme mitteilen: 0800-311-3221.

Im  großen und ganzen lief diese Störungsmeldung und -behebung erstaunlich erfolgreich ab, und ich bin positiv überrascht, wie intensiv der Kundenkontakt ist. Wenn auch die Störungsannahme mich erst mal als "alten Opa mit PC-Problem" eingeordnet hat ;)

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.

05.05.2013

Die Frankfurter Rundschau regt mich schon wieder auf

In der Samstagsausgabe vom 04.05.2013 ist schon wieder ein Artikel vom selben Journalisten, dem ich letzte Woche schon geschrieben habe zum selben Thema DSL-Drosselung. Diesmal führt er ein Interview mit Prof. Torsten Gerpott von der Uni Essen, dort hat er den Lehrstuhl für Telekommunikationswirtschaft inne. Ich finde das Interview sehr schlecht.

Leserbrief zu „Interview zu Drosselkom“ von Hr. Wenzel, FR vom Sa. 04.05.2013

Lieber Herr Wenzel,

Sie haben schon wieder so einen unkritischen Artikel zur DSL-Drosselung der Telekom veröffentlicht.

Ihr Experte behauptet ohne Quellenangabe, dass Deutschland beim Kabelausbau im 16-MBit/s-Bereich weit vorne liegt. Ich empfinde den 18. Platz nicht als "weit vorne".

Die Studie der Breitband-Rangliste wird seit 2008 jährlich von der Oxford University durchgeführt und von Cisco Systems in Auftrag gegeben. Innerhalb dieser Studie wird eine Rangliste nach Werten erstellt, welche die Qualität der Breitbandnetze (vor allem die Geschwindigkeit) und deren Verbreitung in städtischen und ländlichen Gebieten messen. Spitzenreiter ist Südkorea mit einer Haushaltsanschlussquote von 100%. Die Downloadgeschwindigkeit beträgt hier 33,5 Megabit pro Sekunde, die Uploadgeschwindigkeit 17Mbps. Mit dem weiter hinten liegenden 18. Platz und einer durchschnittlichen Geschwindigkeit von 11,63Mbps (D) bzw. 1,28Mbps (U) wird deutlich, dass in der Bundesrepublik noch Nachholbedarf besteht. Die Anschlussquote hierzulande beträgt 66%. (Zitiert aus DStGb-Newsletter).

Machen Sie doch mal eine Umfrage, wer die "bis zu" 16 MBit/s auch wirklich bekommt. Ich wette mit Ihnen um einen Meter Glasfaser, dass die meisten Telekom-Kunden irgendwo zwischen 8 und 12 MBit/s herumdümpeln. Bezahlen dürfen sie aber trotzdem den Preis für 16 MBit/s.

Außerdem behauptet er auch wiederum ohne Belege, dass es "einige wenige Vielnutzer" gibt, die deshalb unsolidarisch mehr Geld für den kommenden Ausbau bei der Telekom abliefern sollen. Der Anschluss als solcher hat doch überhaupt nichts damit zu tun, wie stark er genutzt wird! Meiner Meinung nach sollte der grundsätzliche Anschluss mit einer menschenwürdigen Geschwindigkeit für alle gleich viel kosten.

Ich bin gern bereit, für eine höhere Geschwindigkeit mehr zu bezahlen, aber eine Drosselung auf 384 KBit/s ist moderne Folter. Wenn sogar die veraltete Breitbandstrategie der Bundesregierung von 2010 ein Ziel von 1 MBit/s vorgibt, kann eine Drosselung auf 384 KBit/s nur ein schlechter Scherz sein.

In meinem ursprünglichen DSL-Vertrag (von 2004 etwa) steht auch drin, dass ich aufgrund "technischer Gegebenheiten" vielleicht nur 384 oder 768 KBit/s bekommen werde, aber trotzdem für 1 MBit/s bezahlen muss.

Ich kann die "technischen Gegebenheiten" nachvollziehen, weil ich mich ein bißchen für diese Technik interessiere, aber nicht die geschäftlichen Konsequenzen, die die Telekom daraus ableitet.

Die Konkurrenz z.B. bietet auf der gemieteten "letzten Meile" meistens höhere Geschwindigkeiten an, weil sie die Toleranzgrenze für die sog. "Dämpfung" aggressiver einstellen, auch wenn die Entfernung von der Basisstation (DSLAM) höher ist als jeweils vorgesehen. Das erlaubt höhere Geschwindigkeiten, kann aber zu gelegentlichen Ausfällen führen, wenn sich die beiden Gegenstellen erst wieder auf bestimmte Übertragungsmechanismen einstellen müssen (nennt sich "Re-Training"). Mir wären gelegentliche kurze Abbrüche lieber als dauerhaftes Langsamsurfen.

Auf die ländlichen Gebiete gehen Sie im Interview kaum ein. Es wird am Rand erwähnt, dass die Telekom sich insbesondere in Städten engagieren will, weil hier mit wenig Aufwand viel Rendite erzielt werden kann. Der Ausbau auf dem Land ist Ihrem Experten aber lediglich ein Schulterzucken wert. Die Gekniffenen sind aber hauptsächlich die Menschen auf dem Land! Die Landeier dürfen also mit langsamen Anschlüssen leben, sollen aber auch kräftig zahlen und sich solidarisch zeigen. Hört sich doch merkwürdig an, oder?

Das Ziel der Breitbandstrategie der Bundesregierung, bis Ende 2010 alle Haushalte flächendeckend mit Breitbandanschlüssen von mindestens 1 MBit/s zu versorgen, wurde verfehlt und wurde jetzt einfach in die Zukunft verlegt, außerdem mit Mobilfunk-Lösungen wie LTE krückenhaft geflickt. Leider haben die LTE-Anschlüsse denselben Nachteil, nur noch schlimmer: eine Zwangsdrosselung nach 10/15/30 GB im Monat (bei Telekom, Vodafone ähnlich), je nach Vertrag. Man kann einmalig für 14,95 nochmals Kontingent nachkaufen, aber dieses nachgekaufte Kontingent verfällt am Monatsende. Viele Kunden werden also nicht am 28. nochmals 14,95 bezahlen; das Geld wäre größtenteils zum Fenster hinausgeworfen.

Genau das ist aber nicht der Sinn einer deutschlandweiten Breitbandpolitik! Die sog. weißen Flecken auf dem Land hinken dann immer hinterher. Es klingt ja so toll, dass ich zu einem anderen Anbieter gehen könnte. Das ist insofern korrekt, als der "andere Anbieter" dann die letzte Meile von der Telekom anmietet. Das ist aber auch nur möglich, wenn diese letzte Meile nicht mit "DSL Vectoring" unter die alleinige Kontrolle der Telekom zurückgeholt wird. Die Kabelgesellschaften haben denselben Standpunkt wie die Telekom: ein neues Kabel wird nur vergraben, wenn sich genügend Interessenten finden. Mein Wohnort z.B. bekommt in den nächsten zehn Jahren sicherlich kein Kabel, und von Glasfaser kann ich nur träumen.

Insgesamt gesehen finde ich das Interview sehr schwach und einseitig und Sie hätten ruhig mit mehr Fakten kritischer nachfragen sollen. Außerdem würde ich gern wissen, ob Ihr interviewter Experte oder sein Institut irgendwelche finanziellen Beziehungen zur Telekom hat. Es soll ja vorkommen, dass Firmen Drittmittel an Unis geben und forschen lassen. Dann könnte ich dieses Hurra-Interview besser einordnen.
[Update 05.05.2013: Quelle für Zitat Breitbandstudie 18. Platz D eingefügt]

04.05.2013

Noch mehr Cyanogenmod im Haus

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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