Android ohne Google: microG

Die NOGAPPS1 waren schon großartig – allerdings etwas aufwändig zu installieren. Mit microG2 ist alles viel einfacher geworden, wie ich bei der Neuinstallation meines guten alten Motorola Milestone 23 feststellen durfte. Und da alles so schön rund läuft, wird es Zeit, Euch das Ganze einmal vorzustellen – was ich hiermit tun möchte.
Android ohne Google:
- 1: Einleitung
- 2: ownCloud
- 3: Unliebsame Apps loswerden
- 4: App-Alternativen
- 5: Den Droiden befreien
- 5a: microG (Update für NOGAPPS aus Teil 5)
- 6: Selbstversuch
- 7: Woher bekomme ich nun Apps?
Ein “älterer” Artikel, der aber definitiv hierher gehört:
Open Source
Wie bereits das NOGAPPS Projekt, ist auch microG vollständig Open Source – der Quellcode also für jeden einsehbar. Es geschieht also nichts „im Geheimen“, alles ist (mit den entsprechenden Kenntnissen) überprüfbar. Aus Sicherheits-Aspekten ein wichtiger Punkt – insbesondere, wenn es um sensible oder persönliche Daten geht, wie es hier der Fall ist. Nicht nur schützt dies vor etwaigen „Hintertüren“; es hilft auch, unbeabsichtigte Schwachstellen oder Fehler schneller aufzudecken und zu beheben. Wobei der Entwickler für die Behebung nicht auf sich allein gestellt ist: Der Entdecker kann auch einen Patch für die Korrektur bereitstellen, der von am Projekt beteiligten Entwicklern dann einfach übernommen werden kann. Bei einem „offenen System“ (ohne Bindung an eine Firma), wie wir es hier mit „Android ohne Google“ anstreben, sind solche „quelloffenen Projekte“ natürlich besonders beliebt und zu bevorzugen.
Die Komponenten
microG besteht im Grunde genommen aus drei Teilen:
- GmsCore entspricht in etwa den Google Services (siehe unten)
- GsfProxy ergänzt den Core um Google Cloud Messaging
- FakeStore täuscht installierten Apps das Vorhandensein des Google Play Store vor, während Blankstore sogar einen Großteil der Funktionalität beinhaltet (Apps suchen, installieren, aktualisieren)
Die Beschreibung des Implementierungsstandes von GsmCore auf der Projektseite bei XDA gibt uns auch gleich einen guten Einblick, welche Funktionalitäten in den Google Services stecken. Grob übersetzt:
- Ads/Analytics API: kaum angefasst, wird nie vollständig implementiert
- Auth API: nahezu vollständig implementiert
- Cast API: Arbeit begonnen, jedoch noch nicht nutzbar; Apps, die es benutzen wollen, könnten abstürzen
- Drive API: Noch nichts implementiert
- Fitness API: Noch nichts implementiert
- Games API: Noch nichts implementiert
- Cloud Messaging API: voll einsatzbereit
- Location Provider API: voll einsatzbereit, kümmert sich aber nicht um Vorgaben der AppOps
- Geofencing API: noch nicht unterstützt, Apps könnten abstürzen
- Maps API: teilweise implementiert, die meisten Apps stürzen nicht ab, hin und wieder kleine Pannen
- Plus API: nur minimale Implemtierung gegen Crashes, grundlegende Account-Informationen
- Wearable API: Arbeit begonnen, jedoch noch nicht nutzbar; Apps, die es benutzen wollen, könnten abstürzen
Eine ganze Menge Stoff! Und für eine „Alpha v0.0.1“4 außerordentlich stabil. Auf meinem Milestone 2 etwa funktionierte der Zugriff auf den Playstore mittels der BlankStore App einwandfrei, ebenso die Nutzung der Ortungsdienste, Schwierigkeiten mit der Auth API konnte ich keine feststellen; Google Cloud Messaging funktioniert einwandfrei, die Maps API habe ich noch nicht getestet – und der Rest, sorry, interessiert mich (derzeit) nicht sonderlich
Installation
Die ist wesentlich einfacher geworden – oder, wie ich MaR-V-iN im XDA Thread schrieb: „a breeze“. Kaum noch „Spielereien auf System-Ebene“ mit Flashen über Recovery oder händischen Kopiervorgängen (ein einziger von letzteren, für den BlankStore5).
Voraussetzungen
An Voraussetzungen nennt MaR-V-iN:
- ein 4.4+ ROM, das völlig frei von GApps ist (in meinem Fall: Ein blankes CM11 mit Android 4.4.4 auf dem Milestone 2, bzw. CM12.1/Android 5.1.1 auf meinem LG P880)
- das ROM muss „signature faking“ unterstützen – oder man verwendet alternativ FakeGApps mit Xposed. Letzteres soll laut MaR-V-iN für CyanogenMod nötig sein – in meinen Tests benötigte ich es jedoch ausschließlich für GCM6
- war zuvor UnifiedNlp installiert, muss dies entfernt werden (ist jetzt in GmsCore integriert)7
Sind diese Hürden genommen, kann es „ans Eingemachte“ gehen:
Installieren
- GmsCore installieren: gibt es in keinem Store, aber die
.apk
Datei lässt sich von Github oder aus dem XDA-Thread herunterladen – und einfach über den Package-Manager oder peradb install
aufs Gerät bringen - Will man Google Cloud Messaging benutzen, ist das Gleich auch für GsfProxy nötig – ebenfalls auf „normalem Wege“
- Wer BlankStore noch nicht auf dem Gerät hat, kann dies jetzt nachholen (sofern Zugriff auf den Google Playstore gewünscht ist – andernfalls greift man zum FakeStore). Die Vorgehensweise ist auf der Github-Seite der FakeGApps erklärt. In meinem Fall installierte ich Blankstore einfach mittels der F-Droid App.8
- Jetzt finden sich auch die microG Settings im App-Drawer. Hier markiert man beide Checkboxen (dies ist die einzige unterstützte Konfiguration – alles andere ist „experimentell“ und „auf eigenes Risiko“, wie MaR-V-iN beschreibt: you are free to disable them if you like playing with fire)
- Optional lassen sich jetzt noch die UnifiedNlp Backends und Einstellungen konfigurieren (siehe unten)
- Für die Verwendung der „Location Backends“ darauf achten, dass in Systemeinstellungen › Standort nicht „nur Gerät“ ausgewählt ist, sonst wird nur GPS verwendet
- Reboot (oder „alles Unerwartete ist möglich“)
Als UnifiedNlp Backends bieten sich eine ganze Reihe von Kandidaten aus dem F-Droid Repository an9. Ich habe mich für zwei davon entschieden:
- LocalGSMNLPBackend ermittelt den Standort über Mobilfunkzellen, und nutzt dazu eine lokale Datenbank von OpenCellID auf dem Gerät selbst. Diese kann man im Backend selbst erstellen, was recht bequem geht – oder auch auf dem Linux-PC mit lacells-creator bzw. dessen Nachfolger FastLacellsGenerator, was schneller geht. Die App findet sich auch auf Github.
- NominatimGeocoderBackend ist das Gegenstück dazu, um beispielsweise in der Galerie-App Eurer Wahl die in den Fotos gespeicherten GPS-Koordinaten in Ortsbezeichnungen umzuwandeln. Benötigt wird dazu jedoch eine Netzverbindung.
Anwendung
Einfach laufen lassen. Ein Eingreifen ist eigentlich nur nötig, wenn man die Konfiguration anpassen möchte:





Diese Schritte bin ich einmalig durchgegangen. Die Datenbank für das LocalGSMNLPBackend erstelle ich mit den lacells-creator Skripten auf meinem Linux-PC (etwa einmal im Monat sowie ggf. vor einer Urlaubsreise mit zusätzlichem Land), und schubbse sie mittels adb push
aufs Gerät.
Sollten sich einzelne Apps nun noch immer nicht installieren lassen (Fehlermeldung „App wurde nicht installiert“, und im LogCat „com.google.android.maps not available“), hilft ggf. die zusätzliche Installation der alten MapsAPI (siehe Teil 5).10
Fazit
Ich bin begeistert: Viel einfacher als mit den NOGAPPS, alles bislang getestete funktionierte problemlos und auf Anhieb. Das Wörtchen „Alpha“ bezog sich aus meiner Sicht hauptsächlich auf den Stand der Implementierung – jedoch keinesfalls auf die Stabilität. Wobei ich natürlich ausnahmsweise auch einmal Glück mit meinem Gerät gehabt haben könnte. Wie dem auch sei: Jetzt steht der „Entgooglifizierung“ meines Haupt-Smartphones eigentlich nichts mehr im Weg (Update: Erledigt, und funktioniert einwandfrei)!
-
Ein Thread bei XDA-Developers diskutiert diese, bietet Download-Links, und gibt Hilfestellung. Der Code selbst wird bei Github gehostet. ↩︎
-
Auch zum Nachfolger gibt es wieder einen entsprechenden Thread bei den XDA-Developers. ↩︎
-
Der Support des Herstellers endete für dieses Gerät mit Android 2.2 – Dank CyanogenMod konnte ich die Versionsnummer verdoppeln: Jetzt werkelt Android 4.4 Kitkat auf dem Milestone 2 ↩︎
-
Zum Zeitpunkt der Bestückung meines Milestone 2; mittlerweile hat das Projekt den Alpha-Status verlassen ↩︎
-
Und selbst Blankstore lässt sich mittels der F-Droid App installieren, fügt man dieser das IzzyOnDroid Repo hinzu – in welchem sich Blankstore finden lässt. ↩︎
-
was auch an der Auswahl von mir verwendeter Apps liegen kann; je nach verwendeten Apps kann das natürlich auch anders aussehen, also selbst testen. Beschwert sich eine App über fehlende Google Services („Google Play-Dienste, auf denen einige Ihrer Apps basieren, werden von diesem Gerät nicht unterstützt …“), könnte dies die Ursache sein. Die Installation von Xposed und FakeGApps sollte in einem solchen Fall Abhilfe schaffen. ↩︎
-
Wer ein mit Google Apps ausgestattetes „stock ROM” verwendet, kann zumindest Unified NLP (GApps) für die Standortdienste nutzen – und das Google tracking somit einschränken ↩︎
-
Anschließend natürlich noch das Google-Konto einrichten, wie in Teil 5 für die NOGAPPS erklärt ↩︎
-
Danke an Wolf für diesen Hinweis! Er schreibt weiter: „Derzeit kann allerdings noch passieren, daß dann der Kartenhintergrund nicht angezeigt wird. Es ist zu hoffen, daß mit weiterer Entwicklung von microG dieses Manko noch verschwindet.“ ↩︎