Software | Andreas Hitzig | 2-2024 | 26. Januar 2024

Android-Apps unter Linux

Emulatoren sind ein wirksamer Weg, andere Betriebssysteme unter Linux einzusetzen. Mit Waydroid gelingt es, Android-Apps einfach auf dem Linux-Desktop auszuführen.

Emulatoren sind ein wirksamer Weg, andere Betriebssysteme unter Linux einzusetzen. Mit Waydroid gelingt es, Android-Apps einfach auf dem Linux-Desktop auszuführen.

Den Entwicklern von Waydroid ist es gelungen, Android-Apps unter Linux ausführbar zu machen. Die technische Basis stellt dabei eine Android-Instanz auf Basis von Lineage-OS, die in einem Container ausgeführt wird. Die Apps stehen nach dem Start von Waydroid direkt im Container oder über die Liste der installierten Programme auf dem Linux-Host zur Ausführung bereit.

Technische Voraussetzung und Installation

Als technische Voraussetzung benötigt Waydroid zunächst eine Linux-Plattform. Wir haben uns für Ubuntu 22.04 LTS entschieden.

Die Software packt Android in einen Linux-Container (LXC) und schafft damit eine isolierte Laufzeitumgebung für die Apps. Die Systemaufrufe der Prozesse im Container reicht Waydroid direkt an den Kernel des Linux-Hosts weiter.

Das Android-System läuft als LXC (Linux Container), ein Verfahren zur Containervirtualisierung mit direktem Zugriff auf die Hardware des Linux-Hostsystems. Die aktuelle Waydroid-Version 1.4.2 stammt vom Oktober 2023. Für die einmalige Installation unter Ubuntu sind mehrere Schritte notwendig. Als Erstes fügen Sie dem Betriebssystem zwei Ubuntu-Pakete hinzu, die im späteren Verlauf benötigt werden:

sudo apt install curl ca-certificates -y

Im Anschluss nehmen Sie das notwendige Softwarerepository auf und installieren danach die aktuelle Waydroid-Version:

curl https://repo.waydro.id | sudo bash
sudo apt install waydroid -y

Mit der Installation sollte der Systemdienst des Waydroid-Containers automatisch gestartet werden, jedoch schadet es nicht, dies über den folgenden Befehl

sudo systemctl enable --now waydroid-container

manuell zu erledigen. Rufen Sie im Anschluss über das neue Programmsymbol Waydroid zum ersten Mal auf und wählen Sie entweder die Variante mit („GAPPS“) oder ohne integrierte Google-Apps („VANILLA“) aus. Das Installationsprogramm lädt das Image herunter und führt es aus. Das ist keine endgültige Entscheidung: Falls Sie später das Image wechseln möchten, führen Sie folgenden Befehl aus:

sudo waydroid init -s SYSTEM_TYPE [image]

Statt „[image]“ verwenden Sie „GAPPS“ oder „VANILLA“. Waydroid bietet noch zahlreiche weitere Befehle, um den Container über die Kommandozeile des Linux-Betriebssystems zu steuern. Eine komplette Übersicht finden Sie in der Onlinedokumentation (https://docs.waydro.id/usage/waydroid-command-line-options).

Während der Installation haben Sie die Wahl zwischen einem Image ohne (VANILLA) und mit Google Apps (GAPPS).

Erster Einsatz und erste Apps

Nach der Installation startet der Container mit Lineage-OS auf Basis von Android 11. Sie sehen eine vollwertige Android-Oberfläche, welche abhängig vom gewählten Image zusätzlich die Google-Apps enthält. Beim ersten Start der Google-Apps werden Sie darauf hingewiesen, dass das Gerät nicht für Google Play Protect zertifiziert ist. Dies können Sie akzeptieren oder ändern. Für den zweiten Fall öffnen Sie mit

sudo waydroid shell

die Waydroid-Shell und geben dort folgenden Befehl ein (eine Zeile!):

ANDROID_RUNTIME_ROOT=/apex/com.android.runtime ANDROID_DATA=/data ANDROID_TZDATA_ROOT=/apex/com.android.tzdata ANDROID_I18N_ROOT=/apex/com.android.i18n sqlite3 /data/data/com.google.android.gsf/databases/gservices.db "select * from main where name = \"android_id\";"

Sie erhalten als Ergebnis eine Zeichenkette zurück, mit der Sie das virtuelle Gerät in Ihrem Google-Konto registrieren. Es dauert einige Minuten, bis Google diese Aktion erledigt hat. Stoppen Sie danach den Way­droid-Service und starten Sie ihn erneut.

waydroid session stop
waydroid session start

Zu Beginn ist die Android-Installation noch in englischer Sprache, auch die Zeitzone und das Tastaturlayout müssen angepasst werden. Dazu rufen Sie die Apps „Settings“ auf und passen über „System –› Languages & Input –› Languages“ die Sprache an und wählen den Eintrag „Deutsch –› Deutschland“ aus. Verschieben Sie den neuen Listeneintrag auf die erste Position, damit die Oberfläche in der deutschen Sprache dargestellt wird.

Mit dem GAPPS-Image kommt automatisch der Google Play Store mit. Aufgrund von Google Play Protect muss die virtuelle Installation erst registriert werden.

Umgang mit Apps: Haben Sie im Vorfeld das Image mit den integrierten Google-Apps ausgewählt, können Sie Ihre Wunsch-Apps auf diesem Weg installieren. Alternativ dazu besteht immer die Möglichkeit, einen alternativen App Store wie F-Droid (https://f-droid.org/de/) oder Aptoide
(https://de.aptoide.com/) zu verwenden. Außerdem gibt es auch noch die Option, Android-Apps (APK) von Hand zu installieren. Entweder laden Sie diese direkt in Waydroid über den vorhandenen Browser und starten im Nachgang die Installation. Dazu müssen Sie in den Einstellungen die Installation unbekannter Apps über den Browser zulassen.

Als letzter Weg steht auch noch das Terminal des Hostsystems zur Verfügung. Haben Sie die APK-Datei direkt auf Ihren Computer geladen, können Sie diese im Anschluss über den folgenden Befehl installieren:

waydroid app install meineapp.apk

Danach steht die App sowohl im Waydroid-Container als auch im Ubuntu-Anwendungsmenü zur Verfügung.

Nicht alle installierten Apps werden gut mit dem Monitorlayout zurechtkommen und das automatische Rotieren wird nicht immer das gewünschte Ergebnis bringen. Dieses Phänomen begegnet einem auch bei Android-Smartphones und Tablets und dann müssen Sie die Apps manuell in die richtige Ausrichtung bringen. Dieser Weg funktioniert auch unter Waydroid, allerdings gilt dieser Wert dann für alle aktuell geöffneten Apps und kann somit andere Herausforderungen mit sich bringen.

Ein pragmatischer Ansatz ist der Multi-Windows-Modus, den die Entwickler Waydroid spendiert haben. Dieser muss zu Beginn erst einmal aktiviert werden, und danach können Sie die Session neu starten.

waydroid prop set persist.waydroid.multi_windows true
waydroid session stop

Alle Apps, die Sie danach starten, verwenden dann den Multi-Windows-Modus.

Mit dem Multi-Windows-Modus können Sie sich die aktuell aktiven Apps nebeneinander anzeigen lassen.

Waydroid neu installieren

Bei unseren Tests hat der Wechsel zwischen dem Image ohne Google-Apps und der GAPPS-Variante leider nicht funktioniert. In diesem Fall bleibt Ihnen nichts anderes übrig, als Waydroid zu deinstallieren und die Containerlösung im Anschluss erneut zu installieren. Dazu stoppen Sie als Erstes Session und Container:

waydroid session stop
sudo waydroid container stop

Danach können Sie mit folgendem Befehl die Waydroid-Installation entfernen:

sudo apt remove waydroid

Nachdem Sie Waydroid deinstalliert haben, starten Sie das Hostsystem einmal neu. Allerdings befinden sich jetzt noch Daten und Verzeichnisse auf Ihrem Computer, die Sie vor der erneuten Installation manuell entfernen sollten, da ansonsten Teile der vorherigen Konfiguration wiederhergestellt werden:

sudo rm -rf /var/lib/waydroid 
~/.waydroid ~/waydroid ~/.share/waydroid ~/.local/share/applications/*aydroid* ~/.local/share/waydroid

Danach installieren Sie Waydroid erneut.

Android im Container funktioniert

Wir haben eine Vielzahl von Apps mit guter Performance ausführen können. Nachdem wir das virtuelle Gerät im Google-Konto registriert hatten, konnten wir den Google Play Store ohne Einschränkung nutzen und nicht nur Spiele wie Angry Birds, sondern auch Streamingdienste wie Youtube problemlos ausführen.

Nicht alles funktioniert perfekt, so etwa der Zugriff auf Kamera, Mikrofon oder den Lautsprecher. Die Waydroid-Entwickler liefern jedoch regelmäßig Updates und verbessern die bestehende Umgebung.