2 Punkte von GN⁺ 2025-02-03 | 1 Kommentare | Auf WhatsApp teilen
  • Waydroid ist ein Projekt, das ein vollständiges Android-System als Container auf Wayland-basierten GNU/Linux-Desktops bootet, sodass Android-Apps zusammen mit Linux-Apps wie native Linux-Anwendungen ausgeführt werden können
  • Mithilfe von Linux-Namespaces, LXC und der Binder-Schnittstelle greift der Android-Container direkt auf die benötigte Hardware zu und unterstützt GNU/Linux-Plattformen auf arm, arm64, x86 und x86_64
  • Android-Apps können in den Linux-Anwendungsordner integriert werden, und es werden je nach Nutzung verschiedene Ausführungsmodi wie Multi-Window Mode, Full UI Mode und Fullscreen Mode bereitgestellt
  • Die Laufzeitumgebung besteht aus einem minimal angepassten Android-System-Image auf Basis von LineageOS; das aktuelle Image basiert auf Android 13
  • Nach der Installation muss der Dienst waydroid-container gestartet und im App-Menü der Assistent für den ersten Start durchlaufen werden; die Waydroid-Linux-Beta-Distributionen funktionieren nicht im Live-Modus, sondern in einer installierten Umgebung

Android-on-Linux-Architektur von Waydroid

  • Waydroid verwendet auf normalen GNU/Linux-Systemen mit Wayland-basierten Desktop-Umgebungen einen Ansatz, bei dem ein vollständiges Android-System als Container gebootet wird
  • Das Android im Container verwendet Linux-Namespaces
    • user
    • pid
    • uts
    • net
    • mount
    • ipc
  • Das Android-System greift über LXC und die Binder-Schnittstelle direkt auf die benötigte Hardware zu
  • Unterstützte Plattformen sind GNU/Linux-basierte arm-, arm64-, x86- und x86_64-Systeme
  • Das Projekt ist kostenlose Open-Source-Software, und das Repository befindet sich auf GitHub

Desktop-Integration und Ausführungsmodi

  • Android-Apps laufen auf dem Desktop neben Linux-Anwendungen, und Waydroid fügt Android-Apps dem Linux-Anwendungsordner hinzu
  • Die Ausführungsmodi sind je nach Nutzung aufgeteilt
    • Multi-window mode: Erweitert die Android-Freeform-Window-Definition um zusätzliche Funktionen
    • Full UI Mode: Zeigt die vollständige Android-Benutzeroberfläche für Spiele und Fullscreen-Entertainment an
    • Für Desktop- und Kiosk-Einsätze kann der Fullscreen Mode verwendet werden
  • Bei der Performance zielt das Projekt mit Wayland und AOSP mesa auf ein Verhalten, das so nah wie möglich an nativ liegt
  • Die Android-Laufzeitumgebung wird mit einem minimal angepassten Android-System-Image auf Basis von LineageOS ausgeliefert; das aktuelle Image basiert auf Android 13

Dokumentation, Installation, Waydroid-Linux-Beta

  • Dokumentation und Issue-Tracking sind über separate Links verfügbar
  • Der schnelle Installationsablauf für systemd-Distributionen folgt der distributionsspezifischen Installationsdokumentation; falls der automatische Start nicht erfolgt ist, muss der Dienst waydroid-container gestartet und Waydroid im Anwendungsmenü geöffnet werden, um den Assistenten für den ersten Start durchzuführen
  • Wenn beim ersten Start abgefragt, werden für System OTA und Vendor OTA die OTA-Links eingegeben
  • Waydroid-Linux Beta sind vollständig integrierte Distributionen, die die Integrationsmöglichkeiten demonstrieren sollen, die Waydroid umsetzen kann
    • Die erste Alpha-Version begann mit Ubuntu 20.04 (focal)
    • Inzwischen sind auch Ubuntu 22.04 (jammy) und Debian 12 (bookworm) enthalten
    • Enthalten sind verschiedene Tools und Skripte, um den möglichen Arbeitsumfang zu erweitern
  • Da Waydroid Kernel-Module für LXC und Binder verwendet, funktioniert Waydroid-Linux nicht im Live-Modus; für einen ordnungsgemäßen Betrieb ist eine Installation erforderlich
  • Für die Beta-Downloads wird auf die README.md verwiesen; als Beispiel-Releases werden Ubuntu 22.04 KDE-Plasma, Ubuntu 22.04 Gnome, Debian 12 Beta, Ubuntu 21.10 Beta sowie frühere Alpha-Releases angeboten

1 Kommentare

 
GN⁺ 2025-02-03
Meinungen auf Hacker News
  • Ich bin überrascht, dass das auf der Frontpage gelandet ist. Es ist ja ziemlich bekannte Software.
    Schade ist, dass es für Waydroid keine von Google bereitgestellten Images gibt, etwa generische System-Images. Mir ist unwohl dabei, mein Passwort in irgendein ROM aus dem Internet einzugeben.
    https://source.android.com/docs/core/tests/vts/gsi

    • Das würde ich nicht als „irgendein ROM aus dem Internet“ bezeichnen. LineageOS ist ein sehr lange etabliertes Projekt und, abgesehen von der für bestimmte Geräte nötigen Firmware, vollständig freie und Open-Source-Software.
      Für ein Projekt wie Waydroid, das Community-Support und kontinuierliche Bereitstellung braucht, ist es eine naheliegende Wahl. Google hat im Laufe der Jahre aus AOSP, der Grundlage von Android, immer wieder viele ursprünglich freie und Open-Source-Bestandteile entfernt, sodass Projekte wie LineageOS Ersatzkomponenten entwickeln mussten. Trotzdem dürfte LineageOS weniger Änderungen an AOSP vornehmen als die meisten Smartphone-Hersteller, Google eingeschlossen.
    • Kann man das wirklich willkürlich nennen? LineageOS ist ein ziemlich etabliertes Projekt. Mir wäre es eher unangenehm, persönliche Daten in ein von Google bereitgestelltes Image einzugeben, weil Googles zentrales Geschäftsmodell darin besteht, meine Daten zu sammeln und mir Werbung anzuzeigen.
    • Ehrlich gesagt vertraue ich LineageOS mehr als einem von Google bereitgestellten Image.
    • Zur Erinnerung: Firefox war früher auch schon einmal auf der Frontpage. Das ist erlaubt. :)
    • Google stellt ein Image bereit, das in Docker läuft.
  • Ich fände es schön, ein containerisiertes Android zu haben, das man auf dem Mac mit etwas wie Docker Desktop oder OrbStack starten kann.
    Ich würde gern ein Docker-Image anpassen, einen gerooteten Man-in-the-Middle-Proxy vorkonfigurieren und dann Android-Apps darauf laufen lassen, um Netzwerkverkehr und API-Aufrufe viel leichter zu beobachten.

    • Wenn du es jetzt schnell machen willst, kannst du Waydroid starten und dann Wireshark innerhalb des für Waydroid erzeugten Network Namespace ausführen.
      sudo ip netns exec wireshark
    • Zur Proxy-Konfiguration weiß ich nichts, aber redroid ist im Grunde Android in einem Docker-Container.
  • Das war die Grundlage, auf der FuriLabs die Android-App-Integration gut umgesetzt hat. Natürlich wurde es geforkt und [0] stark angepasst, aber die User Experience, Android-Apps auf einem Linux-Phone nutzen zu können, war hervorragend.
    [0] https://github.com/FuriLabs/waydroid

    • Hier ist Jesus von FuriLabs. Ich bin gerade noch dabei, FOSDEM abzuschließen, kann aber Fragen oder Feedback beantworten. :)
  • Das Furiphone FLX1 nutzt das intensiv, und es ist wirklich gut. Man kann damit das meiste tun, was man mit einem echten Android-Phone machen möchte.
    Natürlich sind meine Anforderungen nicht sehr groß, aber ich kenne Leute, die es für Signal und Spotify verwenden. Ein großartiges Projekt und genau passend für Linux-Phones.

    • Ich habe es in diesem Thread zum ersten Mal gesehen und mir angeschaut; es sieht gut aus. Ich würde gern eins kaufen, aber in den FAQ steht, dass „Apps, die den vollständigen Google Play Store und dessen Anforderungen benötigen, nicht funktionieren, darunter einige Banking-Apps“.
      Am Ende müsste ich wohl zwei Smartphones mit mir herumtragen. Banking- und Kreditkarten-Apps sind für mich täglich benötigte Pflicht-Apps, und bei manchen Konten kann ich mich selbst im Desktop-Browser ohne Authentifizierung per Smartphone-App nicht einmal anmelden. Auch einzelne Zahlungen erfordern häufig eine Bestätigung in der Smartphone-App. Ich bin nicht in der Lage, für eine freiere User Experience das Konto zu wechseln.
      Abseits von Finanzthemen muss ich in meinem Hauptjob die Google-Suite nutzen, und bei anderer Arbeit musste ich auch Discord verwenden. Das ginge vermutlich über den Browser, auch wenn mit weniger Funktionen, aber bei Banking- und Kreditkarten-Apps ist das nicht so.
      Das ist keine Beschwerde über Waydroid oder das FLX1; ich schätze die Arbeit und Kreativität sehr. Ich habe lange davon geträumt, ein vollständig freies und Open-Source-Phone zu besitzen und selbst mitzubauen, und ich weiß, wie viel Arbeit das ist. Früher hatte ich auch zwei Nokia N900.
      Aber die Zeiten haben sich geändert, und ich hoffe, dass sich ein Weg findet, die Apps oder Protokolle, die der heutige Alltag verlangt, auf oder neben einem System auf Basis freier und Open-Source-Software auszuführen.
    • Dieses Phone ist fast perfekt. TRRS-Anschluss, uSD-Karte, vom Nutzer austauschbarer Akku und sogar Verkauf in den USA.
      Allerdings könnte das fehlende OLED-Panel ein entscheidender Nachteil sein.
    • Ich frage mich, wie das Furiphone FLX1 so ist. Es gibt viel zu wenige Online-Reviews.
    • Unterstützt der USB-C-Port den DP Alternate Mode?
    • Es gibt ein Flatpak Signal, das auch unter FuriOS gut funktioniert.
  • Ich habe drei Apps, die ich vor langer Zeit gekauft habe: ein Schwedisch-Wörterbuch, ein Deutsch-Schwedisch-Wörterbuch und ein Englisch-Schwedisch-Wörterbuch.
    Man kann sie noch installieren, aber im App Store werden sie nicht mehr angeboten. Das Unternehmen Norstedts ist natürlich auf ein Abo-Modell umgestiegen. Ich nutze Waydroid, um diese Apps auf dem Desktop zu verwenden, und bin sehr zufrieden damit.

  • Viele Apps verlassen sich darauf, auf „offiziellen“ Android-Distributionen wie denen von Google oder Samsung zu laufen, und funktionieren nicht auf Waydroids Lineage-basierter Distribution.
    Ein Wine-ähnlicher Ansatz wie https://gitlab.com/android_translation_layer/android_transla... könnte helfen, Apps vorzugaukeln, dass sie auf einer „offiziellen“ Android-Distribution laufen.

    • Um Apps auf diese Weise zu täuschen, gibt es ein bestimmtes Bündel von APIs, das man nachahmen muss. Auf „echtem“ Android übernehmen das Magisk-Module, indem sie Teile davon vortäuschen, oder microG, indem es die Google-Dienste komplett neu implementiert.
      Der Wine-ähnliche Ansatz von ATL ist zum Nachahmen von APIs sicherlich intuitiver, erfordert aber trotzdem eine eigene Neuimplementierung für ATL. Waydroid dagegen führt eine vollständige Android-Umgebung aus, sodass die Möglichkeit besteht, Magisk oder microG wiederzuverwenden.
  • Jedes Mal, wenn ich das sehe, denke ich: „Cool! Damit könnte ich tolle Android-Apps ausführen, für die es keine Linux-Version gibt“ – aber mir fällt jedes Mal nichts ein. Gibt es eine Android-App, die man unbedingt haben muss?

    • Organic Maps und OSMAnd gibt es. Sie sind besser als die Open-Source-Desktop-Kartensoftware, die ich gefunden habe.
      Organic Maps hat zwar eine Desktop-Linux-Version, aber von Funktionsgleichheit ist sie noch weit entfernt. Das könnte sich allerdings dank dieser Förderung [1] ändern, mit der eine gute Desktop-UI für Organic Maps entstehen soll.
      [1] https://nlnet.nl/project/OrganicMaps-ConvergentUI/
    • Ich mag FairEmail als Mail-Client. Das klingt vielleicht seltsam, aber er ist möglicherweise besser als alle Desktop-Mail-Clients, die ich ausprobiert habe.
    • Für mich sind Dinge wie Banking-Apps wichtig, die App-basierte Authentifizierung verlangen. Solche Lösungen funktionieren mit Waydroid und Ähnlichem leider meist nicht gut, weil die App erkennt, dass sie in einem Container läuft, und Funktionen blockiert.
    • Ich habe gesehen, dass es vor allem Leuten empfohlen wird, die auf dem Steam Deck Mobile Games spielen wollen.
    • Ich habe eine „smarte Gitarre“, für deren Einstellungsänderungen man eine eigene App braucht. Das ist der einzige Grund, warum ich weiterhin ein „Smart“-Phone benutze.
  • Kann dieser Container auf Hardware-USB-Geräte zugreifen? Ich habe ein Moondrop FreeDSP USB-C-Kabel mit PEQ, das nur mit einer furchtbaren Android-App funktioniert.
    Das Android-Tablet, das ich hier habe, hat auch noch einen schlechten Touchscreen, sodass das Ändern der EQ-Einstellungen ewig dauert. Ich würde das einfach gern mit einem Linux-Laptop machen.

    • Sieht so aus, als ginge es. Wenn Android den Fokus hat und man ein USB-Gerät einsteckt, greift es sich das USB-Gerät sogar versehentlich: https://github.com/waydroid/waydroid/issues/778
      Und selbst wenn nicht: Am Ende ist es ein Linux-Container, also sollte man es mit ein paar udev-Regeln irgendwie zum Laufen bekommen.
  • Es gibt ein paar Dinge, die bei solchen Projekten immer wieder zu fehlen scheinen. Es mangelt daran, die Hardware-3D-Beschleunigung des Hosts mit den OpenGL-ES- und Vulkan-Versionen zu nutzen, die die meisten Smartphones nativ unterstützen.
    Außerdem haben viele Apps eingebaute Methoden, um zu erkennen, dass sie nicht auf einem Smartphone laufen; sie prüfen cpuinfo, gleichen es mit dem behaupteten Gerät ab und beenden sich dann.
    Die von Geräten erwartete ARM-Unterstützung nimmt ebenfalls zu, und damit auch der erwartete Durchsatz. Dadurch steigt die erforderliche x86-Host-Leistung, um selbst einen gewöhnlichen modernen mobilen ARM-SoC zu emulieren, immer weiter.
    Schließlich liegt die unterstützte Android-Version fast immer drei bis vier Generationen hinter der aktuellen zurück. Apps stellen die Unterstützung für ältere Android-Versionen schnell ein oder laufen auf älteren OS-Versionen mit weniger Funktionen und Optimierungen. Die Android-Basisversion dieses Projekts stammt aus dem Jahr 2020.
    Anekdotisch: Selbst BlueStacks, das in diesem Bereich den wohl kompatibelsten und am besten optimierten Emulations-Stack hat, ist auf einem 7800X3D / RTX 3090 bei den meisten Spielen langsamer als die native Ausführung auf einem Snapdragon-8-Smartphone vom letzten Jahr.

  • Erstaunlich ist, dass niemand das so abstrahiert hat, dass man mehrere Android-Container unter LXC ausführen kann.
    Bei Waydroid gibt es nur ein einziges Image. Für mich sah es so aus, als würde es einen stark gepatchten Custom-Linux-Kernel verwenden, und ich habe es nicht ganz durchdrungen, aber die LXC-Interface-Seite wirkte ziemlich simpel.

    • Waydroid verwendet den Host-Kernel.