2 puntos por GN⁺ 2025-02-03 | 1 comentarios | Compartir por WhatsApp
  • Waydroid es un proyecto que arranca un sistema Android completo como contenedor en escritorios GNU/Linux basados en Wayland, permitiendo ejecutar apps de Android junto con apps de Linux como si fueran aplicaciones nativas
  • Usa namespaces de Linux, LXC y la interfaz binder para que el contenedor Android acceda directamente al hardware necesario, y soporta plataformas GNU/Linux arm, arm64, x86 y x86_64
  • Las apps de Android pueden integrarse en la carpeta de aplicaciones de Linux, y ofrece modos de ejecución según el entorno de uso, como Multi-Window Mode, Full UI Mode y Fullscreen Mode
  • El runtime está compuesto por una imagen mínima y personalizada del sistema Android basada en LineageOS; la imagen actual está basada en Android 13
  • Después de la instalación, hay que iniciar el servicio waydroid-container y completar el asistente de primer inicio desde el menú de apps; la distribución beta Waydroid-Linux funciona en un entorno instalado, no en live mode

Arquitectura de Android sobre Linux en Waydroid

  • Waydroid usa un enfoque que arranca un sistema Android completo como contenedor dentro de un entorno de escritorio basado en Wayland en un sistema GNU/Linux común
  • El Android dentro del contenedor usa namespaces de Linux
    • user
    • pid
    • uts
    • net
    • mount
    • ipc
  • El sistema Android accede directamente al hardware necesario mediante LXC y la interfaz binder
  • Las plataformas soportadas son arm, arm64, x86 y x86_64 sobre GNU/Linux
  • El proyecto es gratuito y open source, y su repositorio está en GitHub

Integración con el escritorio y modos de ejecución

  • Las apps de Android funcionan en el escritorio junto con las aplicaciones de Linux, y Waydroid agrega las apps de Android a la carpeta de aplicaciones de Linux
  • Los modos de ejecución se dividen según la forma de uso
    • Multi-window mode: amplía la definición de ventanas freeform de Android para agregar varias funciones
    • Full UI Mode: muestra la interfaz completa de Android para juegos y entretenimiento en pantalla completa
    • Se puede usar Fullscreen Mode para escritorios y kioscos
  • En cuanto a rendimiento, apunta a un funcionamiento lo más cercano posible a lo nativo usando Wayland y AOSP mesa
  • El entorno de runtime de Android se entrega con una imagen mínima y personalizada del sistema Android basada en LineageOS; la imagen actual está basada en Android 13

Documentación, instalación y beta de Waydroid-Linux

  • La documentación y la gestión de issues se pueden consultar en enlaces separados
  • El flujo de instalación rápida en distribuciones con systemd consiste en seguir la documentación de instalación correspondiente a cada distribución; si no se inició automáticamente, iniciar el servicio waydroid-container y ejecutar Waydroid desde el menú de aplicaciones para completar el asistente de primer inicio
  • Si se solicita durante el primer inicio, ingresar los enlaces OTA para System OTA y Vendor OTA
  • Waydroid-Linux Beta son distribuciones completamente integradas creadas para mostrar las posibilidades de integración que Waydroid puede implementar
    • La versión alfa inicial comenzó en Ubuntu 20.04(focal)
    • Actualmente también incluye Ubuntu 22.04(jammy) y Debian 12(bookworm)
    • Incluye varias herramientas y scripts para ampliar el rango de tareas posibles
  • Como Waydroid usa LXC y módulos de kernel para binder, Waydroid-Linux no funciona en live mode; para operar correctamente requiere instalación
  • Los elementos de descarga de la beta requieren revisar README.md, y se ofrecen como versiones de ejemplo Ubuntu 22.04 KDE-Plasma, Ubuntu 22.04 Gnome, Debian 12 Beta, Ubuntu 21.10 Beta y versiones alfa anteriores

1 comentarios

 
GN⁺ 2025-02-03
Opiniones de Hacker News
  • Me sorprende que esto haya llegado a la portada. Es software bastante conocido, por eso
    Lo lamentable es que no haya imágenes proporcionadas por Google que corran en Waydroid. Por ejemplo, algo como una imagen de sistema genérica. Da mala espina ingresar una contraseña en una ROM cualquiera descargada de internet
    https://source.android.com/docs/core/tests/vts/gsi

    • Difícil llamarla “una ROM cualquiera descargada de internet”. LineageOS es un proyecto muy establecido desde hace mucho tiempo y, salvo el firmware necesario para dispositivos específicos, es software completamente libre y de código abierto
      Para un proyecto como Waydroid, que necesita soporte de la comunidad y disponibilidad continua, es una opción natural. Con los años, Google ha ido quitando muchas de las partes libres y de código abierto que originalmente estaban en AOSP, la base de Android, así que proyectos como LineageOS tuvieron que desarrollar componentes alternativos. Aun así, diría que LineageOS modifica AOSP menos que la mayoría de los fabricantes de teléfonos, incluido Google
    • ¿Se puede considerar cualquiera? LineageOS es un proyecto bastante consolidado. Más bien me daría más rechazo ingresar datos personales en una imagen proporcionada por Google, porque recolectar mis datos y mostrarme publicidad es el modelo de negocio principal de Google
    • Honestamente, confío más en LineageOS que en una imagen proporcionada por Google
    • Como referencia, Firefox también llegó a la portada alguna vez. Es algo permitido :)
    • Google ofrece una imagen que corre en Docker
  • Estaría bueno tener Android contenedorizado que se pueda levantar en Mac con algo como Docker Desktop u OrbStack
    Quisiera modificar una imagen de Docker para dejar preconfigurado un proxy de intermediario rooteado, cargar una app de Android y observar mucho más fácilmente el tráfico de red y las llamadas a la API

    • Si quieres hacerlo de forma sencilla ahora mismo, ejecuta Waydroid y luego corre Wireshark dentro del namespace de red creado para Waydroid
      sudo ip netns exec wireshark
    • No sé sobre la configuración del proxy, pero redroid es básicamente Android dentro de un contenedor Docker
  • Esta fue la base sobre la que FuriLabs hizo una buena integración de apps Android. Claro, la bifurcaron y la modificaron bastante [0], pero la experiencia de usuario que lograron para usar apps Android en un teléfono Linux fue excelente
    [0] https://github.com/FuriLabs/waydroid

    • Soy Jesus de FuriLabs. Estoy terminando FOSDEM, pero puedo responder preguntas o feedback :)
  • Furiphone FLX1 lo está aprovechando activamente y es realmente bueno. Puedes hacer la mayor parte de lo que querrías hacer con un teléfono Android de verdad
    Claro que yo no quiero tantas cosas, pero conozco gente que lo usa con Signal y Spotify. Es un gran proyecto y encaja perfecto con los teléfonos Linux

    • Lo vi por primera vez en este hilo y le eché un vistazo; se ve bien. Quisiera comprar uno, pero en el FAQ dice que “las apps que necesitan todo Google Play Store y sus requisitos no funcionan, incluidas algunas apps bancarias”
      Al final parece que tendría que llevar dos teléfonos. Las apps de bancos y tarjetas de crédito son imprescindibles para mí todos los días, y con algunas cuentas ni siquiera puedo iniciar sesión desde un navegador de escritorio sin autenticarme con la app del teléfono. Los pagos individuales también suelen requerir confirmación desde la app móvil. Tampoco estoy en situación de cambiar de banco para tener una experiencia de usuario más libre
      Fuera de lo financiero, en mi trabajo principal tengo que usar la suite de Google, y en otros trabajos también tuve que usar Discord. Eso probablemente podría hacerse desde el navegador aunque con menos funciones, pero con las apps de bancos y tarjetas de crédito no es así
      No es una queja sobre Waydroid ni sobre el FLX1; aprecio el trabajo y la creatividad. Desde hace mucho sueño con tener y armar yo mismo un teléfono completamente libre y de código abierto, y sé la cantidad de trabajo que implica. Antes también usé dos Nokia N900
      Pero los tiempos cambiaron, y espero que se encuentre una forma de ejecutar las apps o protocolos que exige la vida diaria actual sobre, o junto a, un sistema basado en software libre y de código abierto
    • Este teléfono es casi perfecto. Tiene conector TRRS, tarjeta uSD, batería reemplazable por el usuario e incluso se vende en EE. UU.
      Aunque la falta de panel OLED podría ser un defecto decisivo
    • Me da curiosidad cómo es el Furiphone FLX1. Hay muy pocas reseñas en línea
    • ¿El puerto USB-C soporta modo alternativo DP?
    • Hay un Flatpak de Signal que también funciona bien en FuriOS
  • Tengo tres apps que compré hace mucho tiempo: un diccionario de sueco, un diccionario alemán-sueco y un diccionario inglés-sueco
    Todavía se pueden instalar, pero ya no están disponibles en la tienda de apps. La empresa, Norstedts, por supuesto pasó a un modelo de suscripción. Uso Waydroid para usar estas apps en el escritorio y estoy muy satisfecho

  • Muchas apps dependen de ejecutarse en distribuciones Android “oficiales”, como las de Google o Samsung, y no funcionan en la distribución basada en Lineage de Waydroid
    Un enfoque tipo Wine como https://gitlab.com/android_translation_layer/android_transla... podría ayudar a engañar a las apps para que crean que se están ejecutando en una distribución Android “oficial”

    • Para engañar a las apps de esa manera, hay un conjunto específico de API que hay que imitar. En Android “real”, esto se maneja con módulos de Magisk que falsifican algunas partes, o con microG, que reimplementa por completo los servicios de Google
      El enfoque tipo Wine de ATL sin duda es más intuitivo para imitar API, pero aun así requiere una reimplementación separada para ATL. En cambio, Waydroid ejecuta un entorno Android completo, así que existe la posibilidad de reutilizar Magisk o microG
  • Cada vez que veo esto pienso: “¡Qué genial! Podría ejecutar apps geniales de Android que no tienen versión para Linux”, pero nunca se me ocurre ninguna. ¿Hay alguna app de Android imprescindible?

    • Están Organic Maps y OSMAnd. Son mejores que el software de mapas de escritorio de código abierto que encontré.
      Organic Maps tiene una versión para Linux de escritorio, pero todavía está lejos de tener paridad de funciones. Aunque eso podría cambiar gracias a este financiamiento para crear una buena UI de escritorio para Organic Maps [1].
      [1] https://nlnet.nl/project/OrganicMaps-ConvergentUI/
    • Me gusta FairEmail, el cliente de correo. Suena raro, pero quizá sea mejor que todos los clientes de correo de escritorio que probé.
    • Para mí, lo importante son cosas como las apps bancarias que requieren autenticación basada en app. Claro que este tipo de solución, lamentablemente, no funciona bien en Waydroid y similares, porque la app detecta que está dentro de un contenedor y bloquea funciones.
    • He visto que lo recomiendan principalmente a gente que quiere jugar juegos móviles en la Steam Deck.
    • Tengo una “guitarra inteligente” que requiere una app dedicada para cambiar la configuración. Esa es la única razón por la que sigo usando un “teléfono inteligente”.
  • ¿Este contenedor puede acceder a dispositivos USB de hardware? Tengo un cable USB-C Moondrop FreeDSP con PEQ que solo funciona con una pésima app de Android.
    La tablet Android que tengo a mano también tiene una pantalla táctil mala, así que cambiar los ajustes de EQ tarda demasiado. Quisiera hacerlo simplemente desde una laptop con Linux.

    • Parece que sí. Si conectas un dispositivo USB cuando Android tiene el foco, incluso puede tomar ese dispositivo USB por accidente: https://github.com/waydroid/waydroid/issues/778
      Y aunque no fuera así, al final es un contenedor Linux, así que con algunas reglas de udev probablemente se podría hacer que funcione de todos modos.
  • Hay algunas cosas que parecen seguir faltando en proyectos como este. Falta, en gran medida, poder usar la aceleración 3D por hardware del host con las versiones de OpenGL ES y Vulkan que la mayoría de los teléfonos soportan de forma nativa.
    Además, muchas apps tienen mecanismos integrados para detectar que no se están ejecutando en un teléfono; miran cpuinfo, lo comparan con el dispositivo declarado y luego se cierran.
    También va aumentando el soporte de ARM que se espera de los dispositivos, junto con el rendimiento esperado. Por eso, incluso para emular un SoC ARM móvil moderno común, la potencia x86 necesaria en el host es cada vez mayor.
    Por último, la versión de Android soportada casi siempre está 3 o 4 generaciones por detrás de la más reciente. Las apps dejan rápidamente de soportar Android antiguo, o se ejecutan en versiones viejas del SO con menos funciones y optimizaciones. La versión base de Android de este proyecto es de 2020.
    Como anécdota, incluso BlueStacks, que tiene una de las pilas de emulación más compatibles y optimizadas en este ámbito, al ejecutarse en un 7800X3D / RTX 3090 hace que la mayoría de los juegos vayan más lentos que corriendo de forma nativa en un teléfono Snapdragon 8 del año pasado.

  • Lo sorprendente es que nadie haya abstraído esto para permitir ejecutar varios contenedores Android bajo LXC.
    En Waydroid solo hay una imagen. Me pareció que usa un kernel Linux personalizado con muchos parches, aunque no lo llegué a entender bien; aun así, la parte de la interfaz LXC parecía bastante simple.

    • Waydroid usa el kernel del host.