Home / News / Eseguire applicazioni Linux grafiche su Android senza root: ora c’è tawc

Eseguire applicazioni Linux grafiche su Android senza root: ora c’è tawc

TAWC porta distribuzioni e applicazioni Linux su Android senza richiedere i permessi di root. Il progetto utilizza Wayland, tawcroot e un fork di libhybris per accedere alla GPU del telefono, con XWayland e nuovi backend grafici attualmente in fase sperimentale.

Eseguire applicazioni Linux grafiche su Android senza root: ora c'è tawc

Far girare applicazioni Linux complete su uno smartphone Android senza effettuare il root non è una novità. Termux ha già dimostrato le potenzialità possibili all’interno dei limiti imposti dal sistema operativo di Google; PRoot ha poi reso possibile simulare, senza privilegi di root, operazioni normalmente riservate all’amministratore, come chroot e bind mount: invece di modificare effettivamente il filesystem o creare nuovi punti di montaggio nel kernel, intercetta le chiamate di sistema dei programmi e presenta loro una vista differente di file e directory, operando interamente nello spazio utente.

La sfida principale si presenta quando si desidera andare oltre la riga di comando: eseguire Firefox, terminali grafici e programmi Wayland o X11 sfruttando appieno la GPU del telefono, evitando che ogni frame venga elaborato dalla CPU con un elevato costo computazionale.

TAWC, acronimo di “Tess’s Android Wayland Compositor”, è un progetto ambizioso che mira a installare una normale distribuzione Linux, eseguire i suoi programmi e il relativo package manager senza root, integrare le finestre Linux nell’interfaccia Android e utilizzare lo stack grafico nativo dello smartphone per l’accelerazione hardware.

Google sta sviluppando un proprio Linux Development Environment, inizialmente introdotto in forma sperimentale con Android 15 QPR1 e successivamente ampliato. Android 16 QPR2 ha poi aggiunto il supporto per applicazioni Linux dotate di interfaccia grafica: non più solo una shell Debian accessibile tramite Terminale.

Il risultato, dal punto di vista dell’utente, può sembrare simile a quello perseguito da TAWC, ma l’approccio tecnico è molto diverso. L’app Terminal di Google utilizza Android Virtualization Framework (AVF) per creare e gestire una vera macchina virtuale. Se necessario, scarica l’immagine del sistema operativo Linux e la avvia come guest separato. Google descrive esplicitamente Terminal come un’app Android che si connette ai servizi in esecuzione nella VM; non si tratta quindi di programmi Debian eseguiti direttamente sopra il kernel Android come avviene con TAWC.

Uno dei componenti fondamentali di AVF è pKVM, una variante di KVM progettata per creare ambienti più isolati dall’host Android. In TAWC, i programmi Linux continuano a utilizzare il kernel in esecuzione sullo smartphone, mentre tawcroot modifica ciò che vedono del filesystem e intercetta alcune operazioni che richiederebbero normalmente privilegi maggiori. Si tratta di un approccio più simile a PRoot rispetto a una macchina virtuale, anche se con un’implementazione diversa pensata per ridurre l’overhead.

TAWC si distingue da Termux, che porta su Android un ambiente Unix con programmi compilati specificamente per Bionic, la libreria C utilizzata dal sistema operativo Google. I pacchetti Termux non sono semplicemente quelli di Debian o Ubuntu copiati nello smartphone: devono adattarsi alle peculiarità della piattaforma Android e operano normalmente all’interno della sandbox dell’applicazione.

TAWC si comporta diversamente: scarica ed estrae il filesystem root di una vera distribuzione Linux e tenta di far funzionare direttamente i suoi binari, compreso il package manager nativo. Attualmente, il progetto considera Arch Linux ARM e Debian sid le distribuzioni destinate agli utenti; Manjaro ARM, Void Linux e alcune configurazioni x86-64 rimangono opzioni sperimentali o dedicate allo sviluppo.

Un programma compilato per una normale distribuzione Linux si aspetta generalmente glibc, percorsi, chiamate di sistema e comportamenti che Android non espone nello stesso modo. La sandbox di TAWC, tuttavia, non va trattata come un contenitore che isola completamente le applicazioni in esecuzione. I programmi Linux restano comunque racchiusi nei limiti imposti da Android all’app TAWC, ma non bisogna considerare la distribuzione installata come un contenitore ostile nel quale eseguire software non affidabile aspettandosi una separazione robusta.

Dal punto di vista pratico, TAWC è ancora un progetto in fase iniziale, ma l’autrice ha già pubblicato una prima release utilizzabile sotto forma di pacchetto APK. La versione v1 richiede Android 10 o versioni successive e, per le build ufficiali, uno smartphone con architettura ARM64. Il codice può essere compilato anche per x86, ma il percorso grafico basato su libhybris sfrutta tecniche che dipendono dall’architettura ARM, quindi il supporto ufficiale resta concentrato sui dispositivi fisici ARM64.

Come anticipato, non sono necessari né root né un’installazione separata di Termux. TAWC incorpora infatti il widget terminale di Termux direttamente nell’applicazione e da lì consente di lavorare all’interno della distribuzione Linux installata.

Una volta completata l’installazione, è possibile utilizzare il normale package manager della distribuzione. Con Debian significa quindi lavorare con apt; con Arch Linux ARM con pacman. Non si tratta di repository creati appositamente per TAWC: l’obiettivo è eseguire i pacchetti della distribuzione con il minor numero possibile di adattamenti.

La documentazione di sviluppo mostra, ad esempio, Firefox avviato direttamente dal rootfs con firefox –no-remote e lxterminal con il semplice comando lxterminal. Per le applicazioni grafiche l’esperienza prova ad allontanarsi dal classico “desktop Linux dentro una finestra”: quando TAWC rileva un’applicazione grafica installata, può renderla disponibile nel proprio launcher; le app Linux possono anche essere aggiunte alla schermata Home di Android e comparire nel selettore delle applicazioni recenti insieme alle normali app Android. XWayland è già incluso, quindi anche i programmi X11 possono appoggiarsi al compositor Wayland senza richiedere all’utente di configurare manualmente un server X separato.

La release attuale di TAWC non garantisce la compatibilità universale con ogni smartphone e programma Linux. Il backend grafico predefinito è libhybris, che secondo la documentazione funziona su tutti i dispositivi fisici testati dagli sviluppatori; esistono anche i backend libhybris-zink, gfxstream e cpu, ma gfxstream rimane sperimentale e parziale. Inoltre, TAWC non offre ancora OpenGL desktop attraverso il percorso principale, bensì le API grafiche fornite dal telefono, generalmente OpenGL ES e Vulkan. Il progetto, infine, non è stato ancora ottimizzato né sottoposto a test seri per il gaming.

Un aspetto particolare di TAWC riguarda la metodologia di sviluppo: il README indica che il progetto è stato costruito in gran parte con l’ausilio di agenti AI, nello specifico Claude Code e i modelli più recenti di Anthropic. L’autrice, Sophie Winter, ingegnere software, precisa di aver utilizzato estesamente questi agenti nella costruzione e manutenzione del progetto.

Questo approccio suggerisce un modello che probabilmente vedremo sempre più spesso: lo sviluppatore definisce architettura, obiettivi, vincoli e procedure di verifica, mentre uno o più agenti AI producono e modificano una quota crescente del codice. Resta aperta la questione della qualità, sicurezza e manutenibilità quando il progetto inizia a crescere. Nel caso di TAWC, l’autrice rende trasparente il metodo utilizzato e inserisce nel repository gli avvertimenti necessari per ricordare che l’output dell’AI non costituisce di per sé una prova di correttezza.

* Contenuto realizzato con l’ausilio di sistemi di intelligenza artificiale.