La condivisione rapida di file tra dispositivi eterogenei rappresenta da anni un punto critico per chi utilizza sistemi GNU/Linux in contesti misti con Android e Windows. Dal rilascio di Nearby Share da parte di Google nel 2020 e della sua evoluzione in Quick Share, l’integrazione ufficiale è rimasta confinata a piattaforme supportate direttamente dalla società di Mountain View.
In questo scenario, una nuova implementazione per Linux basata sul codice ufficiale di Google introduce un approccio differente rispetto alle soluzioni precedenti, storicamente limitate a reverse engineering e trasmissioni su rete locale. L’iniziativa si inserisce in un contesto in cui la richiesta di interoperabilità tra dispositivi continua a crescere, sostenuta dalla diffusione di protocolli wireless multi-trasporto e da stack software maturi come BlueZ e NetworkManager.
Architettura della soluzione e aderenza al codice ufficiale Google
Il progetto pubblicato su GitHub come software open source (download), sotto licenza Apache 2.0, nasce come implementazione nativa dei protocolli Nearby Connections, Nearby Presence e Fast Pair utilizzando la base di codice ufficiale pubblicata da Google.

A differenza di strumenti già esistenti per Linux, basati su reverse engineering del protocollo Quick Share e limitati alla sola trasmissione su WiFi LAN, la nuova applicazione per Linux sfrutta i meccanismi ufficiali di discovery, advertising e scambio dati previsti dalla piattaforma Google.
L’architettura è progettata come libreria riutilizzabile a cui si affianca un client dimostrativo. La scelta consente a sviluppatori di terze parti di collegarsi direttamente all’API e costruire applicazioni personalizzate, mantenendo coerenza con le specifiche del protocollo e con le modalità di autenticazione previste dai dispositivi Android.
Supporto trasversale: Bluetooth, Wi-Fi e canali avanzati
Uno degli elementi distintivi dell’implementazione è il supporto nativo a molteplici canali di trasmissione. La libreria Linux permette il trasferimento dati su diversi medium, replicando il comportamento delle implementazioni ufficiali.
Il supporto a Bluetooth Classic permette sia l’individuazione dei dispositivi (discovery) sia il trasferimento completo dei dati, mentre le modalità BLE Extended Advertising, che amplia la quantità di informazioni trasmesse durante l’annuncio, e BLE L2CAP, il protocollo di comunicazione a livello di collegamento logico, consentono una negoziazione più veloce e sessioni di scambio dati più efficienti.
La gestione del livello GATT (Generic Attribute Profile), che definisce come i dispositivi BLE organizzano e scambiano i dati, è ancora in fase di sviluppo ma resta un elemento essenziale per garantire la compatibilità con i dispositivi a basso consumo energetico.
Sul fronte WiFi, la libreria supporta comunicazioni su WiFi LAN, hotspot dedicati e WiFi Direct, replicando la strategia di fallback del protocollo Google che seleziona dinamicamente il canale più efficiente in base alla latenza e alla qualità del segnale.
Tra i canali già previsti dal progetto ma non ancora del tutto attivati figurano WebRTC (tecnologia per comunicazioni in tempo reale tra browser e app), NFC (comunicazione a corto raggio per scambi di dati a pochi centimetri), USB e AWDL (protocollo wireless usato da dispositivi Apple per connessioni dirette), a indicare una progettazione pensata per coprire tutte le modalità di trasporto dei dati supportate dall’ambiente Google.
Integrazione con lo stack Linux: D-Bus, BlueZ e NetworkManager
La compatibilità con le principali distribuzioni Linux è ottenuta sfruttando componenti standard del sistema.
La comunicazione con il sottosistema Bluetooth avviene tramite BlueZ 5.x, mentre la gestione delle interfacce di rete è delegata a NetworkManager. Il coordinamento tra i diversi servizi è gestito attraverso D-Bus, che funge da bus IPC per orchestrare advertising, discovery e sessioni di trasferimento.
Questa scelta architetturale riduce la dipendenza da driver proprietari e garantisce una maggiore portabilità tra distribuzioni. Tuttavia, l’implementazione è ancora in fase beta e la compatibilità è stata validata solo su un numero limitato di configurazioni hardware, in particolare su schede Bluetooth compatibili con le estensioni L2CAP e controller WiFi con supporto a modalità peer-to-peer.
Modello di sicurezza e protezione dei dati
Il protocollo Nearby prevede un modello di sicurezza basato su identificatori temporanei e scambio di chiavi per proteggere la privacy degli utenti.
Durante la fase di discovery, i dispositivi utilizzano token effimeri che impediscono il tracciamento persistente. Una volta stabilita la connessione, i dati sono trasferiti tramite canali cifrati, tipicamente basati su TLS o su meccanismi equivalenti a livello di trasporto.
L’implementazione per Linux eredita queste caratteristiche, garantendo autenticazione reciproca tra dispositivi e possibilità di limitare la visibilità ai contatti fidati.
Restano comunque alcune criticità tipiche delle fasi iniziali di sviluppo, tra cui la gestione delle policy di firewall, la configurazione dei permessi D-Bus e la corretta esposizione delle interfacce wireless.
Applicazione companion Android e integrazione con il sistema di condivisione
Per consentire il trasferimento bidirezionale tra Linux e i dispositivi Android è necessario utilizzare un’app companion (ShareBy) che si integra con il sistema di condivisione nativo del sistema operativo mobile.
L’applicazione, sviluppata come dimostrazione tecnica (proof of concept), si integra nel menu di condivisione di Android (share sheet) e comunica con una libreria basata su Linux attraverso i protocolli Nearby, cioè i meccanismi di comunicazione a corto raggio usati per lo scambio diretto tra dispositivi, rendendo il processo di invio dei file praticamente identico a quello del servizio ufficiale Quick Share.
L’architettura così approntata consente una futura sostituzione dell’app dimostrativa con implementazioni più mature o integrate direttamente nelle distribuzioni Linux, mantenendo la compatibilità con il protocollo ufficiale.
Limiti attuali e prospettive di sviluppo
Lo stato attuale del progetto è dichiarato come beta iniziale. Non tutte le funzionalità dei protocolli Google sono ancora complete e il supporto hardware può variare sensibilmente tra sistemi. La mancanza di test estensivi su più piattaforme rende necessario un approccio prudente in ambienti produttivi.
Le prospettive di evoluzione sono comunque significative: il completamento del supporto GATT, l’integrazione con WebRTC e la stabilizzazione dei canali WiFi peer-to-peer possono trasformare la libreria per Linux in una base solida per la condivisione nativa, riducendo la dipendenza da soluzioni proprietarie e ampliando l’interoperabilità tra dispositivi.