Du bist hier:Start»CyanogenMod»Apps

Opensource Apps für CyanogenMod installieren

16.10.2014

Opensource Apps

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/repository/browse/
    • 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

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, http://apps.evozi.com/apk-downloader oder http://de.uptodown.com/android.
WICHTIG !!! Beim Download der APK-Dateien von diesen Seiten sollte nach dem Download immer die Prüfsumme überprüft werden (MD5 oder besser SHA1). 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 Whispersystems.

[ Update: Dezember 2015 ] Aufgrund der Abhängigkeit der App "Signal" zu Google-Bibliotheken, lohnt sich als Alternative ein Blick auf LibreSignal mit Websockets (experimental).

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.

# run the following commands from the command line on a Linux laptop

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 http://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/repository/browse/?fdid=$1" \
    2>/dev/null | grep -m 1 "href.*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 - "http://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 com.googlecode.networklog
install_fdroid_apk org.pocketworkstation.pckeyboard
install_fdroid_apk org.videolan.vlc
install_fdroid_apk org.mozilla.firefox
install_fdroid_apk net.osmand.plus
install_fdroid_apk org.connectbot
install_fdroid_apk org.sufficientlysecure.localcalendar
install_fdroid_apk io.github.droidapps.pdfreader
install_fdroid_apk org.bc_bd.mrwhite
install_fdroid_apk priv.twoerner.brightnesswidget
install_fdroid_apk it.reyboz.screenlock
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:

# remount /system to modify files
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/repository/browse/?fdid=dev.ukanth.ufirewall
  • 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/repository/browse/?fdid=org.connectbot
  • 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: http://repo.xposed.info/module/com.hamzah.rotationforcer
  • 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: http://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

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.

Kommentar schreiben