Zum Hauptinhalt Zur Navigation

Shashlik: Eine Android-Umgebung für jedes Linux

Mit Shashlik soll es möglich werden, APKs aus Android auf jeder Linux-Distribution auszuführen. Laut KDE-Entwickler Leinir steht das Projekt aber noch am Anfang. Langfristig könnte Shashlik auch für Plasma Mobile genutzt werden, auch wenn das nicht das Hauptziel des Projekts ist.
/ Sebastian Grüner
40 Kommentare News folgen (öffnet im neuen Fenster)
Schaschlikspieße auf einem Grill (Bild: Flickr.com / Valters Krontals - CC-BY 2.0)
Schaschlikspieße auf einem Grill Bild: Flickr.com / Valters Krontals - CC-BY 2.0

"Das ist das aufregendste schwarze Rechteck, das ich je gesehen habe" , sagt Dan Leinir Turthra Jensen, besser bekannt als Leinir, bei seiner Vorstellung von Shashlik auf der diesjährigen Akademy.(öffnet im neuen Fenster) Das Projekt soll es ermöglichen, Android-Apps auf einer unveränderten Linux-Distribution auszuführen.

Damit verfolgt Leinir ein Ziel, das vorerst entgegengesetzt zu dem von Plasma Mobile ist, wie er selbst sagt. Das erst am Samstag vorgestellte Plasma Mobile bringt die Software von KDE auf Smartphones. Das Hauptziel von Shashlik ist es laut Leinir hingegen, die Software von Android-Smartphones auf den Linux-Desktop zu bringen.

Bereits vor seinem Vortrag ist Leinir oft gefragt worden, warum dies überhaupt nötig sei. Immerhin enthalten die Paketquellen der Distributionen schon jetzt zehntausende Programme. Doch vielen Nutzern reicht das einfach nicht aus, sie wollen "Candy Crush spielen" .

Android-Aufbau sorgt für Probleme

Dass diese Weiterverwendung der Android-Apps abseits von Emulatoren noch nicht machbar ist, erscheint für Außenstehende zunächst wenig nachvollziehbar. Schließlich nutzt doch auch Android einen Linux-Kernel.

Doch sämtliche darüber hinausgehende Programme von Android unterscheiden sich von herkömmlichen Distributionen: Dazu gehören die Interprozesskommunikation Binder, die Dalvik-VM oder auch der Displayserver Surfaceflinger.

Viele Merkwürdigkeiten entfernen

Soweit möglich wird ein Großteil dieser von Leinir als Merkwürdigkeiten bezeichneten Eigenheiten von Android in Shashlik entfernt oder in minimalen Kontexten benutzt. So wird etwa Binder, das im Mainline-Linux-Kernel vorhanden ist, verwendet. Falls möglich soll aber auch auf Binder verzichtet werden.

Ein Großteil der in Surfaceflinger eingebauten Hardwareabstraktion sei entfernt worden, berichtet Leinir. Diese werde in Android wegen der unfreien Treiber benötigt. "Wir haben aber freie Treiber und Zugriff auf die Hardware" , sagt Leinir. Das entstandene "Loch" sei durch Wayland "gefüllt" worden. Das heißt, in Shashlik läuft Surfaceflinger auf Wayland, was Leinir mit dem komplett schwarzen Fenster unter großem Applaus demonstriert. Eine App darstellen kann das noch recht junge Projekt aber nicht.

Shashlik kann aber nicht alle dieser Android-Spezifika entfernen, da viele Apps bestimmte Dinge einfach voraussetzen und auch erwarten. So wird zum Beispiel bei dem Nachbau der Android-Runtime für die Apps auch ein Sub-Dateisystem erstellt, das die Systemordner von Android enthält. Diese Umgebung soll sich aber in die Host-Umgebung der Linux-Distribution einfügen.

Leinir betont, dass Shashlik im dem Sinne kein Emulator sei, wie dies auch für Wine gelte, was Auswirkungen auf die Architektur-Unterstützung habe. Zwar seien viele APKs standardmäßig auf mehreren ARM-Architekturen, MIPS und auch x86 einsetzbar, da die Apps die notwendigen Anpassungen dafür bereits mitbrächten. Fehle dies aber für x86, werde die App auch nicht über Shashlik auf dem Desktop ausführbar sein.

Konkrete Zukunftspläne mit und ohne Mobile

Sobald die Android-Apps laufen, will Leinir für eine "tiefe Integration" über Shashlik sorgen. Das heißt: Die Benachrichtigungen, Kontakte oder Ähnliches sollen auch auf dem Desktop verfügbar werden. Zudem soll jede App in einem Fenster dargestellt werden und sich so besser einpassen.

Die Software zum Steuern der Apps, der sogenannte Controller, soll außerdem Fähigkeiten erhalten, wie sie in den Einstellungen von Android verfügbar sind – also etwa detaillierte Statistiken zu den Apps. Schon bald soll das zurzeit noch auf Kitkat basierende Framework auf Android M aktualisiert werden. Leinir hofft, dadurch auf weitere "Merkwürdigkeiten" verzichten zu können.

Auch dafür, wie die Apps beim Nutzer landen könnten, hat Leinir schon Ideen. So könnte Muon Discover eingesetzt werden, da dieses als Portal zur Softwareverwaltung auf verschiedene Quellen ausgelegt sei. Vergleichsweise einfach werde dabei die Übernahme von Paketen aus dem freien Store F-Droid. Schwieriger aber vermutlich lösbar, so Leinir, werde die Integration von Googles Playstore. Ob der Amazon-Store eingebunden werden kann, bezweifelt Leinir.

Plasma Mobile als letzte Aufgabe

Zwar werde Shashlik vielfach mit dem neuen Plasma Mobile in Verbindung gebracht, diese direkte Verknüpfung sei aber falsch, bestätigt Leinir im Gespräch mit Golem.de. Wie erwähnt sei das primäre Ziel die Lauffähigkeit auf dem Desktop. Doch langfristig sollte Shashlik auch auf Plasma Mobile zur Verfügung stehen. Eine Verbindung der beiden Projekte ist wohl auch im Sinne von Leinirs Arbeitgeber Blue Systems, der die Entwicklung von Plasma Mobile vorantreibt und viele Kernentwickler von KDE und Kubuntu finanziert.

Um Shashlik auf einem Smartphone mit Plasma-Oberfläche oder auch unter Jollas Sailfish OS oder Ubuntu Touch laufen zu lassen, müsse jedoch der meist für die Hardware-Abstraktion genutzte Surfaceflinger entfernt werden können. Ansonsten liefen zwei Instanzen des Displayservers, die sich gegenseitig behindern.

Zumindest dieser Teil sollte unter Plasma Mobile laut Kwin-Maintainer Martin Gräßlin kein Problem sein. Leinir vermutet aber, dass auch noch weitere Anpassungen an Libhybris und anderen Komponenten vorgenommen werden müssten.

Der gesamte Quellcode von Shashlik(öffnet im neuen Fenster) steht auf Github zum Download bereit.


Relevante Themen