Workshop Android zähmen - Debloating und Firewalling (Teil 1)
Willkommen zum Workshop "Android zähmen - Debloating und Firewalling". Es gibt zahlreiche Custom ROMs für Smartphones, die mit Privatsphäre und Datensicherheit werben. Doch dieses Versprechen wird nicht immer eingelöst (mehr dazu hier: https://yourdevice.ch/warum-murenas-e-os-eine-mogelpackung-ist/). Außerdem sind Custom ROMs häufig nur für ältere Geräte verfügbar, sodass neu erworbene Android-Geräte oft ausschließlich mit dem vorinstallierten System betrieben werden können.
Hinzu kommt, dass die im Artikel vorgestellte Methode des Debloating punkto Sicherheit deutlich besser abschneidet, da bei manchen Custom ROMs (wie zum Beispiel bei LineageOS) der Bootloader nach der Installation nicht mehr gesperrt werden kann. Dies stellt ein erhebliches Sicherheitsrisiko dar, da ein technikaffiner Finder dadurch nahezu uneingeschränkten Zugriff auf das Smartphone erlangen könnte.
Doch es existieren zwei adäquate Möglichkeiten, die in Kombination miteinander die Sicherheit drastisch erhöhen können. Darüber hinaus können die Geräte nach der Behandlung oftmals auf mehr Speicherplatz und eine längere Akkulaufzeit zurückgreifen.
Dieser Workshop ist in zwei Teile aufgeteilt. Im ersten Teil werden wir das Androidgerät entschlacken (debloating) und uns von vielen unnützen und schädlichen Apps verabschieden. Der zweite Teil kümmert sich dann darum, wie wir verbliebene mitteilsame Dienste einsperren (firewalling), um sie daran zu hindern, Kontakt mit fremden Servern aufzunehmen.
Einleitung
"Debloating" kommt aus dem Englischen und bedeutet so viel wie "entblähen". Das heißt, wir löschen Apps, die vom Hersteller meist mitgeliefert werden, und das Gerät aufblähen. Oftmals sind diese Apps in Hinblick auf Privatsphäre eher kritisch zu betrachten, da sie ungewollt Nutzerdaten sammeln.
Aber auch Google-Standard-Apps sind für viele von uns lästig. Der Autor verzichtet gerne auf den Google Play Store und somit auf eine Anmeldung mit einem Google-Account, zumal es hierfür gute Alternativen gibt. Aber dazu später mehr.
Alle diese Apps haben es gemeinsam, dass sie vom Hersteller des Androidgeräts vorinstalliert sind und auf herkömmlichem Wege nicht deinstalliert, bestenfalls lediglich deaktiviert werden können. Der mutige Fachmann greift beim Deinstallieren von System-Apps gerne zum root-Zugriff, aber dies ist mit sicherheitsrelevanten Risiken verbunden, weshalb wir darauf in diesem Workshop verzichten wollen und nicht näher darauf eingehen. Wir verwenden für unsere Zwecke die "Android Debug Bridge" (adb).
Vorbereitung für das Debloating
Wir benötigen als erstes einen Linux PC.
Die adb-Tools müssen vorab installiert werden. Auf einem debian-basierten System geschieht dies per
sudo apt install adb
Rpm-basierte Systeme benötigen ein
sudo dnf install adb
Zusätzlich brauchen wir noch ein passendes USB-Kabel, um das Androidgerät mit dem PC zu verbinden und letztendlich das zu bereinigende Gerät selbst. Der Autor hat bereits positive Erfahrungen mit folgenden Geräten gemacht, allerdings sollte die Bereinigung auf jedem Androidgerät problemlos funktionieren:
- Smartphone Gigaset GS5
- Smartphone Gigaset X4 Pro
- Tablet Lenovo
- Tablet Samsung
- Nokia Streaming Box 8000
Die Bereinigung kann von Euch natürlich für jede einzelne App von Hand durchgeführt werden. Zur Vereinfachung und zum komfortablen Bearbeiten stellt der Autor jedoch ein fertiges Script (siehe Schaltfläche unten) zur Verfügung, auf das wir im folgenden Kapitel eingehen werden.
Für den Notfall sollten wir uns noch drei Apps von F-Droid herunterladen. Diese könnt Ihr auf Euren PC legen oder in den Download-Ordner Eures Androidgerätes:
- F-Droid zum Nachladen von Standard-Apps (https://f-droid.org/de/)
- Eine alternative Tastatur (z. B. https://f-droid.org/de/packages/com.simplemobiletools.keyboard/)
- Einen Launcher (z. B. https://f-droid.org/de/packages/com.vincent_falzon.discreetlauncher/)
Dies sind nur Vorschläge, aber Keyboard und Launcher sollten für den Notfall bereit liegen.
Programmaufbau des Scripts
Vorab eine wichtige Erklärung zum Haftungsausschluss:
Es wird dringend empfohlen, vor dem Bereinigen ein Backup aller wichtigen Daten durchzuführen!
Den Bereinigungsvorgang und das für das Debloating bereitgestellte Script hat der Autor nach bestem Wissen und Gewissen getestet. Der Betreiber dieser Internetseite und der Autor übernehmen keinerlei Garantien, Gewährleistungen oder Schadenersatzleistungen bei einem Defekt oder bei Datenverlust des Gerätes.
Das zur Verfügung gestellte Script besteht aus drei Teilen:
- "androidentblaehen.sh" - das eigentliche Programm
- "AndroidEntblaehenListe.txt" - eine Liste mit Apps, die deinstalliert werden sollen
- "AndroidEntblaehenListeGP.txt" - eine zusätzliche Liste mit Google Play Diensten, die deinstalliert werden sollen
Die beiden Textdateien enthalten die zu löschenden Apps und Dienste. Diese hat der Autor aus diversen Internetforen zusammengetragen, die von vielen Usern als bedenkenlos löschbar eingestuft worden sind.
Diese Listen können eigenverantwortlich erweitert werden. Die Lieblingssuchmaschine hilft beim Auffinden von weiteren Debloatinglisten. Hier sind beispielhaft ein paar Anlaufstellen aufgeführt:
https://xdaforums.com/t/list-of-apks-safe-to-debloat.4457873/
https://www.reddit.com/r/PocoPhones/comments/jc5rlr/list_of_safe_to_uninstall_system_apps/
https://www.minitool.com/news/list-of-samsung-bloatware-safe-to-remove.html
https://www.scribd.com/document/488471146/Debloat-List-G8
Die dort zur Löschung empfohlenen Apps sind bereits größtenteils in den Scriptdateien eingebaut.
In den Text-Dateien sind teilweise auch herstellerspezifische Apps aufgeführt. Diese können nicht vollständig sein, zum Einen, weil es immer wieder Änderungen bei den verbreiteten Apps gibt und zum Anderen, weil durch die Vielzahl an unterschiedlichen Geräten nicht jedes mit seinen zusätzlichen "Goodies" hier abgedeckt werden kann. Dafür ist der Markt einfach zu weit gefächert. Es spricht aber nichts dagegen, dass Ihr diese Liste eigenständig erweitert, ändert oder auch kürzt. Hier sollte allerdings mit sehr großer Sorgfalt herangegangen werden, da beim Löschen einer dringend benötigten App das komplette Gerät nicht mehr funktionstüchtig sein kann! In jedem Fall ist vorher ein Backup aller wichtigen Daten dringend erforderlich!
Alle drei Teile des Scripts (zip-Datei) sollten heruntergeladen werden und in einen gemeinsamen Ordner Eurer Wahl abgelegt (z. B. /usr/local/bin/AndroidEntblaehen) und entpackt werden. Das Hauptscript muss dann noch in einem Terminal ausführbar gemacht werden:
sudo chmod +x [EUER PFAD]/androidentblaehen.sh
Anschließend öffnet Ihr es mit folgendem Befehl im Terminal:
bash [EUER PFAD]/androidentblaehen.sh
Nach dem Bestätigen des Haftungsauschlusses erscheint folgendes Menü:
Möglicherweise müsst Ihr das Terminalfenster noch etwas aufziehen, um den vollständigen Inhalt angezeigt zu bekommen.
Hier eine kleine Übersicht, was die einzelnen Menüpunkte bewirken:
1) Es wird eine Geräteerkennung durchgeführt.
2) Zum Beispiel einige exotische SmartTV-Boxen können nicht per USB mit dem PC verbunden werden. Hierfür besteht die Möglichkeit, das Gerät per Netzwerk (LAN oder WLAN) zu koppeln.
3) Es wird eine Liste mit allen installierten (einschließlich System-) Apps erstellt.
4) Hier kann nach einer bestimmten App auf dem Gerät gesucht werden.
5) Liegt eine heruntergeladene App auf dem PC, so kann sie hierüber auf das Androidgerät installiert werden.
6) Testweise können die Apps (gemäß Liste AndroidEntblaehenListe.txt) DEAKTIVIERT werden. Dies hat den Vorteil, dass sie unter Menüpunkt 10 wieder aktiviert werden können. Für den abschließenden Gebrauch ist das Deaktivieren allerdings nicht ratsam, da einige Apps nach einem Geräteneustart oder einem Firmware-Update wieder aktiviert werden.
7) Hier erfolgt die eigentliche Deinstallation der Apps gemäß der Liste AndroidEntblaehenListe.txt. Hierzu gibt es noch eine kleine Anmerkung. Der Befehl, um eine App zu deinstallieren lautet:
adb shell pm uninstall -k --user 0 [APP-NAME]
Der angefügte Parameter "--user 0" liegt darin begründet, dass Android mittlerweile ein Multiuser-System geworden ist. Für jeden User, der auf dem Gerät eingerichtet ist, werden alle Apps installiert. Im Normalfall verwendet nur ein Benutzer das Gerät, womit dieser Deinstallationsschritt für unsere Zwecke völlig ausreicht. Interessant wird es hingegen z. B. bei Firmen-Smartphones, wo mehrere Nutzer eingerichtet sein könnten. Hier stößt das Script an seine Grenzen, da nur der erste User ("0") bei der Deinstallation berücksichtigt wird. Aber dies ist nur ein Sonderfall, um den wir uns in diesem Workshop nicht kümmern.
Nach der Deinstallation der Apps anhand der Liste AndroidEntblaehenListe.txt fragt das Programm, ob auch Google Play Dienste deinstalliert werden sollen. Hier kommt die zweite Liste namens AndroidEntblaehenListeGP.txt ins Spiel. Diese beinhaltet Apps, die typisch für die Google Play Dienste sind. Es ist zu beachten, dass nach dieser Deinstallation ein alternativer App-Store installiert werden sollte (z. B. F-Droid, Aurora). Leider gibt es vereinzelte Apps, die den Google Play Store (z. B. Push-Dienste) zwingend erforderlich machen, um ausgeführt werden zu können. Hier müsst Ihr selber entscheiden, wie wichtig Euch diese Voraussetzung ist.
8) Über diesen Menüpunkt kann eine einzelne App deinstalliert werden (der vollständige Name muss bekannt sein. Dazu später mehr).
9) Zum Testen nach dem Bereinigen kann das Androidgerät neu gebootet werden.
10) Alle DEAKTIVIERTEN (NICHT gelöschte!) Apps können hierüber wieder aktiviert werden.
11) Sollte wider erwarten etwas schieflaufen, so kann das Androidgerät über diesen Menüpunkt in den sogenannten fastboot-Modus gebootet werden. In diesem Modus besteht die Möglichkeit, das Gerät in die Werkeinstellung zu setzen. Voraussetzung hierfür ist, dass der Entwicklermodus noch aktiviert ist!
0) Das Programm wird beendet.
Debloating des Smartphones
Die verwendeten beiliegenden Textdateien sind absichtlich nur mit von der Community getesteten und als gefahrlos bezeichneten Apps versehen. Es wurde bewusst auf risikobehaftete Experimente verzichtet!
Der Autor hat noch ein betagtes Lenovo Tablet herumzuliegen, was wir für eine Entblähungskur verwenden werden. Das Gerät wird in die Werkseinstellung gesetzt, um ein fabrikfrisches Tablet vorliegen zu haben.
Der Google-Einrichtungsassistent wird zuerst schnell durchgespielt, wobei alle datenschutzrelevanten Anfragen von Google abgewählt werden.
Das Gerät muss nun als Erstes in den Entwicklermodus geschaltet werden. Hierzu geht Ihr in die Einstellungen und anschließend auf "Info". Auf einigen Geräten heißt dieser Punkt auch "Über dieses Gerät".
Dort angekommen, müsst Ihr 7 mal auf "Build-Nummer" tippen, wonach eine Passwortabfrage erscheint. Nach der Eingabe ist der Entwicklermodus freigegeben.
Geht nun eine Ebene zurück und anschliessend auf "System". Hier zeigt sich jetzt der Punkt "Entwickleroptionen"; diesen klickt Ihr an.
Damit unser Gerät von einem PC angesteuert werden kann, müssen wir ihm das "USB-Debugging" gestatten. Klickt Ihr darauf, erscheint eine kleine Warnung, die mit "OK" bestätigt wird. Somit sind die Vorbereitungen abgeschlossen.
Das Gerät wird nun per USB an den PC angeschlossen und unser Script wird, falls noch nicht geschehen, in einem Terminal gestartet:
bash androidentblaehen.sh
Den erscheinenden Warnhinweis solltet Ihr aufmerksam lesen und anschließend mit "j" bestätigen.
Da wir unser Tablet per USB angeschlossen haben, gehen wir zu Menüpunkt 1. Falls das Gerät per Lan oder WLan verbunden wurde, so sollte Menüpunkt 2 ausgewählt werden. Hier könnten wir die IP-Adresse des Androiden eingeben und darüber verbinden. Zur korrekten Erkennung muss danach aber auf jeden Fall Menüpunkt 1 ebenfalls aufgerufen werden!
Nach der Anwahl von Punkt 1 erscheint auf dem Androiden folgende Meldung in den Benachrichtigungen:
Das bedeutet, dass der PC und das Tabelt noch keine Debugging-Verbindung in der Vergangenheit aufgenommen haben. Auch das Script sagt uns "unauthorized".
Die Benachrichtigung auf dem Androiden müsst Ihr nun bestätigen, das Script mit "Enter" bestätigen und den Punkt 1 erneut aufrufen.
Nun sollte alles korrekt sein. Das Script quittiert uns das mit dem Ausdruck "device", wo vorher noch "unauthorized" stand.
Für den Notfall sollte die F-Droid-App auf dem Gerät installiert sein. Das Script bietet die Möglichkeit, diese nun auch direkt vom PC auf das Androidgerät zu installieren (Menüpunkt 5). Hierzu muss der exakte Pfad mit dem App-Namen eingegeben werden. Hier beispielhaft für die auf dem PC im Download-Ordner liegende F-Droid.apk:
/home/[BENUTZERNAME]/Downloads/F-Droid.apk
Nach dem Druck auf "Enter" wird die Installation durchgeführt und ist nach kurzer Zeit abgeschlossen.
Um später vergleichen zu können, wie viele Apps vom Script entfernt wurden, sollte nun Punkt 3 des Scripts ausgeführt werden. Hierbei wird eine Liste im Home-Verzeichnis erstellt, die alle Apps des Tablets enthält. Im Falle des Autors sind 214 Apps auf dem Tablet installiert.
Testweise können nun unter Menüpunkt 6 alle in der oben genannten Text-Datei enthaltenen Apps deaktiviert werden. Ob Ihr diesen Schritt durchführen wollt oder nicht, überlassen wir Euch. Es ist nicht zwingend erforderlich und dient nur zu Testzwecken.
Wir gehen somit direkt zum Deinstallieren der gelisteten Apps zu Menüpunkt 7 über.
Nach dem Aufruf erscheint eine Sicherheitsabfrage, die Ihr lesen und bestätigen solltet. Nach der Eingabe eines "j" geht es auch sofort los.
Wundert Euch nicht über die Ausgabe "Failure [not installed for 0]". Dies bedeutet lediglich, dass die jeweilige App der Liste nicht auf Eurem Gerät installiert ist und somit auch nicht deinstalliert werden kann.
Anschließend kommt noch die Abfrage, ob auch Google Play Store-Dienste deinstalliert werden sollen.
ACHTUNG: Nach der Deinstallation könnten einige Apps nicht mehr funktionieren, die diese Dienste zwingend benötigen (z. B. Push-Dienste, Firebase)! Hier liegt die Entscheidung bei Euch, ob Ihr diese benötigt. In den meisten Fälle gibt es jedoch gute Alternativen, die auf Googles Zwänge verzichten. Der Autor wählt für das Tablet "j", also bitte auch das Google-Play-Zeug deinstallieren.
Nach Abschluss der Deinstallation solltet Ihr das Gerät über Menüpunkt 9 neu starten (Entwicklermodus bitte VORERST eingeschaltet lassen). Nun könnt Ihr testen, ob der Androide korrekt bootet und sich einwandfei bedienen lässt.
Auf einigen Geräten erscheint nach der Deinstallation der Google Play Dienste die Benachrichtigung, dass doch bitte die Google-Play Dienste installiert werden sollen. Das wollen wir natürlich nicht und tippen dafür etwas länger auf diese Benachrichtigung und schalten diese Meldung für alle Zeiten ab.
Das Gerät muss jetzt wieder über Menüpunkt 1 erkannt werden (siehe oben).
Sollte es irgendwelche gravierenden Probleme bei Eurem Gerät geben (beim Booten oder bei der Bedienung), die Ihr nicht lösen könnt, so kann der Androide wieder in die Werkseinstellung zurückgesetzt werden. Hier hilft Euch der Menüpunkt 11. Das Gerät bootet neu in den Fastboot-Modus, wo Ihr auf dem Display Eures Gerätes die Werkseinstellung (Factory Reset) auswählen könnt (meist mit den Laut-/Leiser-Tasten und Eingabebestätigung per Powerknopf). Bitte beachtet, dass nach der Rücksetzung ALLE PERSÖNLICHEN DATEN GELÖSCHT sind!
Nachbearbeitung - Alternative Apps
Wenn alles korrekt funktioniert, so kann per Script zum Vergleich eine weitere App-Auflistung erstellt werden (Menüpunkt 3). Der Autor hat nun nur noch 175 Apps auf dem Tablet, es wurden also 39 schädliche und unnütze Apps entdeckt und deinstalliert. Als toller Nebeneffekt sieht das App-Menü des Tablets sehr aufgeräumt aus.
Für die Funktionalität von Smartphones und Tablets sollten noch einige vertrauensvolle Standard-Apps per F-Droid installiert werden. Wir schlagen die Reihe von "Fossify" vor, die bei Eingabe dieses Begriffs in der F-Droid-Suche fein säuberlich aufgelistet werden. Wenn auch die Google-Play-Dienste entfernt worden sind, sind folgende Apps erforderlich:
- Fossify Phone
- Fossify Calendar
- Fossify Clock
- Fossify File Manager
- Fossify Gallery
- Fossify Contacts
- Fossify SMS Manager
Es können aber auch nach Lust und Laune weitere Apps installiert werden (z. B. Auroa-Store für nicht-freie Apps).
Möglicherweise schwirrt noch die ein oder andere App auf dem Androiden, die Ihr gerne loswerden möchtet und vom automatischen Durchlauf nicht berücksichtigt wurden. Auch hierbei unterstützt Euch das Script (Menüpunkt 8).
Allerdings solltet Ihr ganz sicher sein, dass die zu entfernende App auch wirklich nicht zwingend vom System benötigt wird!
Der Autor empfiehlt hierfür, das Tool "Stanley" über F-Droid zu installieren. Diese App listet fein säuberlich alle installierten Apps des Gerätes auf, mit genauem Namen und dem passenden Programm-Icon. Zum Einen lässt sich die störende App anhand des Icons sehr schnell ausfindig machen und zum Anderen könnt Ihr den vollständigen Namen schnell in die Internet-Suchmaschine Eurer Wahl eingeben, um einschlägige Informationen darüber zu erhalten, welchem Zweck diese App dient.
Steht die Entscheidung, die App zu deinstallieren, so öffnet Punkt 8 des Scripts. Hier gebt Ihr den bereits ermittelten vollständigen Namen der App ein. Nach der Bestätigung ist diese verbannt.
Gerne könnt Ihr diese App in Eure eigene "AndroidEntblaehenListe.txt" für zukünftiges Entblähen nun mit aufnehmen.
Wenn nach der Deinstallation weiterhin alles zu Eurer Zufriedenheit funktioniert - dann herzlichen Glückwunsch!
Ihr habt nun ein stark bereinigtes Gerät, das einiges an Ballast losgeworden ist.
Ihr müsst nun nur noch den Entwicklermodus des Androiden wieder ausschalten! Dies geschieht über den Schiebeschalter:
Und hiermit endet der erste Teil des Workshops "Android zähmen - Debloating und Firewalling". Im zweiten Teil kümmern wir uns um weitere unangenehme Apps, die nicht deinstalliert wurden, aber Kontakt mit ihrem Heimatserver aufnehmen und Daten über Euch sammeln.
Anschließend werden wir datenschutzrechtlich ein sehr sicheres Gerät unser eigen nennen, das den Vergleich in Bezug auf Privatsphäre mit manch einem Custom Rom standhalten oder sogar überbieten kann.
Hat euch der Beitrag gefallen? Eine Spende dürft ihr gern via Lightning an meine Adresse dirks@lnbits.yourdevice.ch senden! Danke schön!!