Vorgeschichte

Ich bin schon lange auf der Suche nach einem Feature für das mich Apple BenutzerInnen vermutlich anlächeln oder gar auslachen werden: die Synchronisation meiner Twitter Timeline von verschiedenen Geräten. Konkret von einem Android Telefon und meinem Desktop Betriebssystem (KDE Neon). Leider scheint die Nachfrage nicht sooo hoch zu sein (obwohl es durchaus Personen gibt die gleich empfinden), dass es zumindest auf den gängigen Dektopsystemen wie KDE, Gnome oder XFCE keinen Twitterclient gibt der solch eine Funktionalität bereitstellt.

Die Lösung

Letztendlich habe ich das Problem nicht gelöst, sondern nur umgangen indem ich einfach eine entsprechende Android App mit Tweetmarker Support auf dem Desktop betreibe. Bei der Suche nach entsprechenden Lösungen bin ich auf Anbox aufmerksam geworden:

eine Möglichkeit Android in Form eines Containers unter Linux laufen zu lassen. Dafür werden via LXC verschiedene Funktionen des Kernels zwischen Android und dem Host-Betriebssystem geteilt. Die Vorteile sind zum einen, dass nicht die komplette Hardware emuliert werden muss zum anderen, dass Anbox die entsprechenden Apps direkt in den Desktop integriert. Das heißt für mich, dass ich unter KDE Plasma einfach via "Super"(Windows)-Taste oder dem KRunner (Alt+F2) die entsprechende App starten kann. Auf der Homepage ist unter "Get started" ein recht gutes Tutorial zu finden wie das Ganze in Betrieb genommen werden kann, sodass ich mir hier die genauen Installationsschritte erspare. Um nach der Installation eine App zu installieren muss man die *Android debug bridge* `adb` verwenden, die man unter Umständen noch installieren muss. Ein `adb devices -l` sollte dann, wenn alles geklappt hat, eine Ausgabe wie: ``` emulator-5558 device product:anbox_x86_64 model:Anbox device:x86_64 ``` ergeben. Nun noch im Terminal zum Speicherort der apk-Datei navigieren und dann kann mittels ``` adb -s emulator-5558 install .apk ``` der Installationsprozess gestartet werden, welcher im Erfolgsfall mit einem schlichen `Success` antwortet. Nun kann aus dem Anbox Appmanager der im Zweifel manuell via ``` snap run anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity ``` gestartet werden kann, einfach die entsprechende App ausgewählt bzw. gestartet werden. In meinem Fall habe mich ich nach umfangreichen Tests mit TweetCaster und Plume für den Twitterclient Talon entschieden, der mit der entsprechenden Einstellung "TweetMarker aktiviern -> Manuelle TweetMarker Synchronisation" genau das bietet wonach ich suche: eine Möglichkeit zur zuletzt gelesenen Position in meiner Timeline zurückzukehren.

Fallstricke

Für die oben genannte Lösung gibt es ein paar Hinweise die ich hinzufügen möchte, damit anderen die recht langwierige Suche und Fehlerbehebung erspart bleibt.

  • Bei Anbox handelt es sich um Alpha Software. Dass heißt konkret, dass es zu Abstürzen oder gar Datenverlust kommen kann. Auch wenn das in meinem Fall eher eine geringe Rolle spielt, da es bei einer Twitter-App keine großen Daten gibt, die verloren gehen können. Ich habe derzeit das Problem, dass Talon abstürzt, wen ich erneut versuche das "Settings" Menü aufzurufen.
  • Wenn es beim Booten zu Problemen mit den Kernelmodulen ashmem oder binder kommt, kann ein Neuerstellen der Module mit dem Befehl sudo dpkg-reconfigure anbox-modules-dkms Abhilfe schaffen.
  • Für die Benutzung unter Ubuntu basierenden Systemen ist es erforderlich den offiziellen, von Canonical gepflegten, Kernel zu verwenden, da es sonst zu Fehlermeldungen a la
cannot change profile for the next exec call: No such file or directory
``` kommen kann. Dies hat mehr mit Snap als mit Anbox zu tun, sollte aber beachtet werden. Mit meinem Mainline Kernel 4.11.x konnte ich demnach Anbox nicht betreiben.
([Quelle zur Lösung](https://itsfoss.com/fix-snap-error/))

* Um eigene Apps in Form von .apk Dateien zu installieren muss das verwendete Dateisystem die POSIX Funktion `posix_fallocate` beherrschen. Die entsprechende Fehlermeldung lautet:

Failed to install .apk: Error: failed to write; posix_fallocate failed: ENOTSUP (Operation not supported on transport endpoint)

in dem entsprechenden [Issue auf Github](https://github.com/anbox/anbox/issues/108) werden Probleme mit ZFS erwähnt und ich selbst konnte auf meinem ext3 Dateisystem ebenfalls keine Apps installieren. Ich habe für diesen Zweck eine Migration auf ext4 vorgenommen und hatte seitdem keinerlei Probleme mehr.

###Fazit
Auch wenn es mit Kanonen auf Spatzen geschossen ist, mit einer über 300MB großen Snap Anwendung und einem emulierten Betriebssystem ein so einfaches Feature zu erhalten, so freut es mich doch zu sehen, dass im Jahre 2017 eine recht einfache, gut in den Desktop integrierte, Möglichkeit besteht Android-Apps laufen zu lassen. Mit Sicherheit werde ich es in Zukunft nicht bei der Twitter-App belassen und andere Geschichten wie Audible oder Netflix (Offline Funktion) testen...