4 min read

Android ohne proprietäre Google Play Dienste | MicroG + LineageOS 17.1

Seit mehr als einem halben Jahr läuft auf meinem OnePlus 6 LineageOS ohne die proprietären Google Play Dienste - dafür mit der deutlich abgespeckten Open Source Implementation MicroG. Da nun LineageOS 17.1 veröffentlicht wurde, ist es Zeit umzusteigen!

Vorwort: Aktuelle Probleme

Zum aktuellen Zeitpunkt ist die Installation und Einrichtung von MicroG nicht einfach! Das liegt an mehreren Gründen: LineageOS for microG (ein Lineage Fork der standardmäßig MicroG enthält) ist noch nicht für Version 17 erhältlich, welches unter anderem daran liegt dass einige, für AOSP 10 notwendige Änderungen noch nicht eingepflegt sind (Issue). Der daraus resultierende Fork der Community ist unter anderem im MinMicroG Installer enthalten (Reddit).
Außerdem ist in Lineage 17.1 standardmäßig kein Signature Spoofing aktiv, was die ganze Sache deutlich komplizierter macht.
Wer auf das ganze keine Lust hat, kann auch einfach Omnirom flashen, einige Builds aktueller Geräte enthalten MicroG unter Android 10, oder natürlich ganz ohne Play Dienste installieren (hier wäre vielleicht GrapheneOS angebracht 😉)

Vorbereitung und Backup

Zunächst sollte ein Backup vom aktuellen Stand gemacht werden. Dazu kann entweder, falls schon installiert, TWRP benutzt werden oder das Backup direkt per ADB ausgeführt werden. Dazu muss zuerst ADB installiert werden. Unter Arch lautet der Befehl:
pacman -S android-tools

Auf dem Smartphone müssen zunächtst die Entwickleroptionen aktiviert werden, dann mehrmals auf die Build-Nummer tippen.
Nun sollten in den Einstellungen unter System die Entwickleroptionen sein. Hier muss die Option Android Debugging aktiviert werden:

So kann mit adb backup -apk -shared -all alles gesichert werden. Zum zurückspielen muss lediglich adb restore backup.ab ausgeführt werden.

Als nächstes sollten die benötigte Software heruntergeladen werden. Die aktuellste Lineage Version bekommt man hier, TWRP hier.
Optional kann noch Magisk heruntergeladen werden um das Gerät direkt zu rooten.
Außerdem benötigt man für manche neueren Geräte mit einem A/B Partitionsschema noch das copy-partitions ZIP, welches die Partitions A des Bootloaders, zum Teil bei Geräten im Auslieferungszustand vorzufinden, in den Slot B zu kopieren.

Installation

Zunächst sollte geprüft werden ob das Gerät per adb erkannt wird (Falls noch nicht vorhanden: "Von diesem Computer immer zulassen" erlauben):

➜ ~ adb devices
List of devices attached
7d4d03cc       device

Danach mit adb reboot bootloader in den Fastboot Modus wechseln und überprüfen ob das Gerät erkannt wird:

➜ ~ fastboot devices
7d4d03cc       fastboot

Falls noch nicht geschehen mit fastboot oem unlock den Bootloader entsperren.

Und schon kann man in TWRP booten um mit der Installation zu beginnen (Bei meinem Gerät habe ich eine Custom TWRP Version von XDA benutzen müssen):
➜  ~ fastboot boot Downloads/twrp-3.3.1-2-enchilada.img
Sending 'boot_b' (28980 KB)                        OKAY [  0.683s]
Writing 'boot_b'                                   OKAY [  0.248s]
Finished. Total time: 0.937s

Zunächst flasht man das copy-partitions ZIP per ADB: Advanced -> ADB Sideload:
➜  ~ adb sideload Downloads/copy-partitions.zip
Total xfer: 1.00x

Vor der Installation löscht man noch die bestehenden Daten, dazu ruft man im Hauptmenü von TWRP Wipe -> Factory Reset und Wipe - Format Data -> Yes auf. Anschließend kann wieder unter ADB Sideload LineageOS geflasht werden:
➜  ~ adb sideload Downloads/lineage-17.1-20200424-nightly-enchilada-signed.zip
Total xfer: 1.00x

Sobald dies fertig ist startet man das Gerät neu: Reboot -> System.

Optional kann jetzt noch Magisk (zum Rooten) oder das TWRP Zip, um TWRP permanent benutzen zu können anstelle von Lineage Recovery, per ADB geflasht werden.

Signature Spoofing aktivieren

Update: Mittlerweile gibt es ein Script welches nun auch unter Linux sehr einfach Signature Spoofing aktivieren soll. Außerdem scheint die aktuellste NanoDroid Beta Version zu funktionieren. Mehr Infos dazu auf Reddit.

Der einfachste Weg um Signature Spoofing zu aktivieren ist ein Tools namens SmaliPatcher, welches leider nur auf Windows läuft. Aber es ist auch möglich dies manuell hinzubekommen, eine Anleitung dafür findet sich im Gitlab Repo von Nanodroid.
Zunächst muss mind. .NET Framework 4.7.1 und Java installiert sein. Dann startet man SmaliPatcher als Administrator und wählt Signature Spoofing aus. Mit ADB Patch beginnt das Programm dann. Am Ende erhält man eine SmaliPatcherModule-*.zip Datei, die nun aufs Handy kopiert werden muss. Diese flasht man dann mit Magisk und nach einem Neustart kann der Status mit Signature Spoofing Checker von F-Droid überprüft werden.

Installation MicroG

Auch hier gibt es mehrere Möglichkeiten. Um nur mal 4 zu nennen: MinMicroG, NanoDroid, Magisk MicroG Installer Revived oder Manuell.
Ich gehe auf die MinMicroG Methode ein, da es vermutlich der unkomplizierteste Weg ist unter Android 10.
Zuerst lädt man die aktuellste MicroG Version aus den Github Releases herunter (ich habe 2.7-beta3 in der NoGoolang Variante verwendet).

Das Zip installiert man dan mit Magisk und rebootet. Beim ersten Start von MicroG muss man erstmal alle Berechtigungen vergeben. Danach können unter UnifiedNlp die gewünschten Ortungs/Adressauflösungsdienste ausgewählt werden. Ich nehme Mozilla und Nomination (OSM):

Nun sollten die meisten Punkte unter Selbstprüfung abgehakt sein, jedoch kann es sein das ein Punkt offen bleibt, das liegt an dem neuen Berechtigungssystem von Android 10, welches beim Standort zwischen "Immer im Hintergrund" und "Nur während Nutzung der App" unterscheidet. Dazu muss die für Android 10 angepasste GmsCore.apk einfach installiert werden. Nun sollten alle Punkte des Selbstchecks angekreuzt sein.
Falls Google Cloud Messaging benötigt wird, der Zustand aber auf Nicht verbunden bleibt, sollte man diese Schritte ausführen:

- Geräte-Registrierung und SafetyNet aktivieren
- In der Telefon App *#*#CHECKIN#*#* wählen

Im nächsten Artikel werde ich noch weitere Google "Reste" aus Lineage verbannen und eine Liste von Open Source Anwendungen vorstellen, die ich benutze.

Changelog:
- Text zu Signature Spoofing erweitert, Standt 25052020 gibt es weitere Möglichkeite (z.B. Bash Script)den

Autor: peterge