Categorie
Informatica e hacking

Pidroid, una docking station per Android

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.

Ad uno sviluppatore o ad un utente esperto l’interfaccia Android sta stretta perché ha molte limitazioni ( finestre non ridimensionabili piuttosto che app non ottimizzate…) e non offre strumenti specializzati per l’uso desktop, insomma non si può paragonare ad un ambiente desktop completo.

Android è basato sul kernel Linux quindi nulla ci vieta di fare girare una distribuzione come Debian su un cellulare ( vedi Nethunter di Kali linux), basta avere delle nozioni di base di Linux o installare una app specializzata (Linux Deploy, Anlinux, Debianoroot,ecc..) per fare girare un desktop GNU completo sulla base del kernel sottostante: questo implica l’uso di un display server e una app che possa visualizzarlo come un server ed un viewer VNC oppure usare app native come Sparkle ( un porting di wayland per Android).

Se vogliamo spingerci piu avanti nell’usabilità linux offre alte possibilità di integrazione, potremo usare una single board Arm come postazione desktop lasciando sempre collegati display, mouse, tastiera e altri dispositivi 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 client di input/output: in questo modo il kernel del cellulare avrà il peso di comporre il framebuffer e ricevere o comporre l’audio mentre del rendering sullo schermo, dell’audio e degli altri dispositivi se ne occuperà la sbc.

Con questa suddivisione delle risorse riusciamo ad ottenere buoni risultati nelle performance globali e possiamo pensare veramente di lavorare anche con applicazioni piu avanzate di un semplice browser.

Nel tempo ho ottimizzato una soluzione integrata basata su Debian Arm64 e il desktop XFCE4: basta collegare il cellulare via usb alla scheda per fare partire l’ambiente desktop, uno script attraverso adb apre la comunicazione e fa partire una chroot sul cellulare.

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 o 4.
  • display, tastiera e mouse fisici collegati alla scheda Arm.

Il progetto prevede di trasferire sul cellulare una immagine Debian Arm64 customizzata e degli script di gestione, sulla scheda Arm64 andremo ad installare uno script bash che gestirà automaticamente via adb sia il server TigerVNC che nfs e Pulseaudio.

pidroid architectues schema of os and hardware

Sia la rootfs dell’immmagine Debian che gli script sono stati ottimizzati nel tempo per ottenere il massimo delle performance e una usabilità molto vicina ad una normale postazione desktop Linux. Questa soluzione è diventata la mia base per lo smart working, Chromium con la suite da ufficio Microsoft funziona bene compreso Teams, spero arrivi presto Edge per avere l’account Msf integrato, restano fuori solo particolari ambienti Microsoft dove comunque è necessario un dispositivo con sistema operativo Windows appartenente al dominio ( se la vostra azienda permette di collegare alla rete solo dispositivi di dominio con certificato).

Se vi interessa potete vedere Pidroid in azione qui, happy hacking!

Di Michele Palazzoni

Fin da bambino, sono stato affascinato dai microprocessori e dall'idea di poterli dotare di una sorta di “intelligenza” per eseguire compiti di ogni genere. Questa curiosità si è trasformata rapidamente in una passione profonda per l’elettronica e l’informatica, guidando sia il mio percorso di studi sia la mia carriera professionale. Sono un consulente SAP con piu di 30 anni di esperienza ma mi considero un hacker per natura, amo modellare la tecnologia per rispondere alle mie esigenze e a quelle dei progetti a cui lavoro.