2 points par GN⁺ 2025-02-03 | 1 commentaires | Partager sur WhatsApp
  • Waydroid est un projet qui démarre un système Android complet dans un conteneur sur un bureau GNU/Linux basé sur Wayland, afin d’exécuter les applications Android aux côtés des applications Linux, comme s’il s’agissait d’applications natives Linux
  • En s’appuyant sur les namespaces Linux, LXC et l’interface binder, le conteneur Android accède directement au matériel nécessaire et prend en charge les plateformes GNU/Linux arm, arm64, x86 et x86_64
  • Les applications Android peuvent être intégrées au dossier des applications Linux, et plusieurs modes d’exécution sont proposés selon l’usage, comme Multi-Window Mode, Full UI Mode et Fullscreen Mode
  • Le runtime repose sur une image système Android minimalement personnalisée basée sur LineageOS ; l’image actuelle est basée sur Android 13
  • Après l’installation, il faut démarrer le service waydroid-container puis lancer l’assistant de première exécution depuis le menu des applications ; la distribution bêta Waydroid-Linux fonctionne dans un environnement installé, et non en live mode

Architecture Android-on-Linux de Waydroid

  • Waydroid utilise une approche qui consiste à démarrer un système Android complet dans un conteneur au sein d’un environnement de bureau basé sur Wayland sur un système GNU/Linux classique
  • Android à l’intérieur du conteneur utilise les namespaces Linux
    • user
    • pid
    • uts
    • net
    • mount
    • ipc
  • Le système Android accède directement au matériel nécessaire via LXC et l’interface binder
  • Les plateformes prises en charge sont arm, arm64, x86 et x86_64 sur GNU/Linux
  • Le projet est gratuit et open source, et son dépôt se trouve sur GitHub

Intégration au bureau et modes d’exécution

  • Les applications Android fonctionnent sur le bureau aux côtés des applications Linux, et Waydroid ajoute les applications Android au dossier des applications Linux
  • Les modes d’exécution se divisent selon l’usage
    • Multi-window mode : étend la définition des fenêtres libres Android afin d’ajouter plusieurs fonctionnalités
    • Full UI Mode : affiche l’interface Android complète pour les jeux et les contenus de divertissement en plein écran
    • Il est possible d’utiliser le Fullscreen Mode pour les postes de bureau et les kiosques
  • Côté performances, l’objectif est d’obtenir un fonctionnement aussi proche que possible du natif grâce à Wayland et à AOSP mesa
  • L’environnement d’exécution Android est fourni avec une image système Android minimalement personnalisée basée sur LineageOS ; l’image actuelle est basée sur Android 13

Documentation, installation et bêta Waydroid-Linux

  • La documentation et la gestion des tickets sont disponibles via des liens distincts
  • Sur les distributions avec systemd, le flux d’installation rapide consiste à suivre la documentation propre à la distribution, puis, si le démarrage automatique n’a pas eu lieu, à lancer le service waydroid-container et exécuter Waydroid depuis le menu des applications pour suivre l’assistant de première exécution
  • Si cela est demandé lors du premier lancement, saisir les liens OTA pour System OTA et Vendor OTA
  • Waydroid-Linux Beta est un ensemble de distributions entièrement intégrées, conçu pour montrer les possibilités d’intégration que Waydroid peut offrir
    • La première version alpha a commencé avec Ubuntu 20.04 (focal)
    • S’y ajoutent désormais Ubuntu 22.04 (jammy) et Debian 12 (bookworm)
    • Elles incluent divers outils et scripts pour élargir l’éventail des tâches possibles
  • Comme Waydroid utilise LXC et des modules du noyau pour binder, Waydroid-Linux ne fonctionne pas en live mode et nécessite une installation pour fonctionner correctement
  • La section de téléchargement de la bêta demande de consulter le README.md, et propose par exemple Ubuntu 22.04 KDE-Plasma, Ubuntu 22.04 Gnome, Debian 12 Beta, Ubuntu 21.10 Beta ainsi que les anciennes versions alpha

1 commentaires

 
GN⁺ 2025-02-03
Avis Hacker News
  • Je suis surpris que ce soit arrivé en page d’accueil. C’est un logiciel assez connu, après tout.
    Ce qui est dommage, c’est qu’il n’existe pas d’image fournie par Google qui tourne avec Waydroid. Par exemple une image système générique. Saisir son mot de passe dans une ROM quelconque récupérée sur Internet, ça met mal à l’aise.
    https://source.android.com/docs/core/tests/vts/gsi

    • Il est difficile de parler d’une « ROM quelconque récupérée sur Internet ». LineageOS est un projet très établi de longue date et, à l’exception du firmware nécessaire à certains appareils, c’est un logiciel entièrement libre et open source.
      Pour un projet comme Waydroid, qui a besoin d’un support communautaire et d’une fourniture continue, c’est un choix naturel. Au fil des années, Google a continué à retirer d’AOSP, la base d’Android, beaucoup de composants libres et open source qui y existaient à l’origine, ce qui a obligé des projets comme LineageOS à développer des composants de remplacement. Malgré tout, j’imagine que les modifications apportées par LineageOS à AOSP sont moins nombreuses que celles de la plupart des fabricants de téléphones, Google compris.
    • Peut-on vraiment dire que c’est quelconque ? LineageOS est un projet assez bien établi. À l’inverse, je serais plus réticent à saisir des informations personnelles dans une image fournie par Google. Collecter mes données et me montrer des publicités, c’est le cœur du modèle économique de Google.
    • Franchement, je fais davantage confiance à LineageOS qu’à une image fournie par Google.
    • Pour info, Firefox aussi est déjà passé en page d’accueil par le passé. C’est autorisé :)
    • Google fournit une image qui tourne dans Docker.
  • J’aimerais bien avoir un Android conteneurisé qu’on puisse lancer sur Mac avec Docker Desktop ou OrbStack.
    Je voudrais modifier l’image Docker pour préconfigurer un proxy d’interception rooté, puis y installer des apps Android afin d’observer beaucoup plus facilement le trafic réseau et les appels API.

    • Si vous voulez faire simple tout de suite, vous pouvez lancer Waydroid puis exécuter Wireshark dans le network namespace créé pour Waydroid.
      sudo ip netns exec wireshark
    • Je ne sais pas pour la configuration du proxy, mais redroid est en pratique Android dans un conteneur Docker.
  • C’est sur cette base que FuriLabs a construit une bonne intégration des apps Android. Bien sûr, ils ont forké [0] et beaucoup modifié, mais l’expérience utilisateur permettant d’utiliser des apps Android sur un téléphone Linux était excellente.
    [0] https://github.com/FuriLabs/waydroid

    • Ici Jesus de FuriLabs. Je suis en train de boucler le FOSDEM, mais je peux répondre si vous avez des questions ou des retours :)
  • Le Furiphone FLX1 exploite ça à fond, et c’est vraiment bien. On peut faire la plupart des choses qu’on voudrait faire avec un vrai téléphone Android.
    Certes, mes besoins ne sont pas énormes, mais je connais aussi des gens qui l’utilisent pour Signal et Spotify. C’est un excellent projet, parfaitement adapté aux téléphones Linux.

    • Je l’ai découvert dans ce fil et j’ai regardé un peu, ça a l’air bien. J’aimerais en acheter un, mais la FAQ dit que « les apps qui nécessitent l’intégralité du Google Play Store et ses prérequis ne fonctionnent pas, ce qui inclut certaines apps bancaires ».
      Au final, j’aurais sans doute à transporter deux téléphones. Les apps de banque et de carte bancaire sont des apps indispensables au quotidien, et pour certains comptes je ne peux même pas me connecter depuis un navigateur desktop sans validation via l’app mobile. Même des paiements individuels demandent souvent une confirmation dans l’app du téléphone. Je ne suis pas en situation de changer de banque pour avoir une expérience utilisateur plus libre.
      En dehors de la finance, pour mon travail principal je dois utiliser la suite Google, et pour d’autres activités j’ai aussi dû utiliser Discord. Ça devrait être possible via le navigateur, même avec moins de fonctionnalités, mais ce n’est pas le cas des apps de banque et de carte bancaire.
      Ce n’est pas une critique de Waydroid ni du FLX1, et j’apprécie le travail et la créativité qu’il y a derrière. Je rêve depuis longtemps de posséder et de bricoler moi-même un téléphone entièrement libre et open source, et je sais quelle quantité de travail cela représente. J’ai même eu deux Nokia N900 à l’époque.
      Mais les temps ont changé, et j’espère qu’on trouvera un moyen de faire fonctionner les apps ou protocoles qu’exige la vie quotidienne actuelle sur un système libre et open source, ou à côté.
    • Ce téléphone est presque parfait. Il a un connecteur TRRS, une carte uSD, une batterie remplaçable par l’utilisateur, et il est même vendu aux États-Unis.
      L’absence d’écran OLED pourrait toutefois être un défaut rédhibitoire.
    • Je me demande ce que vaut le Furiphone FLX1. Il y a trop peu d’avis en ligne.
    • Le port USB-C prend-il en charge le mode alternatif DP ?
    • Il existe un Signal Flatpak qui fonctionne aussi très bien sous FuriOS.
  • J’ai trois apps que j’ai achetées il y a longtemps : un dictionnaire suédois, un dictionnaire allemand-suédois et un dictionnaire anglais-suédois.
    Elles peuvent encore être installées, mais ne sont plus proposées dans l’app store. L’entreprise, Norstedts, est évidemment passée à un modèle par abonnement. J’utilise Waydroid pour me servir de ces apps sur desktop, et j’en suis très satisfait.

  • Beaucoup d’apps dépendent du fait de s’exécuter sur des distributions Android « officielles » comme celles de Google ou Samsung, et ne fonctionnent pas sur la distribution basée sur Lineage de Waydroid.
    Une approche à la Wine comme https://gitlab.com/android_translation_layer/android_transla... pourrait aider à faire croire aux apps qu’elles tournent sur une distribution Android « officielle ».

    • Pour tromper les apps de cette manière, il y a un ensemble précis d’API qu’il faut imiter. Sur un « vrai » Android, certains modules Magisk masquent une partie de ces éléments, ou microG réimplémente l’ensemble des services Google.
      L’approche façon Wine d’ATL est certainement plus intuitive pour imiter des API, mais il faudra tout de même une réimplémentation spécifique pour ATL. À l’inverse, Waydroid exécute un environnement Android complet, ce qui pourrait permettre de réutiliser Magisk ou microG.
  • Chaque fois que je vois ça, je me dis « super ! Je vais pouvoir lancer de chouettes apps Android qui n’ont pas d’équivalent sous Linux », mais à chaque fois rien ne me vient. Y a-t-il une app Android vraiment indispensable ?

    • Il y a Organic Maps et OSMAnd. C’est mieux que les logiciels de cartographie open source pour desktop que j’ai trouvés
      Organic Maps a une version desktop Linux, mais elle est encore loin d’avoir la parité fonctionnelle. Cela dit, ça pourrait changer grâce à cette subvention [1] visant à créer une bonne UI desktop pour Organic Maps
      [1] https://nlnet.nl/project/OrganicMaps-ConvergentUI/
    • J’aime bien FairEmail, le client mail. Ça peut sembler étrange, mais il est peut-être meilleur que tous les clients mail desktop que j’ai essayés
    • Pour moi, ce qui compte, ce sont des choses comme les apps bancaires qui exigent une authentification via app. Bien sûr, ce genre de solution ne fonctionne malheureusement pas bien avec Waydroid, car l’app détecte qu’elle est dans un conteneur et bloque des fonctionnalités
    • J’ai surtout vu ça recommandé à des gens qui veulent jouer à des jeux mobiles sur Steam Deck
    • J’ai une « guitare intelligente » qui nécessite une app dédiée pour modifier les réglages. C’est la seule raison pour laquelle je continue à utiliser un « smart »phone
  • Ce conteneur peut-il accéder aux périphériques USB matériels ? J’ai un câble USB-C Moondrop FreeDSP avec PEQ intégré, mais il ne fonctionne qu’avec une mauvaise app Android
    La tablette Android que j’ai sous la main a aussi un écran tactile médiocre, donc changer les réglages d’EQ prend beaucoup trop de temps. J’aimerais juste le faire depuis un laptop Linux

    • On dirait que oui. Au point que, quand Android a le focus, si on branche un périphérique USB il peut le capturer par erreur : https://github.com/waydroid/waydroid/issues/778
      Même si ce n’était pas le cas, au final c’est un conteneur Linux, donc avec quelques règles udev on devrait pouvoir le faire fonctionner d’une manière ou d’une autre
  • Il y a plusieurs choses qui semblent toujours manquer dans ce type de projets. Il manque l’utilisation de l’accélération 3D matérielle de l’hôte avec les versions d’OpenGL ES et de Vulkan que la plupart des téléphones prennent en charge nativement
    De plus, beaucoup d’apps ont des moyens intégrés de détecter qu’elles ne tournent pas sur un téléphone, regardent cpuinfo, le comparent à l’appareil annoncé, puis quittent
    Le support ARM attendu des appareils augmente aussi, tout comme le débit attendu. Du coup, même pour émuler un SoC ARM mobile moderne ordinaire, la puissance nécessaire côté hôte x86 ne cesse d’augmenter
    Enfin, la version d’Android prise en charge a presque toujours 3 ou 4 générations de retard sur la dernière. Les apps abandonnent rapidement le support des anciens Android, ou s’exécutent avec moins de fonctionnalités et d’optimisations sur les vieilles versions de l’OS. La version Android de base de ce projet date de 2020
    Pour l’anecdote, même BlueStacks, qui dispose de la pile d’émulation la plus compatible et la mieux optimisée dans ce domaine, fait tourner la plupart des jeux sur un 7800X3D / RTX 3090 plus lentement qu’en natif sur un téléphone Snapdragon 8 de l’an dernier

  • Ce qui est étonnant, c’est que personne n’ait abstrait ça pour permettre d’exécuter plusieurs conteneurs Android sous LXC
    Avec Waydroid, il n’y a qu’une seule image. À mes yeux, ça semblait utiliser un noyau Linux custom très patché, et je n’ai pas vraiment creusé, mais côté interface LXC ça avait l’air assez simple

    • Waydroid utilise le noyau de l’hôte