Anbox
Dieser Artikel bezieht sich auf Ubuntu Touch, die Variante von Ubuntu für mobile Geräte mit Touchscreen.
Getestet wurde der Artikel für folgende Version(en):
Ubuntu Touch, Basis 16.04 Xenial Xerus
Artikel für fortgeschrittene Anwender
Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.
Achtung!
Für jegliche Veränderungen an Ubuntu Touch ist der Besitzer selbst verantwortlich. Weder die Artikelautoren noch ubuntuusers.de haften, falls Probleme auftreten oder das benutzte Gerät im schlimmsten Fall nie mehr gestartet werden kann. Tiefe Systemeingriffe können dazu führen, dass Ubuntu Touch durch einen sogenannten Flashvorgang neu aufgespielt werden muss.
Unter bestimmten Umständen könnte auch dies unmöglich werden - das Gerät und damit auch die Daten sind dann unwiederbringlich zerstört. Schwere Systemeingriffe wie Schreibzugriff auf das System sind inoffiziell, können beispielsweise im Fall der Nutzung von apt-get ggf. zu Problemen führen und sind allgemein häufig von Garantieleistungen der Gerätehersteller/Shops ausgenommen.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Anbox 🇬🇧 ist ein minimalistischer Android-Container mit Kompatibilitäts-Schicht, der es erlaubt, Android-Apps auf GNU/Linux-Systemen wie UBports einzusetzen. Verwendet wird hier eine modifizierte Android-7.1.1-Version, die allerdings keinen vollständigen Zugriff auf die Geräte-Bestandteile hat. So kann zwar das Netzwerk verwendet werden, nicht aber GPS oder Kamera etc. Allerdings kann die Soundausgabe von einigen Apps verwendet werden. Es lassen sich aber bei Weitem nicht alle Apps nutzen.
Für einige der unterstützten Ubuntu-Touch-Geräte[1] existieren Boot-Partitions-Images, die anstelle der "regulären" Boot-Partitionen eingesetzt werden. Anbox musste daher nach jedem Update des Systems (neue OTA, Wechsel des Installations-Kanals o.ä.) neu installiert werden; die bereits installierten Android-Programme bleiben dann allerdings erhalten.
Gewöhnungsbedürftig ist, dass es auf den Ubuntu-Touch-Geräten keinen "Zurück"-Button gibt, sodass ggf. eine App beendet und neu gestartet werden muss, statt in ihr auf einen vorherigen Bildschirm zurückgehen zu können. Eine zufriedenstellende Lösung ist derzeit leider nicht in Sicht. Die verwendbaren Apps reagieren oft zäh und nach Berühren recht zeitverzögert. Wenn eine App gar nicht starten möchte, weil Anbox "hängengeblieben" ist, hilft es ggf. nur, das Gerät neu zu starten. Für den Produktivbetrieb ist Anbox derzeit also noch nicht wirklich zu empfehlen.
Hinweis:
Anbox kann auch auf Desktop-Rechnern verwendet werden, die Installation unterscheidet sich aber erheblich; derzeit sind dafür nur snap-Pakete vorhanden, die sich auf Ubuntu-Touch-Geräten nicht einsetzen lassen!
Für neuere Ubuntu-Touch-taugliche Geräte bietet sich die der Verwendung von Waydroid 🇬🇧 an, das aktuell weiterentwickelt wird. Mit Waydroid Helper kann es recht einfach installiert und gewartet werden. Auf älteren Geräte, wie Fairphone 2 oder BQ Aquaris M10 HD ist Waydroid leider nicht verwendbar.
Voraussetzungen¶
Das Ubuntu-Touch-Gerät muss unter 16.04 laufen (Anbox funktioniert auf 15.04 nicht!). Zur Installation kommen adb[2] und fastboot[3] zum Einsatz. Es sollte vor Installation sicherheitshalber ein Backup erstellt werden. Auf dem Ubuntu-Touch-Gerät muss der Entwicklermodus aktiviert sein, diesen in den "Systemeinstellungen → Info → Entwicklermodus" aktivieren.
Unterstützte Geräte¶
Anbox kann derzeit (März 2021) auf folgenden Geräten installiert werden:
Meizu Pro 5 (Codename:
turbo
, Name der Boot-Partition:bootimg
)Fairphone 2 (Codename:
FP2
, Name der Boot-Partition:boot
)OnePlus One (Codename:
bacon
, Name der Boot-Partition:boot
)Nexus 5 (Codename:
hammerhead
, Name der Boot-Partition:boot
)BQ M10 FHD (Codename:
frieza
, Name der Boot-Partition:boot
)
Für das auf UBports 🇬🇧 ebenfalls angegebene Gerät BQ M10 HD (Codename: cooler
, Name der Boot-Partition: boot
) funktioniert das momentan (Stand März 2022) leider nicht, eine Lösung ist derzeit nicht in Sicht (siehe Issue auf github 🇬🇧 und Foren-Thread), ggf. gilt das auch für die FHD-Version des Gerätes.
Installation¶
Hinweis:
Ab OTA 16 (veröffentlicht Anfang März 2021) ist die Installation auf keinem der unterstützten Geräte mehr nötig, da Anbox bereits im OS integriert ist! Es kann also gleich Abschluss der Installation durchgeführt werden.
Für die Geräte Meizu Pro 5 und BQ M10 (F)HD benötigt man Codenamen und den Namen der Boot-Partition des Ubuntu-Touch-Gerätes. Die Werte exportiert man sich im Terminal[4] (hier für ein Meizu Pro 5), damit es beim Herunterladen keine Fehler gibt:
export CODENAME="turbo" && export PARTITIONNAME="bootimg"
Dann wird das Boot-Image heruntergeladen, das über USB-Kabel an einen Rechner angeschlossene Gerät via adb-Shell in den Bootloader gestartet und mit fastboot das Image geflasht[5]:
wget http://cdimage.ubports.com/anbox-images/anbox-boot-$CODENAME.img adb shell sudo reboot -f bootloader # Boot-Loader-Modus sudo fastboot flash $PARTITIONNAME anbox-boot-$CODENAME.img
Ausgabe ist etwas wie
target reported max download size of 536870912 bytes sending 'boot' (12252 KB)... OKAY [ 0.385s] writing 'boot'... OKAY [ 0.290s] finished. total time: 0.675s
Danach wird das Gerät neu gestartet:
sudo fastboot reboot # Gerät startet in den normalen Modus rm anbox-boot-$CODENAME.img # Aufräumen
Hinweis:
Ab diesem Schritt können die weiteren Befehle über adb shell
, SSH oder die Terminal-App auf dem Ubuntu-Touch-Gerät ausgeführt werden.
Nachdem das Ubuntu-Touch-Gerät wieder hochgefahren ist, folgende Befehle ausführen:
sudo mount -o rw,remount / sudo apt update sudo apt install anbox-ubuntu-touch
Ausgabe danach etwas wie:
The following NEW packages will be installed: anbox anbox-common anbox-ubuntu-touch libsdl2-2.0-0 libsdl2-image-2.0-0 libsndio6.1
Wenn man nicht benötigte Pakete für nicht genutzte Sprachen deinstalliert hat, können Warnungen wie folgende auftauchen, die aber auf die Funktion keinen Einfluss haben:
dpkg: warning: files list file for package 'ubuntu-keyboard-french' missing; assuming package has no files currently installed dpkg: warning: files list file for package 'language-pack-touch-zh-hant' missing; assuming package has no files currently installed
Für die anderen oben genannten Geräte ist die Anbox-Unterstützung in der aktuellen Version von UT bereits mit der Installation des OS gegeben, ein Flashen und explizites Installieren ist daher nicht mehr nötig.
Abschluss der Installation¶
Für alle Geräte gilt: Anschließend die Installation abschließen mit
anbox-tool install
Der Befehl zieht das benötigte android.img auf das Gerät, das in /home/phablet/anbox-data abgelegt wird (Größe etwa 220 MB, darf keinesfalls, z.B. im Zuge von Speicheroptimierungsmaßnahmen, gelöscht werden!) Bei Neuinstallation z.B. nach Update des Systems ist der Befehl nicht nötig, ein anbox-tool upgrade
holt die aktuelle Version. Danach, wenn Anbox nicht initialisiert werden sollte
anbox-tool disable anbox-tool enable
Ggf. muss aber auch das Gerät neu gestartet werden.
Standardmäßig sind dann einige Android-System-Apps (Einstellungen, Android-Tastatur, Dateien, Galerie, Uhr, Kalender, Musik, Rechner, Email, WebViewShell) vorhanden, die man allerdings bis auf die ersten drei am besten umgehend deaktivieren sollte; der Versuch, beispielsweise die Galerie zu verwenden führt fast unweigerlich zu Anbox-Abstürzen.
Installation neuer APKs¶
Die zu installierenden .apk-Dateien in das Verzeichnis /home/phablet/Downloads kopieren, danach folgende Befehle ausführen:
sudo mount -o rw,remount / # Systempartition beschreibbar machen sudo apt update # Paketlisten aktualisieren sudo apt install android-tools-adb # nur vor der erstem Installation nötig adb install /home/phablet/Downloads/MEINE-APP.apk # adb auf dem Touch-Gerät, nicht dem Rechner! exit
Ggf. muss die Ansicht im App-Scope aktualisiert werden, indem man von der Mitte des Bildschirms nach unten wischt und dann loslässt, um neu installierte Android-Apps sichtbar zu machen (bis OTA 11). In neueren Versionen existiert kein "App Scope" mehr, die Programme werden im "App Drawer" angezeigt und sollten dort automatisch erscheinen. Manchmal tauchen auch zwei Icons auf; die Desktop- und Icon-Dateien liegen dann an zwei Orten vor (in /home/phablet/.local/share/applications, sowie im Unterordner .../anbox). Die Eintrags-Paare im ersten Verzeichnis kann man löschen, das zweite wird von Anbox wieder angelegt, wenn man es entfernt. Zeitweise verschwinden die überzähligen Icons aber auch nach Neustart des Gerätes wieder.
Apps aktuell halten¶
Mit F-Droid 🇬🇧 kann ein Open-Source-Softwarestore installiert werden, eine aktuelle Version läuft z.B. auf einem Fairphone 2 mit Ubuntu-Touch-Version 659 ("Kanal edge"). Nach einen Anbox-Neuinstallierung nach Update musste allerdings die App zunächst deinstalliert und dann neu aufgespielt werden. Der Google Playstore ist allerdings nicht direkt nutzbar; Aktualisierungen lassen sich für etliche Apps also ggf. nur über Umwege erhalten.
Apps deinstallieren¶
Android-Apps werden mit dem Befehl adb uninstall [APP_ID]
vom Ubuntu-Touch-Gerät aus deinstalliert:
sudo mount -o rw,remount / adb uninstall [APP_ID] # adb auf dem Gerät, nicht dem Rechner! exit
Die APP_ID
der installierten Apps kann man auf dem Gerät mit
anbox-tool app-list
anzeigen lassen. Ausgegeben werden auch "systemimmanente" Apps, wenn sie nicht deaktiviert sind; Beispielausgabe wäre:
Dateien (com.android.documentsui) Kontakte (com.android.contacts) Threema (ch.threema.app) F-Droid (org.fdroid.fdroid) Öffi (de.schildbach.oeffi) Terminal Emulator (jackpal.androidterm) Einstellungen (com.android.settings) TV-Browser (org.tvbrowser.tvbrowser) Dateimanager (com.simplemobiletools.filemanager.pro)
Dia Angaben in den Klammern sind die APP_ID
s, die man zum Deinstallieren benötigt (die com.android.*
-Apps lassen sich allerdings nicht deinstallieren).
Einfacher ist es, die Apps auf dem "üblichen" Weg über die Android-"Einstellungen → Apps → APP-NAME → Deinstallieren" zu entfernen.
Anbox deinstallieren¶
Eine direkte Deinstallation ist nicht ohne Weiteres möglich, da Grundlage ein "gepatchtes" Boot-Image ist. Mit anbox-tool disable|enable
kann die Nutzung verhindert oder wieder ermöglicht werden. Um Anbox vollständig zu entfernen sollten zunächst alle zusätzlich installierten Apps deinstalliert werden. Dann kann man das Gerät via Ubuntu Touch/UBports Installer neu flashen, wobei allerdings tunlichst darauf zu achten ist, die eigenen Daten nicht zu löschen, also keinen kompletten "wipe" durchführen zu lassen! Trotzdem ist eine eine vorherige Datensicherung immer der sicherere Weg, falls etwas schief gehen sollte.
Tipps und Tricks¶
Anbox via Terminal deaktivieren¶
Leider verbraucht Anbox, auch wenn es nicht genutzt wird, einiges an Batterieleistung. Via Terminal lässt sich Anbox mit dem Befehl
anbox-tool disable|enable
temporär deaktivieren und wieder nutzbar machen. Der Befehl benötigt allerdings Rootrechte, nach der Eingabe erfolgt ein Passwortabfrage. Kontrollieren lässt sich das mit
anbox-tool status
Wenn die Ausgabe so aussieht
Kernel: OK System: OK Enabled: YES Running: YES
ist alles in Ordnung, und Anbox sollte laufen.
Wenn die Ausgabe allerdings so aussieht:
Kernel: OK System: OK Enabled: YES Running: NO
stimmt etwas nicht. Wenn dann auch ein De- und Neuaktivieren keine Besserung bringt, hilft es nur, das Gerät neu zu starten.
Automatisches Umschalten per Icon¶
Einfacher ist es, Anbox per Skript, das über ein Icon gestartet wird, an- und auszuschalten. Das Skript liest den Status aus, und schaltet dann je nach Ergebnis um, und sorgt dafür, dass auch das Icon seine Farbe wechselt:
1 2 3 4 5 6 7 8 9 10 11 12 13 | #!/bin/bash anboxtool=($(anbox-tool status)) atenabled=${anboxtool[5]} if [ "$atenabled" == "YES" ]; then anbox-tool disable mv /home/phablet/Downloads/anboxtoggleRED.desktop /home/phablet/.local/share/applications/anboxtoggleRED.desktop mv /home/phablet/.local/share/applications/anboxtoggleGREEN.desktop /home/phablet/Downloads/anboxtoggleGREEN.desktop else anbox-tool enable mv /home/phablet/Downloads/anboxtoggleGREEN.desktop /home/phablet/.local/share/applications/anboxtoggleGREEN.desktop mv /home/phablet/.local/share/applications/anboxtoggleRED.desktop /home/phablet/Downloads/anboxtoggleRED.desktop fi |
Das Skript als anboxtoggle.sh abspeichern und ausführbar machen. Außerdem werden zwei Icons in verschiedenen Farben benötigt (dazu z.B. das Logo hier aus dem Artikel anbox_logo.png ⮷ herunterladen, in GIMP o.ä. die Farben anpassen, die Dateien dann unter anboxtoggleRED.png resp. anboxtoogleGREEN.png abspeichern), sowie zwei .desktop-Datei, die durch Icon im "App Drawer" über das Skript bedient werden:
1 2 3 4 5 6 7 8 9 | [Desktop Entry] Name=Anboxtoggle Type=Application Terminal=false Icon=/home/phablet/.local/share/applications/anboxtoggleRED.png Categories=Utility Comment=Switch between anbox enabled and disabled X-Ubuntu-Touch=true Exec=/home/phablet/.local/share/applications/anboxtoggle.sh |
Eine wird als anboxtoggleRED.desktop abgespeichert, die andere (nur in Zeile 5 den Logo-Namen auf anboxtoggleGREEN.png
ändern) als anboxtoggleGREEN.desktop, diese ausführbar machen. Das Skript, die Bilder und eine der .desktop-Dateien auf dem Gerät in /home/phablet/.local/share/applications abspeichern, die zweite .desktop-Datei in /home/phablet/Downloads. Wenn Anbox gerade läuft, muss anboxtoggleGREEN.desktop nach .../applications, wenn nicht, anboxtoggleRED.desktop. Das Icon erscheint spätestens nach einem Neustart von Unity8, per Touch lässt sich Anbox jetzt bei Bedarf ein- und wieder ausschalten. An der Farbe des Logos erkennt man den aktuellen Status. (Siehe auch diesen Thread im Forum, mit besten Dank an user_unknown).
Probleme und Lösungen¶
Zu wenig Speicherplatz¶
Wenn das Installieren von anbox-ubuntu-touch oder android-tools-adb wegen mangelndem Speicherplatz scheitert, kann folgendes Vorgehen helfen:
sudo mount -o rw,remount / sudo rm -r /var/cache/apt # löscht den apt-Cache; gibt Platz auf der System-Partition frei sudo tune2fs -m 0.2 /dev/loop0 # Speicher, der auf der System-Partition speziell für den root-Benutzer reserviert ist, auf 0,2 % setzen sudo apt update # apt-Cache erneuern, um Anbox und adb installieren zu können sudo apt install anbox-ubuntu-touch android-tools-adb sudo mount -o ro,remount / exit
Zugriff auf Anbox-Daten¶
Die in nicht gerooteten Android-Versionen sonst frei zugänglichen Android-Dateien werden unter im Verzeichnis /home/phablet/anbox-data/data/media/0/* gespeichert. Der direkte Zugriff, selbst das Auflisten der Dateien auf /media/0/ ist allerdings nur als root
-Benutzer (Befehl sudo -i
) über adb shell
/SSH, nicht aber über den Dateimanager von Ubuntu Touch oder Nautilus/Nemo möglich. Um Daten zu importieren, muss man sie daher quasi "blind" in den Container kopieren. Um z.B. ein Logo in den Android-Standard-Ordner für Bilder (Pictures) zu schieben, wird es zunächst in einen Ordner auf dem Ubuntu-Touch-Gerät gespeichert, und von dort mit
sudo cp Anbox_logo.png /home/phablet/anbox-data/data/media/0/Pictures
in den Anbox-Container kopiert - der Ziel-Ordner muss dafür existieren. Mit einem in Anbox installierten Dateimanager sind die Daten dort intern sicht- und bearbeitbar, wenn sie mit entsprechenden Rechten versehen sind (siehe auch diesen Tread 🇬🇧 im Fairphone-Forum).
Ein anderer Weg besteht darin, Daten an eine in Anbox installierte Messenger-App zu schicken (getestet mit Threema), so lassen sich z.B. auch APKs direkt in den Container verfrachten und dort direkt installieren.
Fehlermeldung "Invalid APK file"¶
Falls beim Installieren einer APK-Datei der Fehler Invalid APK file
ausgegeben wird, kann es auch bedeuten, dass die Datei nicht gefunden wurde. Daher zunächst die Schreibweise überprüfen und ggf. auch den kompletten Pfad zur Datei angeben.
Icons erscheinen mehrfach¶
Aus nicht geklärter Ursache erscheine zur Zeit (März 2020) die App-Icons für über Anbox installerte Anwendungen regelmäßig mehrfach im "App Scope/App Drawer", insbesondere wenn Anbox deaktiviert und dann wieder aktiviert wurde. Verhindert lässt sich das nicht, die überflüssigen Icons verschwinden in OTA 12 aber durch Halten und nach unten Ziehen im App-Drawer. Ansonsten hilft auch ein Neustart von Unity8/Lomiri (über das "UT Tweak Tool → System → Dienste").
Drehung funktioniert nicht¶
Leider funktioniert die Automatische Drehung des Bildschirminhaltes nicht richtig. Die Anzeige ist fürs Hochformat angelegt, sie dreht sich zwar, aber füllt dann nicht den ganzen Bildschirm aus, sondern ist unten abgeschnitten. Eine Lösung ist derzeit anscheinend nicht bekannt.
Links¶
intern¶
Ubuntu Touch - Übersichtsartikel
Ubuntu Touch/Terminal - Verwendung des Terminals unter Ubuntu Touch
extern¶
Detailierte Anleitung 🇬🇧 auf UBports.com
Anbox Testers Thread 🇬🇧 im UBports-Forum