Tawc: un compositor Wayland para ejecutar programas Linux en Android sin root

Fuentes: GitHub - wmww/tawc: Tess's Android Wayland Compositor

Tawc es un proyecto de código abierto que permite ejecutar programas de Linux, tanto de línea de comandos como gráficos, en dispositivos Android sin necesidad de root. Las aplicaciones gráficas obtienen aceleración por hardware gracias a la pila gráfica nativa del teléfono, lo que ofrece un rendimiento superior al de alternativas como PRoot.

La arquitectura de Tawc se apoya en tres componentes. El primero es tawcroot, una alternativa a PRoot escrita como un único proceso para mayor velocidad, que emula chroot y otras llamadas al sistema y sorte así las restricciones del Android sin root. El segundo es un compositor Wayland basado en Smithay, que se integra con el sistema Android (por ejemplo, reenviando la entrada del teclado). El tercero es la interfaz de usuario, que incorpora el widget de terminal de Termux para una experiencia conocida, aunque no requiere tener Termux instalado. Tawc incluye además XWayland para soporte de X11 con aceleración hardware y un gestor de tareas para ver y terminar procesos Linux.

En la práctica, Tawc descarga y extrae una distribución Linux estándar —como Arch Linux ARM o Debian— y ejecuta sus programas, incluido el gestor de paquetes nativo, dentro de su rootfs mediante tawcroot. El comando ando y los enlaces de almacenamiento permiten a los programas Linux interactuar con los datos de Android. El soporte gráfico se apoya en un fork propio de libhybris, necesario porque la versión upstream no funciona en Android estándar.

El proyecto tiene limitaciones explícitas: no ofrece sandboxing real más allá del propio Android, no soporta OpenGL de escritorio (solo GLES y Vulkan), aún no se ha optimizado para juegos, el rendimiento no llega al nativo y por ahora solo hay builds oficiales para arm64 (requiere Android 10 o superior). Tawc está construido principalmente con Claude Code y modelos recientes de Anthropic, su código principal es MIT y, por dependencias, el proyecto en conjunto es GPLv3. Su desarrollador, conocido como Tess, prefiere informes de issues a pull requests y pide marcar claramente cualquier contenido generado por LLM.