Ho uno smartphone Xiaomi (un Redmi Note 3 Pro) con la ROM MIUI “Global”. Da poco ho acquistato una SIM di un nuovo operatore italiano (ho-mobile) che offre la possibilità di utilizzare la funzione di tethering del telefono per collegare dispositivi esterni ad Internet.
Ho riscontrato diversi problemi prima di attivare con successo tale funzione… ho deciso quindi di scrivere questo articolo per spiegare come li ho risolti.
Il mancato funzionamento del tethering è dovuto all’errata configurazione di una proprietà del sistema operativo Android, chiamata
tether_dun_required
Come spiegato nel codice sorgente di Android, questa proprietà indica al S.O. se è necessario l’utilizzo di un APN di tipo DUN (dial-up network) per le funzionalità di tethering. In realtà (come spiegato bene su Taming the Droid)
This refers to an outdated method for using your phone to emulate a dial-up modem and is not the way that modern smartphones do tethering anymore. There should be no need to use this value.
(Questo si riferisce ad un metodo datato di utilizzare il telefono per emulare un modem telefonico e non è più il modo in cui gli smartphone moderni effettuano il tethering. Non ci dovrebbe essere necessità di utilizzare questo valore.)
Per poter impostare al valore 0 (= non richiesto) tale proprietà, dobbiamo inviare un comando dopo esserci collegati in console (shell) al nostro smartphone.
Requisiti
Abbiamo bisogno di:
[checklist]
- abilitare le Opzioni Sviluppatore del telefono (qui una guida)
- installare sul PC la suite Minimal ADB and Fastboot (disponibile qui)
- registrare un MI account (https://account.xiaomi.com)
[/checklist]
Procedura
All’interno del menu Opzioni Sviluppatore del telefono, attiviamo le seguenti 3 voci:
- Debug USB
- Installa tramite USB
- Debug USB (impostazioni di sicurezza)
Ci verrà chiesto, se non lo abbiamo già fatto, di effettuare il login con il nostro account MI.
E’ possibile che, nell’attivare una voce, si ottenga il seguente errore:
L’errore indica che il telefono non è in grado di comunicare con i server Xiaomi, probabilmente a causa del Great Firewall cinese.
Possiamo risolvere il problema grazie ad una app che crea una VPN con un server cinese, quindi dietro tale firewall. Installiamo, da Play Store, l’app Flit VPN ed eseguiamola.
Scegliamo Start without registration, quindi tramite Connection Settings scegliamo uno dei server di Jangsu, quello con le migliori performances:
Clicchiamo sul pulsante Connect e attendiamo il completamento della connessione:
Ora dovrebbe essere possibile attivare le funzioni di debugging senza problemi. Una volta attivate, si può effettuare la disconnessione dalla VPN e rimuovere l’app.
Colleghiamo lo smartphone al PC via USB ed eseguiamo l’applicativo Minimal ADB and Fastboot.
Digitiamo il comando adb shell per il collegamento in console al telefono.
Con il comando settings get global tether_dun_required è possibile ottenere lo stato attuale del parametro. Se viene visualizzato null oppure 1, significa che l’impostazione non è corretta:
Utilizziamo il comando settings put global tether_dun_required 0 per impostare a zero il valore. Possiamo verificare la corretta esecuzione del comando lanciando nuovamente il comando get:
NB: se viene visualizzato un errore di permission denied, significa che non tutte le funzioni di debugging sono state correttamente attivate:
Ora è possibile attivare il tethering del telefono, buona navigazione!