Android ohne Google – Going fully Open-Source: Teil 1 (Gastbeitrag)

Es ist nicht zu übersehen, dass wir hier im Blog aktuell großes Interesse an Lineage OS haben. Ich selbst habe vor einigen Monaten in einem Beitrag beschrieben, wie das Custom-ROM meinem betagten HTC One (M8) neues Leben eingehaucht hat und dann berichtet, wie sich dadurch meine Haltung zu teuren Smartphones ganz grundsätzlich verändert hat. Auch mein Gastautor LRZ hat sich dem Custom-ROM-Abenteuer jüngst gestellt, will aber noch einen Schritt weiter gehen: Ein sicheres und datenschutzfreundliches Android-Phone ohne Google-Account mit trotzdem hohem Bedienkomfort. Wie er das anstellt, lest ihr in diesem ersten Beitrag unserers Zweiteiler, DMM.

Von Loriot ist der berühmte Spruch „Ein Leben ohne Mops ist möglich, aber sinnlos.“ überliefert. Gilt das auch für ein Android-Gerät ohne Google-Anbindung? Für die meisten Nutzer_innen stellt sich die Frage natürlich überhaupt nicht. Ein im Handel erworbenes Android-Gerät ist – jedenfalls außerhalb des asiatischen Marktes – mit an Sicherheit grenzender Wahrscheinlichkeit mit Google-Apps bestückt und bereits bei der Ersteinrichtung wird ein Google-Account verlangt. Es gibt im Internet zwar haufenweise Anleitungen für eine datensparsamere Nutzung von Google-Android, aber ich halte das für Augenwischerei: Bei allen Datenschutz-Einstellungen, die auch ein unverbasteltes Android bietet, sind Googles Apps immer noch tief ins System eingegraben und viele Systemfunktionen unterliegen nicht der Kontrolle der Nutzer_innen. Hier im Artikel soll es deshalb um eine vollständige Entkopplung eines Android-Systems von Google und eine weitere Härtung in Richtung Datenschutz und -sicherheit gehen.

Zur Klarstellung: Ich werde trotzdem kein Google-Bashing betreiben. Ich bin dem Unternehmen sogar dankbar, ein im Kern freies mobiles Betriebssystem zu entwickeln und zu unterstützen, wodurch offene Nutzungsformen überhaupt erst ermöglicht werden. Großen Dank bin ich auch dem Blogger Mike Kuketz schuldig, dank dessen Artikelreihe „Your Phone, your Data“ ich vor einigen Jahren mit einem Nexus 7 (2013) meine ersten Schritte in die Android-Welt unternommen habe. Hier im Text und auch im zweiten Teil werdet ihr deshalb noch einige weitere Links auf seinen Blog finden. Dieser Artikel baut auf den damals gewonnenen Erkenntnissen auf, ist aber etwas konkreter auf den aktuellen Custom-ROM-Platzhirsch Lineage OS ausgerichtet.

Die Installation von Lineage OS

Für die Anleitung zur Installation von Lineage OS kann ich guten Gewissens auf den Artikel hier im Blog verweisen. Mit der dort verlinkten Anleitung ist es relativ einfach ein Custom-ROM auf das Telefon zu bringen. Weil bei mir jüngst zufälligerweise ein Gerätewechsel anstand, ich wenig Lust und Zeit für die Recherche nach einem geeigneten Gerät hatte und mir alte Hardware auch irgendwie sympathisch ist, habe ich mir kurzerhand ebenfalls ein altes HTC One (M8) besorgt und es direkt mit Lineage OS bestückt.

Die Google Apps, die man bei Custom-ROMs aus Lizenzgründen üblicherweise manuell über das GApps-Paket nachinstallieren muss, habe ich natürlich weggelassen. Zusätzlich habe ich noch das Root-Addon installiert, welches notwendig ist, um das System sinnvoll einzuschränken. Die Diskussion pro und contra Root möchte ich hier ansonsten aber nicht groß anreißen. Ich kann mir ein Gerät ohne Root-Rechte jedenfalls nicht vorstellen und möchte darauf nicht verzichten. Das soll aber bitte jeder für sich selbst entscheiden. Ja, Root hebelt auch sinnvolle Sicherheitsmechanismen aus, die von Angreifern genutzt werden können. Als Datenschutz-Enthusiast ist das für mich aber nicht die entscheidende Baustelle. Mir geht es vor allem darum, maximale Kontrolle über mein System zu haben, um der Überwachung meines Geräts durch die Big Five des Internets etwas entgegenzusetzen.

FreeCygn: Closed-Source-Reste entfernen

Lineage OS ist – genau wie der Vorläufer CyanogenMod – kein explizit auf Open Source ausgelegtes Projekt. Das ist aber auch nicht weiter schlimm in meinen Augen. Primär gilt den vielen fleißigen Entwicklern mein unendlicher Dank. Sie erhalten das großartige Projekt am Leben und ermöglichen somit erst eine Alternative zur Google-Anbindung für die mehr oder weniger breite Masse. Lineage OS hat allerdings noch einige unfreie Bestandteile, welche proprietären Code von Google beinhalten oder darauf aufsetzen.

Aber auch hierfür gibt es eine Lösung in Form von FreeCygn („free cyanogen“). Man muss dazu lediglich die Installer-Zip für CyanogenMod 13 herunterladen und die hier unter „Build Instructions“ beschriebene Anleitung zum Austausch von zwei Dateien in der Zip-Datei befolgen und schon hat man eine für Lineage OS anwendbare Installationsdatei. Ich habe die so angepasste Datei kurzerhand über mein laufendes System geflasht und hatte keinerlei Probleme. Normalerweise würde ich diese „Dirty Install“-Variante aber natürlich nicht empfehlen. Im Ergebnis wird Lineage OS dadurch von bestimmten unfreien Bestandteilen bereinigt, die keiner vermissen wird (Stock-Browser, Clock-Widget etc.) und welche auch nach einem Update des Betriebssystems nicht wieder kommen (sollten).

Alternative App-Stores

Um Apps auf dem Gerät installieren zu können, braucht es natürlich grundsätzlich keinen App-Store. Unter Android können im Grunde Apps auch immer direkt manuell installiert werden, wenn man die .apk-Datei auftreiben kann. Für die Installation ist dazu lediglich nötig, in den Geräteeinstellungen unter „Sicherheit“ die „Unbekannten Quellen“ zu aktivieren. Komfortabler ist es aber natürlich, nicht ständig selbst im Web nach den Apps suchen zu müssen, weshalb ich einen alternativen App-Store installiert habe: F-Droid, einen App-Store der ausschließlich Open Source Software bereitstellt. Enthält eine App unfreie Bestandteile, erhält man einen entsprechenden Warnhinweis (z. B. bei Verwendung urheberrechtlich geschützter Bestandteile oder proprietärer Cloud-Services). Meiner Meinung nach bietet F-Droid ein Vollsortiment für alle erdenklichen Einsatzszenarien. Darunter sind auch viele Apps, welche im Play-Store zu finden sind und als freie Varianten haben diese oft sogar einen erweiterten Funktionsumfang.

F-Droid hat natürlich auch eine Update-Funktion, allerdings müssen die Updates (noch) manuell eingespielt werden. Ein automatischer Updater ist für die nächste Version aber geplant. Um Zugriff auf alle Apps zu erhalten, ist es sinnvoll, alle vier in der Standard-Installation enthaltenen Repositories zu aktivieren (per Default ist nur das Haupt-Repository aktiv). Die gewählten Repositories werden von den Update-Servern heruntergeladen und offline in F-Droid abgelegt, so dass man immer Zugriff auf die jeweils aktuellen App-Kataloge hat. Ich werde im geplanten zweiten Teil dieses Artikels noch auf einzelne empfehlenswerte Apps genauer eingehen.

Einrichtung eines VPN-Dienstes

Ein sicherlich kontroverses Thema ist die Nutzung eines VPN-Dienstleisters. Diese Dienste schleusen den Datenverkehr immer über Umwege ans Ziel. Die Webseiten und App-Server sehen also nicht die mir vom Provider zugewiesene IP-Adresse, sondern die des VPN-Servers. Der eigentliche Provider (oder auch der Router des genutzten WLANs) wiederum sieht nur eine verschlüsselte Verbindung zum VPN-Dienstleister. Viele VPN-Anbieter erlauben auch, aus mehreren auf der Welt verteilten Servern zu wählen. So lässt sich über entsprechende IP-Adressen die Herkunft meines Datenverkehr fast beliebig einer bestimmten Region zuordnen. Nicht selten werden VPN-Dienste daher auch weniger aus Sicherheitsgründen genutzt, sondern um das Geoblocking großer Streaming-Anbieter zu umgehen.

Kritisiert werden die VPN-Anbieter hingegen oft für haltlose Werbeversprechen von einer angeblichen Anonymität. Derartiges Marketing ist in der Tat Quatsch: Der VPN-Anbieter kann mich anhand der Einwahl-IP identifizieren und bekommt meinen gesamten Traffic mit. Die heikle Frage ist dann, was er damit macht und welche (staatlichen) Stellen darauf Zugriff erlangen können. Für mich ist das VPN ein zweiter Provider, der im Gegensatz zu den deutschen Providern eben etwas weniger Daten von mir speichert und meine IP-Adresse gegenüber Beobachtern im Internet zumindest verschleiert.

Ich lasse die Katze auch direkt aus dem Sack: Ich habe mich für Cyberghost entschieden. Warum? Sitz außerhalb der Five-Eyes-Staaten, konsequente No-Log-Policy, regelmäßige Transparenzberichte und die Möglichkeit der anonymen Bezahlung. Ich habe mir die Jahreslizenz im örtlichen Elektronikmarkt geholt, bar bezahlt und dabei die Kapuze tief ins Gesicht gezogen. Der letzte Punkt ist mir wichtig (nicht die Kapuze): die anonyme Zahlung. Damit kennt der VPN-Dienstleister nur das notwendige Minimum an identifizierenden Informationen, nämlich meine reale IP und meine (größtenteils SSL-geschützten) Traffic-Informationen. Eine E-Mail-Adresse zur Anmeldung ist nicht erforderlich, für eine Rücksetzung des Kontos habe ich eine PUK auf meinem Rechner. Eine Bezahlung per Bitcoin ist natürlich auch möglich.

Da ich die VPN-Verbindung nicht über die proprietäre Hersteller-eigene App herstellen möchte, nutze ich OpenVPN. Das ist ein wenig Mehraufwand, weil man über den Account bei Cyberghost erst die entsprechenden Profile erstellen und in OpenVPN importieren muss, aber dass man für eine völlige Open-Source-Lösung ein paar Extrarunden drehen muss, habt ihr wohl mittlerweile bemerkt.

Im Ergebnis läuft anschließend jede Datenverbindung über einen Server meiner Wahl. Beim Provider oder in WLANs hinterlasse ich damit keine einfach zu identifizierenden Spuren oder Informationen über Webseiten und Dienste die ich benutze. Gerade unterwegs fällt es mir damit deutlich leichter, mich in mir unbekannte Netze, z.B. in Hotels und Cafés, einzuwählen.

Härtung mit der Firewall AFWall+

Das Kernstück eines gehärteten Androiden ist ohne Zweifel aber die Firewall. Das ist die erste App, welche Root-Rechte benötigt, weil ein Eingriff in die iptables in der System-Partition notwendig ist. Die App AFWall+ ist in F-Droid verfügbar und funktioniert nach der bewährten Methode „block all“. Es kann also mittels einer Whitelist selbst entschieden werden, welche Apps Zugriff auf das Internet erhalten. Dabei kann unterschieden werden zwischen mobilem Datenzugang, WLAN, VPN oder Roaming.

Ich bin recht restriktiv an die Sache herangegangen. Zugriff erlaube ich ausschließlich über VPN und nur für Apps die dauerhaft genutzt werden, also Browser, E-Mail, Messenger und Apps für YouTube oder Twitter. Keine der System-Apps erhält Zugriff, weil ich das nicht für erforderlich halte. Ich stelle meine Uhr einfach selbst, statt auf eine automatische Zeit-Synchronisierung zu setzen und hole mir Updates für Lineage OS regelmäßig manuell ab.

Ein kleines Beispiel zur Verdeutlichung: Die Android-System-App (App-ID 1000) verbindet sich bei jedem Einschalten des Netzes mit dem Server connectivitycheck.android.com, um zu testen, ob die Verbindung steht. Es handelt sich dabei um einen Google-Server und ich habe keine Kenntnis, welche der übermittelten Daten gespeichert oder verarbeitet werden. Mit AFWall+ wird diese Verbindung blockiert. Das WLAN-Statussymbol zeigt dann zwar „Connected, no internet“ an, aber der Netzzugriff funktioniert natürlich trotzdem.

Apps, die Daten unregelmäßig lokal herunterladen müssen, erhalten nur dann Zugriff, wenn ich diese Daten aktualisiere. Ein Beispiel wäre OsmAnd~ für die Offline-Navigation. Die benötigt meist nur alle paar Monate Netzzugriff, um das Kartenmaterial zu aktualisieren. Ich möchte daher vermeiden, dass solche Apps, welche primär als Offline-Apps arbeiten, bei jedem Start aus Gewohnheit den Update-Server kontaktieren. Genau das versucht OsmAnd~ laut Log der AFWall+ aber (bei mir dank blockiertem Netzzugriff natürlich erfolglos).

Bei dem Einstellungen von AFWall+ ist einiges zu beachten: Der „DNS-Proxy via netd“ muss deaktiviert sein, damit DNS-Abfragen nicht an der Firewall vorbei stattfinden. Daher ist eine Freigabe für alle genutzten Verbindungsarten für »Apps running as root« notwendig. So kann alles fein säuberlich von der AFWall+ kontrolliert werden. Auch OpenVPN benötigt diese erweitere Freigabe, um die Verbindung ins VPN überhaupt herstellen zu können. Zusätzlich habe ich Verbindungen mit dem Protokoll IPv6 deaktiviert, Verbindungen sind also nur auf Basis von IPv4 erlaubt. Ich habe dadurch keinerlei Einschränkungen und muss mich nicht mit möglichen Leaks der Browser über IPv6 herumschlagen.

Bei der Gelegenheit ein Praxis-Tipp für fremde WLANs, welche eine Bestätigung der AGBs erfordern: Normalerweise übernimmt so etwas die App „Captive Portal Login“, welche aber wiederum zum Test eine Google-Website öffnet, was ich nicht möchte. Ich erlaube dann temporär einem Browser Zugriff auf das WLAN und versuche, den Router mit der gängigen IP-Adresse 192.168.1.1 direkt anzusprechen. Das hat bislang in den meisten Fällen geholfen, anschließend kann das VPN starten und gut.

Zusätzlich zu den Einstellungen an der Firewall nutze ich das Rechtemanagement, das seit Android 6.0 „Marshmallow“ sogar standardmäßig in Android vorhanden ist, und verbiete Apps, welche definitiv nicht ins Netz sollen den Zugriff über die App-Einstellungen. Das geht jedoch nicht für alle Anwendungen. System-Apps lassen sich damit nicht entrechten. Aber genau dafür ist ja dann die Firewall zuständig. Daher ist für mich Root auf Android auch klassisch unersetzlich.

Die ganzen Einstellungen sind sicher nicht trivial, daher noch zwei weitere Hinweise für mögliche Interessierte: Nutzt häufig die Backup-Funktion des Custom-Recoverys. Es experimentiert sich wesentlich entspannter, wenn man das angerichtete Chaos in fünf Minuten wieder beseitigen kann. Als zweites möchte ich erneut auf Mike Kuketz verweisen, der hat in der oben bereits erwähnten Artikelreihe der AFWall+ einen eigenen Beitrag gewidmet. Ein genaues Lesen lohnt sich wirklich. Auch deshalb, weil die AFWall+ noch mehr kann, als hier angesprochen. Mit Skripten lassen sich ganze IP-Bereiche blockieren und damit zum Beispiel sämtliche Berührungspunkte zu Google oder Facebook unterbinden. So weit bin ich allerdings (noch) nicht gegangen.

Ein letztes Wort zur Firewall aus Sicherheitssicht: Damit wird ein zentrales Problem von Android, nämlich die Tatsache, dass jede App Netzzugang erhalten kann, wesentlich gemildert. Jede neu installierte App muss von Hand in der AFWall+ freigeschaltet werden, Probleme mit Malware-Apps oder Datenschleudern (Stichwort: Taschenlampen-App mit Zugriff auf Galerie und Kontakte) werden damit auch nach versehentlicher Installation erst einmal ausgebremst.

Dabei will ich es für den ersten Teil des Artikels auch bewenden lassen. Im zweiten Teil soll es dann um die Einrichtung von Offline-Ortungsdiensten, anonymes Surfen mit TOR, die Verschlüsselung des Gerätes und um Empfehlungen für einzelne Apps und Dienste gehen. Ich freue mich natürlich bereits jetzt auf Eure Kommentare.

Yours truly, Lurz!

4 Kommentare

Artikel kommentieren

Dein Kommentar wird in der Regel sofort veröffentlicht. Bei erhöhtem Spam-Aufkommen kann es aber zu Verzögerungen kommen. Hab dann bitte einfach Geduld. Zur Erkennung von Spam verwendet das Blog ein Plugin, das den Inhalt des Kommentars, seine Uhrzeit sowie einige weitere Daten, wie zB enthaltene URLs, berücksichtigt. Bitte beachte deshalb die Datenschutzhinweise zur Kommentarfunktion.

Notwendige Felder sind mit * markiert.