Mastodon IzzyOnDroid Twitter


Say thanks!
↓ Your product here? ↓
Das Inoffizielle Android-HandbuchAndroid kennenlernen, Tipps & TricksDas Inoffizielle Android-Handbuch
Android kennenlernen, Tipps & Tricks
Für EUR 16,99 bei Amazon kaufen
Das Inoffizielle Android SystemhandbuchTiefer ins System einsteigenDas Inoffizielle Android Systemhandbuch
Tiefer ins System einsteigen
Für EUR 7,00 bei Amazon kaufen
Die besten Android-AppsDen Androiden austattenDie besten Android-Apps
Den Androiden austatten
Für EUR 5,00 bei Amazon kaufen
 
enhelp

Android ohne Google 2: ownCloud

OwnCloud 6.0.3 Web Interface
OwnCloud 6 Web Interface; © Wakeup12 (CC-BY-SA); Quelle: Wikimedia

Im vorigen Artikel habe ich einige Gründe genannt, die mich dazu bewegen, meine Daten nicht in Google’s Hände zu legen – und meinen Androiden weitgehend “von Google zu befreien”. Wer den Artikel gelesen hat, und sich nun diese Fortsetzung ansieht, teilt sicherlich einige meiner Bedenken.

Android vollständig von allen Google Services zu befreien, erfordert einiges an Aufwand – da selbige i. d. R. auf fast allen Geräten bereits vorinstalliert sind. Meist reicht root allein nicht aus, sondern man muss auch ein Custom ROM installieren (welches aus Lizenzgründen fast generell ohne Google-Apps kommt). Damit jedoch wird man nicht nur einige “lästigen Elemente” los. Eine der “Nebenwirkungen” heißt außerdem: kein Gmail, kein Playstore. Was den meisten sicherlich ein wenig zu weit geht. Doch selbst wenn man genau dies in Erwägung zieht, möchte man zumindest im Vorfeld über verfügbare Alternativen informiert sein.

Auf meiner Suche nach “Google Ersätzen” waren für mich verschiedene Aspekte wichtig:

Im ersten Schritt wollte ich mit möglichst einfachen Mitteln möglichst viele “Kern-Dienste” auf einen Schlag ersetzen. Bevorzugterweise sollte “root” hier nicht vorausgesetzt werden, und die Lösung somit auch für “Einsteiger” praktikabel sein. Damit war die Liste auf einen Kandidaten geschrumpft: ownCloud.

Android ohne Google:

Ein “älterer” Artikel, der aber definitiv hierher gehört:

Inhalt dieses Artikels

  1. Was bietet ownCloud?
  2. ownCloud installieren
  3. Kalender und Kontakte aus Android ex-, und in ownCloud importieren
  4. Android Setup
  5. Weitere hilfreiche Links

Was bietet ownCloud?

Im Screenshot oben rechts lassen sich in der Menü-Leiste (linker Bildrand) einige der Features erkennen, die bei ownCloud bereits “ab Werk” verfügbar sind. Die folgende (unvollständige) Liste stellt ihnen ausgewählte Android-Gegenstücke zur Seite, mit denen sie synchronisieren können:

Obwohl dies bei Weitem keine vollständige Liste verfügbarer “ownCloud Apps” ist (mehr dazu weiter unten), deckt es doch bereits die meisten unserer sensiblen Daten ab: Kontakte, Kalender-Ereignisse, und Dateien. Da desweiteren die Nutzung von ownCloud und der zugehörigen Android-Apps (sowie das “deaktivieren” der entsprechenden Google-Gegenstücke) ohne root oder gar Custom Rom erfolgen kann, scheint es mir eine gute Ausgangsbasis zu sein.

ownCloud installieren

ownCloud kann auf den verschiedensten Geräten installiert werden. Bei meiner Recherche stolperte ich über Installationen auf Raspberry Pi, Fritz!Box, und allen möglichen Computer-Betriebssystemen. Natürlich kann ich nicht alle Varianten durchspielen. Daher habe ich die Installation auf einem meiner Ubuntu Computer durchgeführt; die folgende Beschreibung bezieht sich somit auf Ubuntu 12.04. Anleitungen für andere Systeme finden sich auf der ownCloud install page (und auch unten bei den “weiterführenden Links”).

echo "deb http://download.opensuse.org/repositories/isv:/ownCloud:/community/xUbuntu_12.04/ /" >> /etc/apt/sources.list.d/owncloud.list
wget http://download.opensuse.org/repositories/isv:ownCloud:community/xUbuntu_12.04/Release.key
apt-key add - < Release.key
apt-get update
apt-get install owncloud

# Ubuntu 12.04 (PHP < 5.4): /etc/apache2/conf.d/owncloud.conf benötigt:
#  php_flag magic_quotes_gpc off

Das war es auch bereits – Installation abgeschlossen! Natürlich kann man noch ein wenig “Feintuning” betreiben. Prinzipiell ist der eigene ownCloud Service jedoch nach dem abschließenden service apache2 reload einsatzbereit. Bei der ersten Anmeldung mittels Web-Browser führt ein Wizard durch die Ersteinrichtung. Ein paar “Tweaks” zur Beschleunigung des Systems lassen sich in der Datei /var/www/owncloud/config/config.php durch Hinzufügen von Elementen zum $CONFIG Array anbringen:

"dbhost" => "127.0.0.1", // wird MySQL auf ‘localhost’ genutzt, erspart das die Namensauflösung
"appstoreenabled" => false, // Default ist TRUE, womit die “Apps” Seite bei jedem Aufruf die Appstore-Liste abruft

// hat man geprüft, dass alles wie gewünscht funktioniert, lassen sich ein paar “Checks” deaktivieren:
"check_for_working_webdav" => false,
"check_for_working_htaccess" => false,

// wer gern manuell weitere “ownCloud Apps” hinzufügen möchte, sollte die Prüfung auf Schadcode aktivieren:
"appcodechecker" => true,

Zusätzliche Apps zur Erweiterung der ownCloud

Noch nicht unterstützt, aber scheinbar bereits in der Pipeline:

Kalender und Kontakte aus Android ex-, und in ownCloud importieren

Import
ownCloud Kontakte Importieren

Der Export ist recht einfach, und lässt sich mit Bordmitteln auf dem Androiden erledigen. Sowohl die hauseigene Kalender- als auch die Kontakte-App haben den Punkt “auf SD-Karte exportieren” im Menü, dessen Auswahl letztendlich in einer Datei im jeweiligen Standard-Format (.vcf aka VCard für Kontakte, sowie .ics aka iCalendar für Kalender-Ereignisse) resultiert – welche wiederum von nahezu allen anderen Kalender- und Kontakt-Applikationen akzeptiert werden. Die so entstandenen Dateien kopiert man auf seinen Computer, von wo aus sie schließlich in die ownCloud importiert werden.

Für den Import in ownCloud fiel meine Entscheidung auf Evolution, welches einen recht brauchbaren Import-Assistenten hat – der die ihm zugedachte Aufgabe auch anstandslos meisterte: Kontakte und Termine tauchten sofort in ownCloud auf. Aber natürlich lässt sich der Import auch mit ownCloud selbst durchführen: Befindet man sich im Kalender- bzw. Kontakt-Modul, öffnet ein Mausklick auf das Zahnrad-Symbol (ganz unten links im Menü) ein Formular, welches u. a. den “Import” anbietet (siehe Screenshot rechts). Das Format sollte dabei automatisch erkannt werden; falls dies nicht der Fall ist, lässt es sich auch direkt angeben.

Android Setup

Zertifikate

Da es uns hier in erster Linie um “Privatsphäre” geht, sollten wir auch auf eine verschlüsselte Übertragung achten. Schließlich wollen wir ja nicht, dass ein “Man in the Middle” sie unterwegs mitschneiden kann. Dafür muss der Server mit einem Zertifikat versehen werden. Wer für seinen Server ein von einer “offiziellen CA” herausgegebenes Zertifikat verwendet, kann diesen Abschnitt überspringen – da das Zertifikat dieser CA bereits bei Android hinterlegt ist, und somit das des eigenen Servers “beglaubigt”. Gleiches gilt für den Fall, dass sämtliche für den Kontakt mit ownCloud vorgesehenen Apps von sich aus mit “self-signed certificates” (selbsterstellten und selbst-signierten Zertifikaten) selbst umgehen können. Will man jedoch ein solches “self-signed certificate” einsetzen, und auch nur eine der zu verwendenden Apps (in meinem Fall: DavDroid1) kommt damit nicht klar, ist ein wenig “Handarbeit” angesagt.

Der “offizielle Weg” mit solchen Zertifikaten umzugehen, gestaltet sich wie folgt:

  1. man kopiert das Zertifikat der root CA (also das zum Signieren des Server-Zertifikats verwendete) in das Wurzelverzeichnis der SD-Karte
  2. jetzt öffnet man die Systemeinstellungen des Android-Gerätes, und wählt dort den Punkt Sicherheit
  3. hier scrollt man herunter zu Anmeldeinformationsspeicher, und wählt dort den Punkt Vom Speicher installieren

Das Zertifikat sollte Android automatisch finden, sofern es in einem der unterstützten Formate (z. B. .pem oder .crt) vorliegt. Haken an der Sache: Das System zwingt einen nun, den Sperrbildschirm mit einem PIN oder Passwort zu versehen. Wer dies ohnehin bereits tut, den dürfte dies nicht weiter stören. Für alle Anderen gibt es einen Work-Around – der allerdings “Mr. root” involviert:2

das eigene CA-Zertifikat für die Verwendung mit Android vorbereiten

Wie bereits beschrieben, benötigen wir hier das CA “root Zertifikat”, mit dem das Server-Zertifikat “signiert” wurde. TinyCA speichert dies beispielsweise unter dem Namen cacert.pem im Stammverzeichnis der zugehörigen CA ab – daher verwende ich im Folgenden auch diesen Dateinamen:

# den Hash des Zertifikates ermitteln
openssl x509 -inform PEM -subject_hash_old -in cacert.pem | head -1
# das Zertifikat vorbereiten (in diesem Beispiel nehme ich der Einfachheit halber an,
# der vorige Befehl gab `d12345` als Hash-Wert zurück)
openssl x509 -inform PEM -text -fingerprint -in cacert.pem > d12345.0
# wahrscheinlich optional: unter Benutzung eines plain-text Editors, den Base64
# kodierten Teil des Zertifikats an den Anfang der Datei verschieben

das Zertifikat als “trusted CA” (“vertrautes Zertifikat”) auf dem Androiden installieren3

Dieser Teil benötigt root – und das Beispiel verwendet unser gerade eben erzeugtes Zertifikat mit dem Hash d12345. Zunächst kopieren wir also die erzeugte Datei d12345.0 auf die SD-Karte unseres Android-Gerätes. Jetzt muss /system schreibbar gemacht werden (die meisten root-Explorer bieten diese Möglichkeit). Dann kann es losgehen:

# die Datei in das Zertifikats-Verzeichnis kopieren:
cp d12345.0 /system/etc/security/cacerts/
# die Dateiberechtigungen anpassen
cd /system/etc/security/cacerts/
chown root:root d12345.0
chmod 0644 d12345.0

Erledigt. Unsere CA sollte jetzt in der Liste der “Vertrauten Zertifikate” (in Settings → Sicherheit → Anmeldeinformationsspeicher → vertraute Zertifikate) im Reiter “System” aufgeführt sein – womit alle mit diesem Zertifikat signierten Zertifikate automatisch als “vertrauenswürdig” gelten.

Kontakte und Kalender synchronisieren

Add Account
Add Account

Hier fiel meine Entscheidung auf DavDroid. Die App ist im Playstore für 3 Euro – oder alternativ bei F-Droid für Umme zu haben. Neben der Tatsache, dass sie sowohl Kalender als auch Kontakte abdeckt, gab es noch weitere Gründe für diese Entscheidung: DavDroid ist Open Source. Es wird auf Github gehostet, wo jeder den Quellcode einsehen und überprüfen kann. Das F-Droid Team tut genau das, und erstellt das .apk sodann aus dieser geprüften Quelle selbst – bei Installation von dort sollten also keine “weiteren Beigaben” in die App gelangt sein. Daher empfehle ich auch die Installation von dort (und bei Gefallen eine Spende an den Entwickler ;) )

Nachdem die App installiert ist, können wir mit der Einrichtung beginnen. DavDroid registriert sich beim regulären Android Account-Service, dort müssen wir also auch unsere ownCloud Accounts einrichten. Dies kann entweder über die Einstellungen von Android, oder ganz bequem auch aus der DavDroid App selbst geschehen. Obwohl DavDroid Kalender und Kontakte abdeckt, sind (derzeit noch) getrennte Accounts für beide notwendig. Die dafür benötigten URLs finden sich hinter dem bereits oben beschriebenen Zahnrad-Symbol, wenn man auf das Icon mit der Kette klickt. Dazu noch die Anmeldedaten, und ab dafür – fertig. Nun sollten auch die Kontakte und Termine aus der “eigenen Wolke” an den üblichen Stellen unseres Androiden auftauchen, und mit selbiger synchron gehalten werden.

Abschließend nicht vergessen, die Kalender- und Kontakt-Apps entsprechend anzupassen – damit neue Kontakte und Termine auch an der richtigen Stelle (ownCloud) landen, und nicht weiterhin bei Google :)

Dateien synchronisieren

FolderSync
FolderSync Accounts

Bereits seit geraumer Zeit nutze ich FolderSync4, um meine Backups und weitere Daten zwischen Android-Gerät und Computer zu synchronisieren. Da diese App von Haus aus ownCloud unterstützt5 (siehe Screenshot rechts), kann ich sie auch gleich weiter verwenden. FolderSync unterstützt verschiedene Arten der Synchronisation: “two-way” und “one-way”. Daher lässt es sich sowohl nutzen, um Ordner-Paare (bestehend aus einem lokalen und einem diesem zugeordneten Remote-Ordner) synchron zu halten (also neue Dateien von der jeweils einen auch auf die jeweils andere Seite zu übernehmen, sowie gelöschte Dateien zu entfernen) – als auch zum reinen “Backup” beispielsweise für Fotos, die nur vom Gerät in den eigenen ownCloud Account hochgeladen werden sollen, sodass man auf dem Androiden wieder “Platz schaffen” kann.

Sowohl das Festlegen von Ordner-Paaren als auch die Planung ihrer Synchronisation obliegt zunächst dem Benutzer – und geschieht natürlich innerhalb der App. Wer sich wie ich für die Pro-Version entschieden hat, kann die Synchronisation in den FolderSync Einstellungen auch auf “manuell” setzen, und den Rest Tasker zu überlassen – was die Angelegenheit wesentlich flexibler macht. So möchte ich beispielsweise vermeiden, dass die Synchronisation meine “mobilen Daten frisst”. Darum kann sich FolderSync zwar auch selbst kümmern (der Sync lässt sich sogar auf bestimmte WLAN Netze eingrenzen). Doch mit Tasker kann ich auch weitere Bedingungen einbinden – um beispielsweise sicherzustellen, dass Titanium Backup mit dem Erstellen der Backups fertig geworden ist. Davon abgesehen: Selbst mit nur einem einzigen Sync-Event beispielsweise um 3:00 Uhr Nachts konfiguriert, prüfte FolderSync bei mir im 5-Minuten-Takt, ob es tätig werden müsse. Keine Ahnung warum – aber mit der Umstellung auf “nur manuell” (und dem Triggern per Tasker) hat sich das auch erledigt.

Natürlich gibt es da auch noch den offiziellen ownCloud Client, den man sich anschauen könnte. Im Playstore ist er für weniger als einen Euro (und bei F-Droid wiederum für Umme) zu haben. Diese App bietet beispielsweise den “instant Upload” von Fotos und Videos direkt nach deren Aufnahme, falls jemand so etwas benötigt. Sie könnte daher evtl. FolderSync ersetzen – kümmert sich jedoch nicht um Kalender und Kontakte. Zumindest derzeit nicht, nach der App-Beschreibung im Playstore zu urteilen.

Weitere Dinge, die sich synchronisieren lassen?

Da gäbe es noch ein paar. Mit weiteren passenden Apps ließe sich u. a. folgendes bewerkstelligen:

appshowtoprivacy


  1. dies könnte sich ändern, wenn der Entwickler sich überzeugen lässt ↩︎

  2. initiale Idee übernommen von Stack Exchange: Certificate Install without mandatory PIN lockscreen ↩︎

  3. Der hier beschriebene Weg gilt für Android ab Version 4.0 (ICS aka Ice Cream Sandwich). Gibt es das Verzeichnis /system/etc/security/cacerts/ nicht, aber stattdessen eine Datei namens cacerts.bks im Verzeichnis /system/etc/security/, finden sich die passenden Schritte im CAcert Wiki↩︎

  4. genau genommen die Pro-Version, die ich natürlich käuflich erworben habe ↩︎

  5. sowohl direkt, als prinzipiell auch über WebDAV ↩︎

  6. Danke an Thomas @tuxpost für diesen Link! ↩︎

2014-08-12