Negli ultimi, anni con il continuo incremento di performance dei cellulari sono nate numerose iniziative per usare il nostro telefono come unico device personale, anche come desktop replacement: quasi tutti i cellulari moderni hanno la possibilità di essere collegati al grande schermo, al mouse ed alla tastiera fisica, i grandi costruttori come Samsung o Huawei offrono interfacce Android specializzate per un l’uso desktop ed anche Google si sta muovendo in questo senso.
Ad uno sviluppatore o ad un utente esperto l’interfaccia Android sta stretta perché ha molte limitazioni, d’altronde è un sistema pensato per dispositivi mobili e non offre tutti gli strumenti specializzati in suo sui computer desktop, insomma lo smartphone non si può paragonare ad un ambiente desktop completo.
Android però è basato sul kernel linux quindi nulla ci vieta di farci girare un ambiente grafico che sia veramente un desktop identico a quello delle nostre distribuzioni preferite ( vedi Nethunter di Kali linux): basta avere delle nozioni di base del sistema del pinguino o installare una app specializzata (Linux Deploy, Anlinux, Debianoroot,ecc..) per ottenere questo risultato che implica l’uso di un display server come XServerSDL, Sparkle – un porting di wayland per Android o una app VNC viewer.
Se vogliamo spingerci piu avanti nell’usabilità, il mondo open source offre molte possibilità di personalizzazione ed integrazione: potremo usare una single board Arm sempre collegata al monitor, al mouse ed alla tastiera ed usarla come docking station a cui collegare il nostro cellulare via USB. In questo modo potremo sfruttare il potente processore del cellulare come server e la sbc come input/output: in questo modo il kernel del cellulare sarà scaricato della gestione dell’hardware fisico e dovrà solo comporre il video e l’audio mentre dell’output e decodifica su schermo, dispositivi audio e altri dispositivi se ne occuperà la sbc.
Con questa suddivisione delle risorse e con gli ultimi processori Snapdragon 8 si riescono ad ottenere buoni risultati nelle performance globali, possiamo pensare veramente di lavorare anche con applicazioni più avanzate di un semplice browser ( d’altronde i Chromebook o Windows fanno la stessa cosa ;-).
Nel tempo ho ottimizzato con piccoli accorgimenti una distribuzione Debian con XFCE sullo smarthphone e sulla scheda arm, mi basta collegare il cellulare con un cavo usb alla scheda arm per lavorare su un vero desktop linux.
Il progetto è spiegato su GitHub, per la sua realizzazione sono necessari :
- un cellulare Android con root attivo, questo si può realizzare semplicemente con Magisk.
- una scheda Arm64 abbastanza potente come Raspberry PI 3/4 o melgio RockPi 3/4.
- display, tastiera, mouse ed i dispositivi che volete collegati alla scheda Arm.
Una volta trasferita l’immagine della root sullo smartphone e installato Debian ( o Raspian) e pacchetto di gestione sulla scheda Arm64, uno script gestirà automaticamente via adb sul cavo usb, sia il server TigerVNC che Pulseaudio o altri server per altre periferiche ( dischi, stampanti, etc..).

Il tutto è stato realizzato con Debian ma puo essere usata qualisasi distribuzione linux, gli script sono stati ottimizzati nel tempo per ottenere una usabilità molto vicina ad una normale postazione desktop Linux con le stesse performance se non superiori di un Chromebook o Macbook. Questa soluzione è diventata la mia base di lavoro, la vastità dei software open non mi fa sentire particolari mancanze, se per lavoro è necessaria la suite Office Chromium e Firefox funzionano molto bene con 365 compreso Teams, VSCode e altri strumenti MS. L’emulazione x86_64 e Wine fanno il resto se necessario ( vedi powershell), restano fuori solo ambienti pesanti dove la potenza del processore arm non è sufficiente e gli strumenti di amministrazione di dominio che girano solamente su Windows.