Una delle funzionalità più comode ed utili quando si possiede più di un dispositivo è sicuramente la possibilità di poter condividere la connessione ad Internet dal proprio smartphone. È possibile fare questo sia tramite la funzione tethering (via Bluetooth o via USB) sia tramite la funzione hotspot. Nel primo caso abbiamo una condivisione con un singolo dispositivo tramite Bluetooth o USB; nel secondo caso il telefono si trasforma in un hotspot (o punto di accesso) che può far connettere fino a 5 terminali tramite WiFi. Ma come funzionano su Android tethering e hotspot?

In buona sostanza, il dispositivo Android si trasforma in un router NAT che raccoglie le richieste dei client e le inoltra ai vari server utilizzando il proprio indirizzo IP. In questo senso, dunque, il servizio è opaco per l’operatore telefonico perché non ci sono i mezzi tecnici per capire se ad usufruire della connessione sia direttamente lo smartphone (o il tablet) oppure se sia un dispositivo connesso in tethering o con hotspot. Fino ad Android 4.1 il sistema non comunicava alcunché all’operatore ed era possibile utilizzare il tethering sempre e comunque, anche quando il contratto non prevedeva esplicitamente questa possibilità.

A partire da Android 4.1.2, invece, il sistema utilizza un meccanismo che permette all’operatore di sapere che avete attivato l’opzione hotspot/tethering e che, quindi, state usufruendo della connessione anche su altri dispositivi. La maggior parte degli operatori non prevede malus per questo (esempi: TIM, H3G/Tre, Wind), ma alcuni fanno invece pagare per usufruire dell’opzione (Vodafone). Andiamo a vedere come si comporta quindi il dispositivo per informare l’operatore dell’utilizzo della condivisione della connessione.

Come ben spiegato da Daniel Pocock, Android ha due dispositivi di rete, rmnet_usb0 e rmnet_usb1:

shell@android:/ # ip route
0.0.0.0/1 dev tun0  scope link
default via 100.66.150.89 dev rmnet_usb0
83.224.66.138 via 100.87.31.214 dev rmnet_usb1
83.224.70.94 via 100.87.31.214 dev rmnet_usb1
100.66.150.88/30 dev rmnet_usb0  proto kernel  scope link  src 100.66.150.90
100.66.150.89 dev rmnet_usb0  scope link
100.87.31.212/30 dev rmnet_usb1  proto kernel  scope link  src 100.87.31.213
100.87.31.214 dev rmnet_usb1  scope link
128.0.0.0/1 dev tun0  scope link
192.168.42.0/24 dev rndis0  proto kernel  scope link  src 192.168.42.129

Controllando la tabella degli indirizzi del telefono, si scopre che esiste una tabella apposita per il tehering:

shell@android:/ # ip rule show
0:      from all lookup local
32765:  from 192.168.42.0/24 lookup 60
32766:  from all lookup main
32767:  from all lookup default

Guardando questa tabella, ci si accorge che tutto il traffico di tethering e hotspot viene reindirizzato verso il dispositivo di rete rmnet_usb1.

shell@android:/ # ip route show table 60
default via 100.87.51.57 dev rmnet_usb1
100.87.51.57 dev rmnet_usb1
192.168.42.0/24 dev rndis0  scope link

È proprio questo l’inghippo che permette agli operatori di sapere che sì, state condividendo la connessione con altri dispositivi.

Per Google questa è una funzionalità, perché rende Android più controllabile dagli operatori e meno indigesto. Di fatto, per gli utenti è un bug. Il vecchio adagio it’s not a bug, it’s a feature ben si applica a questo caso.

Essendo, però, una funzionalità che non tutti vogliono sul proprio smartphone, qualcuno ha trovato il modo per disattivarla.

Disclaimer: i contenuti qui esposti sono a solo scopo informativo e divulgativo. TuttoAndroid declina ogni e qualunque responsabilità per un eventuale utilizzo da parte dell’utenza di questo materiale per aggirare clausole del proprio contratto telefonico che impediscono la condivisione della connessione dal proprio terminale mobile.

Oltre a vari metodi che richiedono l’accesso con root, esiste un modo piuttosto pratico e veloce per modificare il comportamento di Android con il tethering. Richiede che abbiate abilitato il debug USB, configurato ADB sul vostro computer e un cavo USB. Trovate tutte le informazioni sul metodo seguendo il link qui sotto.

Link | Tethering e hotspot WiFi su Android