Android: Google-Dienste entfernen und Vorbereitung für microG - Stage 1
Stand: 2026-05-01
Gerät/Shell: Android-Root-Shell auf pa3q
Ziel: Google Play Services, Play Store, Google Services Framework und unnötige Google-nahe Apps für den Hauptnutzer entfernen/deaktivieren, Captive-Portal-Checks von Google wegdrehen und das Gerät auf eine spätere microG-Installation vorbereiten.
pm uninstall --user 0 entfernen Apps nur für den Android-Hauptnutzer user 0. System-Apps bleiben im ROM beziehungsweise in der Systempartition bekannt und können mit cmd package install-existing --user 0 <paketname> wiederhergestellt werden. Das ist gewollt, weil es sicherer ist als blindes Löschen aus /system.1. Ausgangslage: Google-Kernpakete prüfen
Zuerst wurde geprüft, ob die drei wichtigsten Google-Kernpakete für user 0 aktiv installiert sind:
for p in com.google.android.gms com.android.vending com.google.android.gsf; do
echo "$p:"
cmd package list packages --user 0 "$p"
done
Ergebnis:
com.google.android.gms:
com.android.vending:
com.google.android.gsf:
user 0 sind diese Pakete nicht aktiv installiert.| Paket | Bedeutung | Status für user 0 |
|---|---|---|
com.google.android.gms |
Google Play Services | Nicht aktiv installiert |
com.android.vending |
Google Play Store | Nicht aktiv installiert |
com.google.android.gsf |
Google Services Framework | Nicht aktiv installiert |
2. Prüfung auf deinstallierte Systempakete
Danach wurde geprüft, ob die Pakete im ROM noch als deinstallierte Systempakete bekannt sind:
for p in com.google.android.gms com.android.vending com.google.android.gsf; do
echo "$p:"
cmd package list packages --user 0 -u "$p"
done
Ergebnis:
com.google.android.gms:
package:com.google.android.gms.location.history
package:com.google.android.gms.supervision
package:com.google.android.gms
com.android.vending:
package:com.android.vending
com.google.android.gsf:
package:com.google.android.gsf
Interpretation:
| Paket | Bedeutung | Interpretation |
|---|---|---|
com.google.android.gms |
Google Play Services | Für user 0 entfernt, aber als Systempaket noch im ROM registriert. |
com.android.vending |
Google Play Store | Für user 0 entfernt, aber als Systempaket noch im ROM registriert. |
com.google.android.gsf |
Google Services Framework | Für user 0 entfernt, aber als Systempaket noch im ROM registriert. |
com.google.android.gms.location.history |
Google/Location-History-nahe Komponente | Für user 0 nicht aktiv, aber als Systempaket bekannt. |
com.google.android.gms.supervision |
Google/Supervision-nahe Komponente | Für user 0 nicht aktiv, aber als Systempaket bekannt. |
3. Aktive Google-nahe Pakete suchen
Danach wurde nach aktiven Paketen gesucht, deren Name auf Google, GMS, GSF, Play Store, YouTube, Chrome, Gmail oder Maps hindeutet:
cmd package list packages --user 0 | while read p; do
case "$p" in
*google*|*gms*|*gsf*|*vending*|*youtube*|*chrome*|*gmail*|*maps*)
echo "$p"
;;
esac
done
Die Ausgabe enthielt noch mehrere aktive com.google.android.*-Pakete. Wichtig: Nicht jedes Paket mit google im Namen ist automatisch ein proprietärer Trackingdienst. Manche sind Android-Systemmodule, die auf AOSP/Google-Modulnamen basieren.
4. Entfernte Apps und Dienste
Folgende Pakete wurden für user 0 entfernt:
pm uninstall --user 0 com.google.android.projection.gearhead
pm uninstall --user 0 com.google.ar.core
pm uninstall --user 0 com.google.android.syncadapters.calendar
pm uninstall --user 0 com.google.android.healthconnect.controller
pm uninstall --user 0 com.google.android.printservice.recommendation
pm uninstall --user 0 com.google.android.apps.carrier.carrierwifi
pm uninstall --user 0 com.google.android.onetimeinitializer
pm uninstall --user 0 com.google.android.apps.setupwizard.searchselector
pm uninstall --user 0 com.google.android.setupwizard
Alle Befehle wurden erfolgreich ausgeführt.
| Paket | Bedeutung | Warum entfernt? |
|---|---|---|
com.google.android.projection.gearhead |
Android Auto | Nicht nötig, wenn Android Auto nicht verwendet wird. |
com.google.ar.core |
Google ARCore | Nicht nötig, wenn keine AR-Funktionen gebraucht werden. |
com.google.android.syncadapters.calendar |
Google Kalender-Synchronisierung | Nicht nötig ohne Google-Konto beziehungsweise Google-Kalender-Sync. |
com.google.android.healthconnect.controller |
Health Connect Controller | Nicht nötig, wenn Health Connect nicht verwendet wird. |
com.google.android.printservice.recommendation |
Druckdienst-Empfehlungen | Komfort-/Empfehlungsdienst, nicht notwendig für Basisbetrieb. |
com.google.android.apps.carrier.carrierwifi |
Carrier-WiFi / Provider-WLAN-Komponente | Nicht nötig, wenn keine Provider-WLAN-Integration verwendet wird. |
com.google.android.onetimeinitializer |
Google Initialisierungsdienst | Nach Entfernung der Google-Dienste nicht gewünscht. |
com.google.android.apps.setupwizard.searchselector |
Suchanbieter-Auswahl im Setup | Nach abgeschlossener Einrichtung nicht nötig. |
com.google.android.setupwizard |
Google Setup Wizard | Nach abgeschlossener Einrichtung meist entbehrlich. |
5. Captive Portal von Google wegdrehen
Android nutzt Captive-Portal-Checks, um zu erkennen, ob ein Netzwerk Internetzugang hat oder ob ein Login-Portal geöffnet werden muss. Standardmäßig zeigen diese Checks oft auf Google-Adressen. Das kann auch ohne Play Services zu unnötigen Kontakten zu Google führen.
Die URLs wurden auf captiveportal.kuketz.de geändert:
settings put global captive_portal_http_url http://captiveportal.kuketz.de
settings put global captive_portal_https_url https://captiveportal.kuketz.de
settings put global captive_portal_fallback_url http://captiveportal.kuketz.de
settings put global captive_portal_other_fallback_urls http://captiveportal.kuketz.de
settings put global captive_portal_mode 1
Danach wurde die Konfiguration geprüft:
settings get global captive_portal_http_url
settings get global captive_portal_https_url
settings get global captive_portal_fallback_url
settings get global captive_portal_other_fallback_urls
settings get global captive_portal_mode
Ergebnis:
http://captiveportal.kuketz.de
https://captiveportal.kuketz.de
http://captiveportal.kuketz.de
http://captiveportal.kuketz.de
1
| Setting | Wert | Bedeutung |
|---|---|---|
captive_portal_http_url |
http://captiveportal.kuketz.de |
HTTP-Check für Netzwerkportal-Erkennung. |
captive_portal_https_url |
https://captiveportal.kuketz.de |
HTTPS-Check für Netzwerkportal-Erkennung. |
captive_portal_fallback_url |
http://captiveportal.kuketz.de |
Fallback-Adresse. |
captive_portal_other_fallback_urls |
http://captiveportal.kuketz.de |
Weitere Fallback-Adresse. |
captive_portal_mode |
1 |
Captive-Portal-Erkennung bleibt aktiv, aber nicht mehr mit Google-URL. |
6. Pakete, die vorerst nicht entfernt werden sollten
Diese Pakete sollten nicht blind entfernt werden, da sie für Android-Funktionen relevant sein können:
| Paket | Funktion | Warum vorsichtig? |
|---|---|---|
com.google.android.permissioncontroller |
Berechtigungsverwaltung | Entfernung kann App-Berechtigungen beschädigen. |
com.google.android.packageinstaller |
Paketinstallation | Entfernung kann App-Installation beschädigen. |
com.google.android.documentsui |
Dateiauswahl | Viele Apps brauchen diese Systemauswahl. |
com.google.android.networkstack |
Netzwerkfunktionen | Kann WLAN/Mobilfunk-/Netzwerklogik beeinflussen. |
com.google.android.networkstack.tethering |
Tethering/Hotspot | Entfernung kann Hotspot und Tethering beschädigen. |
com.google.android.providers.media.module |
Medienanbieter | Wichtig für Medienzugriff. |
com.google.android.photopicker |
Android Fotoauswahl | Von Apps für sichere Medienauswahl verwendet. |
com.google.android.sdksandbox |
SDK Sandbox | Modernes Android-Systemmodul. |
com.google.android.webview |
Android WebView | Nicht einfach löschen. Erst Ersatz-WebView bereitstellen, falls gewünscht. |
com.google.android.captiveportallogin |
Captive-Portal-Login | Wird für WLAN-Loginportale benötigt. URLs wurden bereits angepasst. |
7. Aktueller Status
- Google Play Services, Play Store und Google Services Framework sind für
user 0nicht aktiv. - Die Kernpakete sind weiterhin als Systempakete im ROM registriert.
- Mehrere unnötige Google-/Komfortpakete wurden für
user 0entfernt. - Captive-Portal-Checks wurden von Google weg auf
captiveportal.kuketz.degesetzt. - Systemnahe Android-Module wurden bewusst nicht blind entfernt.
8. Rollback: entfernte Pakete wiederherstellen
Da die Pakete nur für user 0 entfernt wurden, können sie bei Bedarf wieder aktiviert werden:
cmd package install-existing --user 0 com.google.android.projection.gearhead
cmd package install-existing --user 0 com.google.ar.core
cmd package install-existing --user 0 com.google.android.syncadapters.calendar
cmd package install-existing --user 0 com.google.android.healthconnect.controller
cmd package install-existing --user 0 com.google.android.printservice.recommendation
cmd package install-existing --user 0 com.google.android.apps.carrier.carrierwifi
cmd package install-existing --user 0 com.google.android.onetimeinitializer
cmd package install-existing --user 0 com.google.android.apps.setupwizard.searchselector
cmd package install-existing --user 0 com.google.android.setupwizard
Rollback für Captive Portal auf Android-Standardverhalten ist gerätespezifisch. Statt feste Google-URLs zurückzuschreiben, kann man die gesetzten Werte löschen und Android/ROM wieder Defaultwerte nutzen lassen:
settings delete global captive_portal_http_url
settings delete global captive_portal_https_url
settings delete global captive_portal_fallback_url
settings delete global captive_portal_other_fallback_urls
9. Nächster geplanter Schritt: microG
Als nächstes soll microG eingerichtet werden, damit Apps, die Google Play Services erwarten, möglichst ohne proprietäre Google Play Services funktionieren.
Wichtige Punkte vor der Installation
- microG braucht in der Regel Signature Spoofing, damit Apps es als Ersatz für
com.google.android.gmsakzeptieren. - Auf einem normalen Hersteller-ROM ist Signature Spoofing meistens nicht nativ vorhanden.
- Wenn microG Cloud Messaging aktiviert wird, kommuniziert microG trotzdem mit Google-Servern für Push-Nachrichten.
- Für maximale Privatsphäre sollten Google Device Registration und Cloud Messaging deaktiviert bleiben, sofern keine App sie zwingend braucht.
Geplante Prüfschritte
# Prüfen, ob microG-Paketnamen schon vorhanden sind
cmd package list packages --user 0 | while read p; do
case "$p" in
*microg*|*gms*|*gsf*|*vending*|*android.gms*)
echo "$p"
;;
esac
done
# Prüfen, ob die alten Google-Kernpakete weiterhin nur als entfernte Systempakete existieren
for p in com.google.android.gms com.android.vending com.google.android.gsf; do
echo "$p:"
cmd package list packages --user 0 "$p"
cmd package list packages --user 0 -u "$p"
done
No Comments