Mastodon IzzyOnDroid


Say thanks!
Privacy Links
↓ Your product here? ↓
Das Inoffizielle Android-HandbuchAndroid kennenlernen, Tipps & TricksDas Inoffizielle Android-Handbuch
Android kennenlernen, Tipps & Tricks
Für EUR 16,99 bei Amazon kaufen
Das Inoffizielle Android SystemhandbuchTiefer ins System einsteigenDas Inoffizielle Android Systemhandbuch
Tiefer ins System einsteigen
Für EUR 7,00 bei Amazon kaufen
Die besten Android-AppsDen Androiden austattenDie besten Android-Apps
Den Androiden austatten
Für EUR 5,00 bei Amazon kaufen
 
enhelp

Android ohne Google 5: Den Droiden befreien

Free Droid
Free your Droid
© IzzyOnDroid (CC-BY-NC-SA)

Im Verlauf dieser Serie haben wir uns mit einigen Details zum Thema “Android ohne Google” beschäftigt: Warum wir überhaupt darüber nachdenken sollten, wie wir zu einer “privaten/persönlichen Cloud” kommen, unseren Androiden von Bloatware befreien, welche Alternativen es für die meisten vorinstallierten Google-Apps gibt. Jetzt wird es Zeit, alles zusammenzufügen – und unseren Androiden zu befreien!

Einige Leser sind sicherlich skeptisch, ob das so funktionieren kann. Und haben Bedenken, sie könnten Teile der “Funktionalität” ihres Gerätes dabei einbüßen. Beides Bedenken, die ich durchaus teile. Daher habe ich für eine “Machbarkeits-Studie” mein gutes altes HTC Wildfire reanimiert. In diesem Artikel beschreibe ich Schritt für Schritt, wie ich dabei vorgegangen bin (für Details sei dabei auch auf die vorigen Artikel dieser Serie verwiesen). Wer das gleiche Gerät verwendet (wohl eher unwahrscheinlich), sollte damit fast wörtlich folgen können. Alle Anderen müssen an der einen oder anderen Stelle Ersetzungen vornehmen: Ein anderes ROM wählen, oder eine andere Version einer App. Das Bild zur Rechten gibt einen groben Überblick über das generelle Vorgehen; für eine besser lesbare (größere) Version desselben, lässt es sich einfach “anklicken”.

Android ohne Google:

Ein “älterer” Artikel, der aber definitiv hierher gehört:

Root

Eine unabdingbare Voraussetzung für unsere Aufgabe ist es, das Gerät zu rooten – da gibt es kein Herumkommen, wenn wir es vollständig “befreien” wollen. Das Vorgehen hierfür war zumindest in der Vergangenheit vom jeweiligen Gerät und der darauf laufenden Android-Version abhängig1 – doch dieses Jahr brachte uns eine Überraschung namens Towelroot, welches auf allen Android-Geräten bis einschließlich Android 4.4.2 gleich funktionieren sollte (bei neueren Android-Versionen ist das “Schlupfloch” u. U. bereits wieder geschlossen). Herunterladen, installieren, starten, das “Knöppsche drücken” – und der Job sollte erledigt sein.

Das Gerät reinigen

Hierfür zeigt obige Grafik zwei Ansätze: Das Stock-ROM behalten und von der Bloatware befreien (wie in Teil 3 dieser Serie beschrieben) – oder das Stock-ROM (nach installation einer Custom-Recovery) durch ein Custom-ROM ersetzen. Die erste Variante erweist sich in der Praxis als recht umständlich und arbeitsintensiv: Die entsprechenden Apps müssen identifiziert und sichergestellt werden, das keine unerfüllten Abhängigkeiten verbleiben, auf die der jeweilige Hersteller bei seinen Anpassungen eventuell gesetzt haben könnte. Da ich nicht zu 100% sicher bin, was den Erfolg dabei betrifft, habe ich mich für die zweite Option entschieden.

Das bedeutet, dass wir zunächst einmal ein Custom-Recovery benötigen. Je nach Gerät gibt es dafür entweder einen, mehrere, oder gar keinen passenden Kandidaten2. Die bekanntesten und meist verbreitetsten Custom-Recoveries sind sicher ClockworkMod (welches auf meinem Wildfire zum Einsatz kommt) und TeamWin Recovery. Da die Installationsschritte vom verwendeten Gerät und des jeweiligen Cursom-Recoveries abhängen, überspringe ich diese hier. Gleiches gilt bezüglich der Details für das Custom-ROM: Auch hier kann es wieder mehrere Kandidaten geben3. In meinem Fall fiel die Wahl auf CyanogenMod 9.1 – welches als Nebeneffekt das Gerät, dessen letzte offizielle Android-Version 2.2 war, auf Android 4.0.4 aktualisiert. Custom-ROMs kommen in der Regel ohne Google-Apps daher (welche man separat installieren müsste), was uns hier sehr entgegenkommt: Unser Gerät ist somit von selbigen befreit.4

Ersatz für Google Services

Ein von Google befreites Gerät bedeutet jedoch auch, dass etliche für uns bislang selbstverständliche Dienste nicht mehr vorhanden sind. Den meisten weinen wir sicher keine Träne nach – war es doch unser Ziel, sie loszuwerden. Aber statt der (Akku-sparsameren) Standortbestimmung über das Netzwerk5 kennt unser Gerät dann ausschließlich GPS. Und natürlich gibt es keinen Zugriff mehr auf den Playstore.

Glücklicherweise gibt es da ein Open-Source-Pendant zu den proprietären Google-Diensten, von dem die meisten wahrscheinlich noch nichts gehört haben: Bei den XDA-Developers findet sich das Projekt NOGAPPS6. Diesem entnahm ich NetworkLocation.apk (einschließlich der Hinweise zur Erstellung eineraktuellen CellID Datenbank für die Standortdaten der Funkmasten7), die Google Maps API (damit Apps wie beispielsweise Öffi, welche diese API voraussetzen, auch weiterhin funktionieren), sowie BlankStore.apk (für den Zugriff auf den Playstore). Die genauen Installationschritte finden sich weiter unten.

Die Nutzung des BlankStore ist eine Option für diejenigen, die nicht auf Zugriff auf Google Play verzichten wollen. Alle anderen greifen einfach zu den .apk Dateien von F-Droid und Aptoide (die sich mit dem Web-Browser von den zugehörigen Webseiten herunterladen lassen), und nutzen stattdessen diese Märkte. Meine Installationschritte schließen beides ein.

Installationsschritte

  1. In das Recovery booten (z. B. via adb reboot recovery)
  2. Ein Wipe für alles veranlassen: Cache, System, Dalvik, Data (factory reset)
  3. Um auf der sicheren Seite zu sein: Aus dem “partition menu” zusätzlich format für /system und /data
    (in meinem Fall haben ohne diesen Schritt die zuvor installierte GApps irgendwie überlebt)
  4. “Install update from SD”: CM 9.1 - buzz.zip
    (das Custom-ROM – der Dateiname weicht bei anderen Geräten natürlich ab)
  5. “Install update from SD”: mapsapi.flashable.zip
    (schlug bei mir fehl; Alternative weiter unten)
  6. Gerät neu starten, in die Entwickler-Einstellungen (Settings→Developer) gehen:
    • sicherstellen, dass USB Debugging aktiviert ist (bei CM üblicherweise von Haus aus der Fall)
    • sicherstellen, dass root auch für ADB aktiviert ist (bei CM steht dies normalerweise auf "apps only")
  7. Wieder ins Recovery booten
  8. Aus dem “partition menu” auswählen: “Mount /system
  9. Vom via ADB verbundenen Computer, die folgenden Schritte ausführen:
## Installation der NOGAPPS Elemente für Location und Playstore:
adb push NetworkLocation.apk /system/app/NetworkLocation.apk
adb push BlankStore.apk /system/app/com.android.vending.apk
adb shell "chmod 0644 /system/app/*.apk"

# Nur wenn das Flashen der MapsAPI fehlgeschlagen ist: Das Archive entpacken, und folgendes ausführen:
adb push system /system
adb shell "chmod 0755 /system/addon.d/10-mapsapi.sh"
adb shell "chmod 0644 /system/etc/permissions/com.google.android.maps.xml /system/framework/com.google.android.maps.jar"

# Für die Verwendung eines selbstsignierten Zertifikats mit ownCloud und DavDroid
# (wiederum angenommen, der Hash des Zertifikats wäre `d123456`):
adb push d123456.0 /system/etc/security/cacerts/d123456.0
adb shell "chown root:root /system/etc/security/cacerts/d123456.0"
adb shell "chmod 0644 /system/etc/security/cacerts/d123456a.0"

Wieder zurück auf dem Androiden, der nach wie vor das Recovery-Menü anzeigt:

  1. “partition menu” → “Unmount /system
  2. zurück zum Hauptmenü, dann “advanced” → Wipe Dalvik
    (wird für den Blankstore benötigt, falls zuvor die originale Playstore-App installiert war; schadet aber auch sonst keinesfalls)
  3. Reboot

Einige Einstellungen anpassen

Da mit großer Wahrscheinlichkeit ohne die vorinstallierten Google-Apps nach dem ersten Boot kein Wizard für die Ersteinrichtung gestartet wurde, müssen nun zunächst einige Dinge von Hand konfiguriert werden. Dazu gehört u. a. die WLAN-Verbindung, sowie die Aktivierung der (fake) “Google Location Dienste” (die sich jetzt auf unser NetworkLocation.apk beziehen dürften). Auch Sprache und Datum/Uhrzeit dürften eine Anpassung nötig haben. Ein paar weitere Einstellungen, die eventuell von Interesse sein könnten (einige davon sind evtl. CyanogenMod-spezifisch):

F-Droid

Wer die entsprechende .apk Datei auf seinen Computer heruntergeladen hat, kann diese nun einfach mittels adb install FDroid.apk installieren (gleiches gilt bei Bedarf für Aptoide: adb install Aptoide.apk).

FreeYourAndroid.org
FreeYourAndroid.org Sticker
© Iwan Gabovitch (CC-BY)
Quelle: Flickr

Nach dem ersten Start der F-Droid App gilt es zunächst, die aktuellen Daten aus dem Repository zu laden: Suche, Anzeige der Details, etc. findet nämlich komplett ohne Netzwerkzugriff lokal auf dem Gerät statt (wie bei APT unter Linux, gleiches Prinzip). Das Haupt-Repository ist bereits aktiviert; also einfach das Menü öffnen, und “Update Repos” auswählen. Dann abwarten, bis Download und Verarbeitung abgeschlossen sind – und schon kann es mit Suche und Installation von Apps losgehen. Für den Abgleich unserer Kontakte und Termine mit ownCloud suchen und installieren wir zuerst einmal DAVdroid, dann natürlich gern alles weitere, was benötigt wird (auch die Installation von KeypadMapper sollte in Erwägung gezogen werden, um das OpenCellID Projekt zu unterstützen – welches uns ja nun mit Google-freien Ortsdaten versorgt).

Erledigt!

Das war’s – willkommen in der Welt des wirklich freien Android! Wer nicht gerade Google Now-abhängig ist, wird nicht viel vermissen. Geht es um die eine oder andere App, welche nur im Playstore verfügbar ist, lässt sich entweder der BlankStore nutzen – oder man verwendet einen anderen, noch “versklavten” Androiden zum Herunterladen der App, und fängt sich die .apk Datei beispielsweise mit AppMonster (Installation dann wie oben für F-Droid beschrieben). Natürlich empfiehlt sich auch, dem entsprechenden Entwickler auf die Pelle zu rücken, damit er seine App(s) auch auf einem der “freien Märkte” verfügbar macht. Zumindest wenn selbige ohnehin gratis installiert werden können, sollte ja wohl kaum etwas dagegen sprechen. Zögert der Entwickler? Einfach den QR-Code des Teaser Bildes dieses Artikels (rechts noch einmal eingeblendet – anklicken für größere Version) einscannen, um weitere Argumente zu finden8.

appshowto


  1. Bei Android.SE findet sich ein Index möglicher Lösungen für eine ganze Reihe von Geräten: How do I root my Android device? ↩︎

  2. Es gibt Geräte, für die kein kompatibles Custom-Recovery existiert – mit einem solchen ist man natürlich aufgeschmissen. ↩︎

  3. für mögliche Quellen lohnt beispielsweise ein Blick auf Where can I find stock or custom ROMs for my Android device? bei Stack Exchange ↩︎

  4. Hierzu als Lektüre empfohlen: CyanogenMod – Android ohne Google?! Teil3 im Kuketz IT-Security Blog ↩︎

  5. Die sogenannte “network based location” bedient sich einer Datenbank, in der die Standorte von Mobilfunkmasten und WLAN Hotspots verzeichnet sind. ↩︎

  6. Ein Thread bei XDA-Developers diskutiert diese, bietet Download-Links, und gibt Hilfestellung. Der Code selbst wird bei Github gehostet. ↩︎

  7. Details dazu finden sich in der Datei lacells-1.0.0.zip im Download Bereich ↩︎

  8. Die Free Software Foundation Europe (FSFE) hat auf ihrer Website diesem Thema einige Seiten gewidmet ↩︎

2014-08-25