Opensource Apps für CyanogenMod installieren
16.10.2014

Nach der Installation von Cyanogenmod und den Einstellungen fehlen jetzt noch die Anwendungsprogramme - neudeutsch Apps. Google möchte auf Android-Smartphones natürlich den Google Play Store sehen. Allerdings habe ich keine Lust auf Apps, die Zugriff auf meine persönlichen Daten, meinen Standort, meine Kamera und das Internet haben und von denen ich nicht weiß, was sie tun. Dass eine Datenspionage nicht nur Theorie ist, zeigen zwei exemplarische Nachrichten: zum einen ermittelt die Bildschirmtastatur Swype mehrere Male pro Minute den Standort des Smartphones. Wozu bitte schön muss eine Bildschirmtastatur meinen Standort an den Anbieter schicken ? Die Ausrede von Swype finde ich ziemlich dürftig. Das zweite Beispiel ist eine Taschenlampen-App von GoldenShores Technologies, die persönliche Daten an Werbenetzwerke weitergegeben hat und immer noch im Play-Store ist. Google scheint es nicht zu interessieren, welche Spionage-Apps in dem eigenen Play-Store angeboten werden. Deshalb sollten auch nicht die GApps installiert werden, wie es in einigen Anleitungen zu CyanogenMod zu lesen ist. Als Open-Source-Anhänger bevorzuge ich Apps, bei denen der Quellcode vorhanden ist. Aber auch ich komme nicht an Closed-Source-Apps vorbei. Das einzige was bei Closed-Source-Apps hilft, ist sie in eine Art "App-Gefängnis" zu stecken. Ein App-Gefängnis kann mit Open-Source-Apps wie App Settings oder XPrivacy und Firewall-Einstellungen (AFWall+) konfiguriert werden. Zunächst erst einmal zu den Open-Source-Apps.
Quellen für Apps
Auf den folgend aufgelisteten Webseiten werden Open-Source-Apps angeboten. Bei diesen Apps ist der Quellcode vorhanden, so dass die Wahrscheinlichkeit von Malware in den Apps gering ist.
- F-Droid
- https://f-droid.org/packages/
- viele kleine nützliche Apps
- mit Quellcode zum Lernen
- apk-Dateien können direkt über den Browser heruntergeladen werden
- kleine Kritikpunkte:
- einige Apps kann ich nicht aus dem Quellcode bauen - hier fehlt eine Build-Anleitung
- die älteren Versionen der apk-Dateien werden gelöscht
- es wird nicht unterschieden zwischen aktuellen und stabilen Versionen
- Beispiel: die stabile VLC Version 1304 ist nicht mehr vorhanden, Version 9904 stürzt häufig ab
- Xposed Framework
- App-Suche: https://repo.xposed.info/module-overview
- viele kleine nützliche Apps
- apk-Dateien können direkt über den Browser heruntergeladen werden
- Trennung in aktuelle und stabile Versionen
- leider ist nicht von allen Xposed-Modulen der Quellcode vorhanden
- apk-Datei unter: https://repo.xposed.info/module/de.robv.android.xposed.installer
- Quellcode unter: https://github.com/rovo89/XposedInstaller
Dazu kommen einzelne Apps, die bei den üblichen Versionsverwaltungssystemen gespeichert sind: github.com, sourceforge.net oder code.google.com.
Zum Herunterladen von Apps aus dem Google-Play-Store ohne Google-Account gibt es die Seiten https://apkpure.com, https://apps.evozi.com/apk-downloader oder https://de.uptodown.com/android.
WICHTIG !!! Beim Download der APK-Dateien von diesen Seiten sollte nach dem Download immer die Prüfsumme überprüft werden (SHA1 oder ein besserer Hash-Algorithmus). Hilfreich kann auch ein Download derselben Version von verschiedenen Seiten sein. Die Prüfsummen der Dateien sollten dann identisch sein.
Apps, die sich mit Verschlüsselung, verschlüsselter Kommunikation und sicherem Websurfen beschäftigen, gibt es beim Guardianproject oder zum Beispiel bei Signal.
Installation von Apps
F-Droid und Xposed Apps
Die folgenden Kommandozeilen sollen die Installation von Apps auf das Smartphone automatisieren. Dabei muss das Smartphone per USB-Kabel an ein Linux-Laptop angeschlossen und wie in den Einstellungen beschrieben konfiguriert sein:
- Installation von Apps aus unbekannten Quellen zulassen
- Root-Zugriff für Apps & ADB
- USB-Debugging
- WLAN aus
- Flugmodus an
Nach diesem Abschnitt schreibe ich zu den Apps stichpunktartig, wofür sie zu gebrauchen sind. Zunächst zur Installation. Die Raute vor einer Zeile bedeutet, dass ein Kommentar folgt.
mkdir -p ~/cyanogenmod/apps
cd ~/cyanogenmod/apps
# download android debug bridge if it does not exist
if [ ! -e platform-tools/adb ]; then
# download android debug bridge
# you might need the 32-bit libraries
# sudo apt-get install ia32-libs
wget https://dl.google.com/android/repository/platform-tools_r19.0.1-linux.zip
# extract the zip that contains adb
unzip platform-tools_r19.0.1-linux.zip
fi
numberOfADBDevices=$(adb devices | grep "device$" | wc -l)
if [ "$numberOfADBDevices" != "1" ];then
echo "Did not find one smartphone with adb devices: $numberOfADBDevices"
echo "Did you connect your smartphone to your computer ?"
return
fi
install_fdroid_apk() {
downloadUrl=$(wget -O - "https://f-droid.org/packages/$1" \
2>/dev/null | grep -m 1 "href.*repo.*apk\"" | \
sed 's|.*href="\([^"]*\.apk\)".*|\1|g')
wget "$downloadUrl"
apkName=$(echo "$downloadUrl" | sed 's|.*/||g')
./platform-tools/adb install "$apkName"
}
install_xposed_apk() {
downloadUrl=$(wget -O - "https://repo.xposed.info/module/$1" \
2>/dev/null | grep -m 1 "Stable.*href.*apk\"" | \
sed 's|.*href="\([^"]*\.apk\)".*|\1|g')
wget "$downloadUrl"
apkName=$(echo "$downloadUrl" | sed 's|.*/||g')
./platform-tools/adb install "$apkName"
}
install_fdroid_apk dev.ukanth.ufirewall
install_fdroid_apk org.pocketworkstation.pckeyboard
install_fdroid_apk org.mozilla.klar
install_fdroid_apk net.osmand.plus
install_fdroid_apk org.connectbot
install_fdroid_apk org.sufficientlysecure.localcalendar
install_fdroid_apk org.bc_bd.mrwhite
install_fdroid_apk net.tapi.handynotes
install_fdroid_apk org.penghuang.tools.rotationlock
install_xposed_apk de.robv.android.xposed.installer
install_xposed_apk de.robv.android.xposed.mods.appsettings
install_xposed_apk biz.bokhorst.xprivacy
install_xposed_apk com.spazedog.xposed.additionsgb
install_xposed_apk com.hamzah.rotationforcer
# can be installed again for another device with:
# for filename in $(ls -1 *apk); do ./platform-tools/adb install "$filename"; done
APK-Dateien sind die Installationsdateien für Android (Android Package). Sie sind nichts weiter als umbenannte ZIP-Dateien und werden bei der Installation automatisch entpackt. Bevor es weitergeht müssen die Firewall AFWall+ und einige Apps konfiguriert werden.
Firewall AFWall+ einschalten und konfigurieren
Die folgenden Einstellungen gelten für die Version dev.ukanth.ufirewall_171.apk und könnten in zukünftigen Versionen leicht abweichen.
- AFWall+ starten
- Superuser-Zugriff - Zulassen und dauerhaft merken
- Einstellungen (drei Punkte rechts oben) - Enable Firewall
- Einstellungen - Preferences - Languages - German
- Einstellungen - Preferences - DNS Proxy (ganz unten) - Disable DNS via netd (bzw. DNS über netd deaktivieren)
- Einstellungen - Fix Startup Data Leak - einschalten (sollte schon eingeschaltet sein)
- Einstellungen - Show UID for Apps (nur aus Interesse)
- alle Anwendungen verbieten
- Firefox zulassen (Häkchen setzen)
Wer noch weiteren Informationsbedarf zur AFWall hat, kann auf der Website von Mike Kuketz eine detaillierte Beschreibung der Firewall AFWall nachlesen.
Hacker's Keyboard konfigurieren
Die folgenden Einstellungen gelten für die Version org.pocketworkstation.pckeyboard_1037.apk und könnten in zukünftigen Versionen leicht abweichen.
- Hacker's Keyboard starten (über Apps)
- Enable Keyboard - Hacker's Keyboard - OK
- Keyboard height, landscape - 45% - OK
- Input Language - Deutsch
- Set input method - Hacker's Keyboard - Einrichten - Keyboard mode, portrait - Full 5-row layout
- Hacker's Keyboard - Einstellungen - Spracheingabe ist deaktiviert
- Hacker's Keyboard - Einstellungen - Key feedback settings - Pop-up bei Tastendruck aus
Terminal einrichten
- Terminal starten und die Menü-Taste von Android drücken
- Terminal-Einstellungen - Aktionsleiste verstecken
- Terminal-Einstellungen - UTF-8 als Standard definieren
- Terminal-Einstellungen - Shell - "/system/xbin/bash" einstellen
Xposed Installer einrichten
- Xposed Installer starten
- Einstellungen - Downloads aktivieren ausschalten - dann Zurück-Knopf des Geräts drücken
- auf Framework tippen - OK
- Installieren - Root zulassen - nicht Neustarten - Abbrechen (später neu starten)
- auf Module tippen - alle auswählen
- Smartphone neustarten (lange auf den Power-Knopf drücken)
Xposed Modul App Settings einrichten
- App Settings starten
- Firefox auswählen - Einstellungen an - Berechtigungen an - genauer Standort, Kamera-Berechtigung, NFC, Record_Audio ausschalten - OK - rechts oben auf speichern tippen - OK
- Taschenlampe (net.cactii.flash2) - Einstellungen an - Berechtigungen an - Kamera-Berechtigung ausschalten - speichern - OK
- cLock (com.cyanogenmod.lockclock) - Einstellungen an - Berechtigungen an - Standort, Internet-Berechtigung ausschalten - speichern - OK
- HandyNotes (net.tapi.handynotes) - Einstellungen an - Berechtigungen an - Read_Phone_State-Berechtigung ausschalten - speichern - OK
- eventuell sind weitere Einstellungen erforderlich - ich habe erst einmal nichts Verdächtiges gefunden
Wer XPrivacy statt App Settings ausprobieren möchte, kann auf der Website von Mike Kuketz eine detaillierte Beschreibung von XPrivacy finden. Mir scheint XPrivacy etwas kompliziert.
Offline Terminkalender einrichten
- CyanogenMod-Einstellungen starten
- Gerät - Apps - Offline Calendar
- Datenschutz aktivieren - ausschalten
- Offline Calendar starten
- auf das + rechts oben tippen, um einen Kalender hinzuzufügen
- Name eintippen - Fertig
- jetzt kann der Kalender benutzt werden
Firefox einrichten
- Firefox starten
- auf Startseite: The Mozilla Project gedrückt halten - Löschen
- auf Startseite: Firefox Marketplace gedrückt halten - Löschen
- Menü-Taste für Einstellungen drücken
- Einstellungen - Anpassung - Startbildschirm - Seitenvorschläge anzeigen aus
- Einstellungen - Anpassung - Startbildschirm - Automatisch aktualisieren - Nur über WLAN
- Einstellungen - Anpassung - Suche - auf Suche tippen z.B. Google - entfernen
- Einstellungen - Privatsphäre - Cookies - Nicht erlauben
- Einstellungen - Privatsphäre - Passwörter speichern - aus (individuell)
- Einstellungen - Privatsphäre - Private Daten löschen (z.B. nach längerem Internetbrowsen)
- Einstellungen - Mozilla - Produktankündigungen anzeigen aus
- Einstellungen - Mozilla - Absturzmelder aus
- Einstellungen - Mozilla - Firefox-Statusbericht aus
- Datenübertragung zu Google reduzieren: about:config
browser.safebrowsing.enabled auf false setzen
browser.safebrowsing.malware.enabled auf false setzen - Todo: about:config
- Todo: Add-ons z.B. Random Agent Spoofer
- Todo: Privatsphäre in Firefox verbessern
- Todo: Orweb als Alternative zu Firefox ansehen
Xposed Additions konfigurieren
- Xposed Additions starten
- Buttons auswählen
- Add new Key - z.B. Home-Button drücken - OK
- auf "Home" tippen
- Add new Condition - Screen Off
- auf "Screen Off" tippen - z.B. "Click" auswählen
- auf "Click" tippen - z.B. Media Play/Pause auswählen
- jetzt kann durch kurzes Drücken der Home-Taste die laufende Musik gestoppt bzw. gestartet werden, wenn der Bildschirm des Smartphones ausgeschaltet ist
- mehr Funktionen habe ich in einem Beitrag über den Headset-Button-Hack beschrieben
OsmAnd einrichten
Leider wurden in der OpenStreetMap-Anwendung OsmAnd~ eine Tracking-Funktion zur Webseite www.google-analytics.com eingebaut. Warum die Admins von F-Droid.org diese Tracking-Funktion nicht ausbauen, weiß ich nicht. Ein einfacher Workaround auf dem Smartphone besteht darin, die Namensauflösung zu Google-Analytics in der Datei /etc/hosts zu blockieren:
mount -o remount,rw /system
# if the remount does not work use "adb remount"
# redirect the name resolution to localhost
echo "127.0.0.1 www.google-analytics.com google-analytics.com 0.android.pool.ntp.org 1.android.pool.ntp.org 2.android.pool.ntp.org 3.android.pool.ntp.org android.pool.ntp.org clients3.google.com" >> /system/etc/hosts
# change /system read-only again
mount -o remount,ro /system
WLAN einschalten
Nachdem die Firewall AFWall+ konfiguriert wurde, kann jetzt das WLAN eingeschaltet werden.
- Einstellungen von CyanogenMod starten
- auf WLAN tippen
- WLAN-Schieber auf "an" nach rechts ziehen bzw. tippen
- WLAN-Verbindung auswählen
- Passwort eingeben und verbinden lassen
Beschreibung der Apps
Hier ist die Beschreibung der oben installierten und konfigurierten Anwendungen für CyanogenMod.
- AFWall+
- die wichtigste App für Android - der Anti-Datenspion
- diese App muss auch zuerst per USB installiert werden, bevor die Netzwerkverbindungen aktiviert werden
- grafische Oberfläche für die Firewall
- die Firewall kann Anwendungen den Netzwerkzugriff sperren und somit für mehr Privatsphäre sorgen
- Download: https://f-droid.org/packages/dev.ukanth.ufirewall
- Network Log
- kann die Zugriffe von Apps auf das Internet protokollieren
- interessant - aber nicht unbedingt notwendig
- Download funktioniert nicht mehr: https://f-droid.org/packages/com.googlecode.networklog
- Download Mirror: com.googlecode.networklog-1.apk
- Hacker's Keyboard
- eine Bildschirmtastatur mit deutlich mehr Tasten als die Standard-Tastatur
- für die Terminal-App und zum Schreiben unersetzlich
- die Höhe der Tastatur auf dem Bildschirm ist einstellbar
- Download: https://f-droid.org/packages/org.pocketworkstation.pckeyboard
- VLC Media player
- VLC kann Musik und Videos abspielen
- ist aus meiner Sicht besser als Apollo und Google Video Player
- die Version 0.9 ist allerdings instabil und crasht häufig
- Download: Update 2017: mittlerweile direkt auf der VLC-Website https://www.videolan.org/vlc/download-android.html
- ( Historisch: Version 1304: https://www.torsten-traenkner.de/cyanogenmod/org.videolan.vlc_1304.apk )
- ( sha1sum org.videolan.vlc_1304.apk d12762cb10490adbe8a1fafc7c27bb7fe8fd12f7 )
- Firefox
- mobiler Firefox-Browser
- als Ersatz für den vorinstallierten Google-"Browser"
- Download von F-Droid als Firefox Klar: https://f-droid.org/packages/org.mozilla.klar/
- "Firefox Klar" soll angeblich den Benutzer vor Überwachung durch Webseitenbetreiber und Werbung schützen
- von der Mozilla Website: https://www.mozilla.org/de/firefox/mobile/
- OsmAnd~
- blöder Name für die App
- die Abkürzung steht für OpenStreetMap Automated Navigation Directions
- kann Karten von OpenStreetMap für die spätere Offline-Nutzung herunterladen
- Download: https://f-droid.org/packages/net.osmand.plus/
- sinnvoll ist es, die Tracking-Funktion zu Google-Analytics auszuschalten
- Offline Calendar
- Terminkalender ohne Google-Konto
- ein privater Terminkalender
- Download: https://f-droid.org/packages/org.sufficientlysecure.localcalendar
- PDF Reader
- stellt PDF-Dateien auf dem Smartphone dar
- scheint unter den vielen PDF-Readern einer der flüssigsten PDF-Reader zu sein
- Download bei F-Droid funktioniert nicht mehr: https://f-droid.org/packages/io.github.droidapps.pdfreader
- Download Mirror: https://shop.belmarket.ir/io.github.droidapps.pdfreader_40000.apk
- der PDF-Betrachter hängt gelegentlich - eine brauchbare Alternative ist: "Document Viewer"
- Download von Document Viewer: https://f-droid.org/packages/org.sufficientlysecure.viewer
- ConnectBot
- kann SSH und telnet-Verbindungen herstellen
- aber auch lokale Shell-Skripte per Desktop-Shortcut starten
- der Desktop-Shortcut kann unter der Rubrik "Widgets" eingerichtet werden
- ist eher für Entwickler interessant
- kann Text kopieren und einfügen im Gegensatz zur Terminal-App (jackpal.androidterm)
- zur Automatisierung: "Local"-Verbindung lang gedrückt halten - Host editieren - Post-Login Automatisierung - Befehl eingeben
- der unsägliche "Wollen Sie wirklich Beenden"-Dialog läßt sich mit "killall org.connectbot" beenden
- benötigt weniger Berechtigungen (Permissions) als Scripting Layer for Android (SL4A)
- kann aber mehr als GScript Lite (z.B. interaktive Eingaben von Shell-Skripten annehmen)
- Download: https://f-droid.org/packages/org.connectbot
- Rotation Lock
- stellt die Drehung des Smartphone-Bildschirms fest auf Portrait Mode (Hochformat)
- als Opensource-Ersatz für ui.robot.rotate aus dem Google Play Store
- Download: https://f-droid.org/packages/org.penghuang.tools.rotationlock
- Landscape Forcer
- macht genau das Gegenteil von Rotation Lock
- stellt die Drehung des Smartphone-Bildschirms fest auf Landscape Mode (Querformat)
- als Opensource-Ersatz für ui.robot.rotate aus dem Google Play Store
- ist etwas langsam beim Umschalten des Formats
- hat eine kleine Macke beim Abschalten des Landscape Mode
- durch Gedrückthalten eines (beliebigen) Icons wird wieder das Hochformat eingestellt
- Download: https://repo.xposed.info/module/com.hamzah.rotationforcer
- App Settings
- kann Apps die Rechte entziehen
- z.B. das Lesen der privaten Kontakte oder Internetzugriff
- Download: https://repo.xposed.info/module/de.robv.android.xposed.mods.appsettings
- XPrivacy
- ist ein XPosed Modul, das die Berechtigungen von anderen Apps überwachen kann (z.B. Standortzugriff)
- scheint etwas komplizierter als App Settings
- Download: https://repo.xposed.info/module/biz.bokhorst.xprivacy
- Xposed Additions
- kann alle Hardwaretasten und Headset-Buttons empfangen und Aktionen ausführen
- als Opensource-Ersatz für com.kober.headsetbutton aus dem Google Play Store
- müßte allerdings noch etwas weiterentwickelt werden, damit mehrere Tastendrücke abgefragt werden können
- Download: https://repo.xposed.info/module/com.spazedog.xposed.additionsgb
- Debian Kit
- ein echtes GNU/Linux unter dem verkrüppelten Android
- läuft parallel zum Android-System
- einfacher Download von Programmen in Debian-Kit über apt-get
- die Anleitung ist etwas umständlich beschrieben - unterm Strich aber einfach zu installieren
- Mr. White
- eine kleine App, die einen weißen Bildschirm mit hoher Helligkeit zeigt
- als Ersatz für die Taschenlampe
- Farbe und Helligkeit sind einstellbar
- die Helligkeit ist über die Lautstärketasten einstellbar
- Download: https://f-droid.org/packages/org.bc_bd.mrwhite
- Brightness Widget
- kann einfach die Helligkeit des Bildschirms einstellen
- über 5 Tasten mit je einer Helligkeits-Stufe
- Download funktioniert nicht mehr: https://f-droid.org/packages/priv.twoerner.brightnesswidget
- Download Mirror: priv.twoerner.brightnesswidget-1.apk
- Lock Screen
- sperrt den Bildschirm durch Drücken eines Icons
- schont die Power-Taste
- Download funktioniert nicht mehr: https://f-droid.org/packages/it.reyboz.screenlock
- Download Mirror: it.reyboz.screenlock-1.apk
- HandyNotes
- einfaches, aber gutes Programm für Notizen
- die Notizzettel können als Widget auf den Desktop gezogen werden
- Download: https://f-droid.org/packages/net.tapi.handynotes
- NXT Remote Control
- nur für Menschen interessant, die einen Lego-Roboter haben
- damit lassen sich die Motoren des Lego-Roboters per Bluetooth steuern
- Download funktioniert nicht mehr: https://f-droid.org/packages/org.jfedor.nxtremotecontrol
- Download Mirror: org.jfedor.nxtremotecontrol-1.apk
Opensource Apps für Fortgeschrittene und Entwickler
Neben den hier aufgelisteten Apps gibt es noch einige weitere Apps und Einstellungen, die eher für Fortgeschrittene und Entwickler interessant sind. Die Beschreibung dafür habe ich auf eine zusätzliche Seite für Fortgeschrittene ausgelagert. Das Debian-Kit bietet ein echtes GNU/Linux mit all seinen Kommandozeilen-Programmen und einer Compilerumgebung, cryptsetup hilft bei der Verschlüsselung und die Bash als Default Shell für die Android Debug Bridge (adb) bietet eine komfortablere Bedienung als ash. Die Konfiguration des SSH-Daemons unter CyanogenMod habe ich in meinem Artikel über den Dateiaustausch zwischen Laptop und Smartphone ausführlich beschrieben.
Viel Spaß beim Ausprobieren der Apps und beim Experimentieren !
Falls noch etwas unklar sein sollte, dann kannst du die Kommentar-Funktion benutzen.