316 - Tus aplicaciones Android en Ubuntu con Waydroid
En este episodio del podcast te explico como puedes utilizar tus aplicaciones Android en Ubuntu utilizando Waydroid, una solución fantástica
Siempre pensé que dado que Android tiene Linux bajo el capó, ejecutar aplicaciones Android directamente sobre Ubuntu tenía que ser cuestión de coser y cantar. Pero, no, no es tan sencillo como yo esperaba. Y es que hay determinadas cuestiones a tener en cuenta, como es la gestión de hardware, controladores, etc. Como siempre es esa gestión del hardware la que complica las cosas. Sin embargo, no es tan complejo como te piensas. Realmente no va a ser tan complicado tener tus aplicaciones Android en Ubuntu, para ello, en esta ocasión puedes utilizar Waydroid.
De nuevo, volvemos a utilizar la magia de los contenedores para resolver un problema, como es el uso de aplicaciones Android en Ubuntu. Esto mismo, lo puedes ver en otros sistemas operativos. Sin embargo, hasta el momento, no habías tenido la oportunidad de verlo en Ubuntu, o en la distribución que tu estés utilizando.
Con esta solución, podrás ejecutar tus aplicaciones Android en Ubuntu de forma completamente transparente. Pero no solo esto, sino que además los lanzadores de estas aplicaciones los encontrarás en el menú de aplicaciones o directamente en la shell de Ubuntu. Vamos puedes utilizar estas aplicaciones de forma casi nativa.
Tus aplicaciones Android en Ubuntu con Waydroid
Sobre Waydroid
Waydroid es una aproximación desde el mundo de los contenedores para tener un sistema Android completo en un sistema GNU/Linux como puede ser Ubuntu.
Waydroid utiliza los namespaces de Linux (user, pid, uts, net, mount, ipc) para ejecutar un sistema Android completo en un contenedor y proporcionar las aplicaciones Android en cualquier plataforma basada en Linux.
El sistema Android que se encuentra en el interior del contenedor, tiene acceso directo al software, de forma totalmente transparente para el.
En este caso Android esta utilizando una imagen mínima personalizada de LineageOS, y en concreto, en el momento de preparar este podcast estaba utilizando la versión 10 del mismo.
Instalación
Los requisitos mínimos para utilizar Waydroid son los siguientes, y no te saltes ninguno, como hice yo, porque en ese caso no te funcionará.
- Wayland. Si necesitas utilizar Wayland para correr las aplicaciones Android en Ubuntu de la mano de Waydroid. Esto es un requisito imprescindible, y de otra forma ya te garantizo que no funciona. Mas que nada, por que lo he probado. Este requisito es insalbable.
- Python 3. Este requisito, aunque necesario como el anterior, no es nada preocupante, porque será muy raro que no lo tengas instalado en tu equipo. Así, que por este no te preocupes en exceso.
- lxc es una interfaz de espacio de usuario para el núcleo de Linux. Se trata de una potente solución para la gestión de contenedores. Esto lo tienes que instalar previamente a Waydroid, porque de otra forma no te funcionará. De nuevo, aquí me pasé de listo, y me llevó a tener que desinstalar Waydroid, instalar lxc para volver a instalar Waydroid. Un auténtico fracaso y pérdida de tiempo.
Así el primer paso es instalar lxc
,
sudo apt install lxc
El siguiente paso es añadir el repositorio, puedes utilizar las siguientes versiones de Ubuntu,
focal
hirsuite
O también puedes utilizar la siguiente versión de Debian
bullseye
En cualquier caso, reemplaza hirsuite
por la versión de Ubuntu o Debian que utilices, de las indicadas anteriormente, y ejecuta las siguientes instrucciones,
export DISTRO="hirsuite" && \
curl https://repo.waydro.id/waydroid.gpg > /usr/share/keyrings/waydroid.gpg && \
echo "deb [signed-by=/usr/share/keyrings/waydroid.gpg] https://repo.waydro.id/ $DISTRO main" > /etc/apt/sources.list.d/waydroid.list && \
sudo apt update
A partir de aquí tienes que instalar Waydroid. Algo tan sencillo como ejecutar la siguiente instrucción,
sudo apt install waydroid
Inicias el proceso,
sudo waydroid init
Y a continuación inicias el servicio contenerizado,
sudo systemctl start waydroid-container
Reinstalar
En el caso de que no sigas los pasos, y te encuentres en la situación que me encontré yo, que aquello no funciona, te toca reinstalar Waydroid. Para hacerlo, primero tienes que detener la sesión y los contenedores,
waydroid session stop
sudo waydroid container stop
Y desinstalar waydroid
sudo apt remove waydroid
Por último tienes que eliminar /var/lib/waydroid
. Para ello,
sudo rm -rf /var/lib/waydroid
Instalar y ejecutar aplicaciones Android
Llegados a este punto, y una vez tengas instalado Waydroid correctamente, el siguiente paso es instalar aplicaciones. Mi recomendación es que instales F-Droid.
Si no conoces F-Droid, indicarte que es un catálogo instalable de aplicaciones de Open Source gratuitas (FOSS Free and Open Source Software). Se trata de un sencillo cliente con el que podrás navegar entre todo el catálogo de aplicaciones disponibles, instalar las que necesites y en su caso actualizar aquellas que tengan nuevas versiones.
Puedes descargar el apk
desde la página o ejecutando el siguiente comando en un terminal,
wget https://f-droid.org/F-Droid.apk
Una vez descargado llega el momento de instalar tu primera aplicación, y probablemente la última desde la terminal. Y te digo que será la última en instalar desde la terminal, porque desde el momento en que instales F-Droid el resto las puedes instalar fácilmente desde el propio catálogo de esta aplicación,
waidroid app install F-Droid.apk
waydroid
en la línea de comandos
Casi que sería preferible ni que le dieras un vistazo, porque las posibilidades que ofrece waydroid en la línea de comandos es totalmente abrumadora. En este sentido, una vez instalado F-Droid
, casi que vale la pena que sigas desde el escritorio.
Espero que te haya gustado este nuevo episodio del podcast. Si puedes, te agradecería una valoración en iVoox y/o en Apple Podcast.
Imagen de portada de Matt Wojtaś en Unsplash
Hola: para linuxmint mate 20.03, uso el repositorio de focal? o tengo que utilizar otro método.
Gracias
Hola Vicente,
Tienes que utilizar Focal.
Un saludo
Hola, a mi no me ha funcionado:
[10:17:16] Failed to load binder driver for devices: anbox-binder,anbox-vndbinder,anbox-hwbinder
[10:17:16] modprobe: FATAL: Module binder_linux not found in directory /lib/modules/5.10.0-051000-generic
[10:17:16] ERROR: Binder node «binder» for waydroid not found
[10:17:16] See also:
Run ‘waydroid log’ for details.
Hola Brayan,
Que distribución y versión tienes?
Un saludo
Lástima que intenten forzar a la gente a usar Wayland con estas aplicaciones gancho.
Hola Diego,
Wayland está liberado bajo licencia MIT y Waydroid bajo licencia GPL v3. Quién está intentando forzar el uso de Wayland? Y porque consideras Waydroid una aplicación gancho?
Gracias y un saludo
Hola, con todos tus pasos sin errores, no me funciona en ubuntu-studio focal «no arranca». Necesito escritorio gnome?.
De todas formas muchas gracias por todo tu trabajo, personalmente es muy útil.
Un saludo.
Hola Milan,
Vaya, siento leer esto que dices.
En principio no es necesario que sea GNOME, pero si que tienes que utilizar Wayland, no puedes utilizarlo con XOrg. ¿Lo estás utilizando con Xorg?
Un saludo y espero que lo consigas.
Hola Lorenzo,
Hasta aquí llego, lo tengo instalado y funcionando en mi portátil con debian bullseye. Ahora no se conecta a internet. Ya la tenemos, ahora si quiero a trastear, pues no. Probaremos mas adelante. gracias por atenderme y lo dicho gracias por la gran labor divulgativa que haces.
Un saludo.
Vaya lo lamento muchísimo.
Un saludo y gracias
A mi me ha pasado lo mismo. Luego de buscar la vuelta para que inicie, pues los dos últimos comandos algún problema tienen, me refiero a «waydroid session start» y a «waydroid show-full-ui», que tiran los dichosos errores que muchos comentan por la red; abriendo un terminal, ejecutando el primero, abriendo una pestaña, y ejecutando el segundo, cerrando el terminal y volviendo a realizar el mismo paso, logro que se ejecute el GUI. Tras esto, la primera vez inicio todo bien, conexión a Internet, abro el explorador instalo Whatsapp de la web oficial, lo inicio sin problemas.
Solo por probar reinicio la portátil, y chan, ahora resulta que ya no se conecta a la red de nuevo. Siempre iniciando en Wayland claro, en X11 ni siquiera intenta abrir la interfaz de Waydroid. Y ahora me leen aquí, buscando una solución en la red. Estuve viendo las configuraciones de conexión de la distro, aclaro que uso Kubuntu 21.10, y hay ciertos parámetros para configurar en conexiones virtuales de «Waydroid» y «lxcbr0», pero no logro nada. La primera vez, cuando conectó, noté que existía un icono como el de datos de un celular al lado del de wifi y modo avión del portátil, sin embargo ahora solo están éstos últimos.
Ojalá alguien más competente nos guíe a la solución.
Muy buenas Lorenzo! Me tienes enamorado con tus podcasts y este me ha parecido muy útil. Me he lanzado con la instalación tal y como lo explicas pero después de instalar lxc y ponerme con el repositorio, el terminal me devuelve -> bash: /usr/share/keyrings/waydroid.gpg: Permiso denegado.
Tengo instalado:
Kernel: 5.4.0-89-generic x86_64 bits: 64 compiler: gcc v: 9.3.0 Desktop: Cinnamon 5.0.6
Distro: Linux Mint 20.2 Uma base: Ubuntu 20.04 focal
Una ayudita por favor. Gracias!
Estoy con KDE neon 22.04 (basado en Ubuntu 22.04). Me pasaba lo mismo que a ti. Finalmente conseguí instalar Waydroid simplemente siguiendo los pocos pasos que se mencionan en la guía oficial:
https://docs.waydro.id/usage/install-on-desktops#ubuntu-debian-and-derivatives
Saludos.
Waydroid es excelente. En mi caso utilizo Archlinux y no tuve que hacer gran configuración en la App para utilizarla, anque sí tuve que recompilar el kernel para utilizar el Android Binder, que no viene activado por defecto en el kernel estándar en Arch. El resto, sólo abrir un par de puertos en el firewall para tener internet en el contenedor de Android y luego a instalar disfrutar las apk de Android en Linux, la cuales quedan disponibles para ser utilizadas de la misma manera que las aplicaciones nativas, con un icono para darle clic. Simple y eficiente.
Muchísimas gracias por contar tu experiencia.