Anbox einrichten

Mit Anbox kann man sich ein Android-System auf einem Linux einrichten, um Apps genauso am Desktop nutzen zu können, wie auf einem Handy. Mit Debian geht es sehr einfach:

  1. Paket installieren: % sudo apt install anbox
  2. Doku lesen: % less /usr/share/doc/anbox/README.Debian
  3. Das aktuelle Image von build.anbox.io holen: % curl https://build.anbox.io/android-images/…/android_amd64.img |sudo dd of=/var/lib/anbox/android.img
  4. Den Systemdienst starten: sudo systemctl start anbox-container-manager ; sudo systemctl status start anbox-container-manager
  5. Den Benutzerdienst aktivieren: systemctl --user enable --now anbox-session-manager; man kann den Dienst auch nur zeitweise mit systemctl --user start anbox-session-manager starten, wenn das Andriod-System nicht die gesamte Zeit laufen soll.

Damit sollte sich die Übersicht der Apps starten lassen:

% anbox launch --package=org.anbox.appmgr --component=org.anbox.appmgr.AppViewActivity

Apps installieren und starten

Um Apps im Anbox installieren zu können, benötigt man die apk-Dateien dafür. Von der F-Droid-Webseite und bei Apkmirror kann man die Dateien herunterladen und mit Aurora-Store lassen sich diese auf einem bestehendem Android leicht über den Menüpunkt Manueller Download aus dem Playstore holen.

Man kann sich auch einfach F-Droid und darüber Aurora-Store installieren und damit auf den kompletten Bestand des Play-Stores zugreifen. Apps lassen sich auch mit adb installieren; ggf. vorher apt install adb ausführen.

% wget https://f-droid.org/FDroid.apk
% adb install FDroid.apk
Success
% adb shell pm grant org.fdroid.fdroid android.permission.WRITE_EXTERNAL_STORAGE
% adb shell pm grant org.fdroid.fdroid android.permission.READ_EXTERNAL_STORAGE
% adb shell settings put secure install_non_market_apps 1
% anbox launch --action=android.intent.action.MAIN --package=org.fdroid.fdroid --component=org.fdroid.fdroid.views.main.MainActivity

Den Befehl zum Starten der Pakete findet man in den Desktop-Dateien unter ~/.local/share/applications/anbox/ oder falls der Window-Manager das XDG-Menü unterstützt auch direkt dort zum Anklicken.

Über die Kommandozeile kann man sich die installierten Pakete mit adb shell cmd package list packages anzeigen lassen. Die für den Aufruf notwendige Component findet man mit adb shell cmd package query-activities -c android.intent.category.LAUNCHER net.osmand.plus unter ActivityInfo, name.

Fehlermeldungen bei Problemen findet man im Journal mit journalctl --user -uanbox-session-manager oder journalctl -tanbox oder mit adb logcat.

Anpassungen für HiRes-Anzeigen

Mit meinem hochauflösendem 4k-Monitor waren zu Beginn die Schriften sehr klein. In den Einstellungen kann man aber die Schriftgröße und die Anzeigegröße anpassen, so dass die Ausgaben gut lesbar werden.

Image erweitern

Overlay

[Service]
ExecStart=
ExecStart=/usr/bin/anbox container-manager --daemon --privileged --data-path=/var/lib/anbox --use-rootfs-overlay

OpenGapps

Ein Ersatz für Google Play ist Aurora Store, der über F-Droid verfügbar ist. Von microg gibt es als Ersatz für die Google Apps (gapps) das Paket Services Core. Hierfür muss man in F-Droid die Paketquelle https://microg.org/fdroid/repo in den Einstellungen hinzufügen.

https://geeks-r-us.de/2017/08/26/android-apps-auf-dem-linux-desktop/

libhuodini

libhuodini für Unterstützung von arm auf x86_64. Sonos.

https://android.stackexchange.com/questions/179482/android-emulator-install-failed-no-matching-abis-failed-to-extract-native-lib/179485#179485

Android-x86

Für Anbox ist eine Grafikkarte mit EGL erforderlich; siehe anbox check-features und anbox system-info. Wenn diese nicht vorhanden ist, kann man auf das Projekt Android-x86 zurückgreifen. Hierfür muss man das ISO-Image herunterladen und daraus einige Dateien in ein Verzeichnis speichern.

7z x android-x86_64-8.1-r1.iso initrd.img kernel ramdisk.img system.sfs

Mit dem Skript start-android kann man dann mithilfe von Qemu das Android-System starten. Wer seine Anpassungen dauerhaft sichern will, kann als zweiten Parameter ein Verzeichnis oder ein Image angeben, das innerhalb von Android unter /data eingebunden wird.

start-android /path/to/files/ /data-dir

Da nur die Daten in /data geschrieben werden, kann man mehrere Systeme gleichzeitig mit unterschiedlichen data-dir starten. Auf der Konsole bekommt man die Shell innerhalb des Androids und kann dort mit pm Pakete installieren oder mit poweroff das System abschalten.

Xpra

Remote:

agi xpra python-paramiko python-lz4 python-lzo python-dbus python-uinput
  python-gst-1.0 dbus-x11 python-netifaces python-cups
modprobe uinput
xpra start :56 --dpi=284 --mdns=no --html=off

/run/user/1000/xpra/:56.log

Local:

agi xpra python-lz4 python-lzo python-gtkglext1 python-pyinotify python-cups python-opencv
xpra attach ssh:server:56
DISPLAY=:56 anbox session-manager
Art