Fidel Montesino

Follow

Jul 10, 2020 – 5 min read

Se sei un ingegnere di telefonia mobile, sia durante lo sviluppo che il test probabilmente usi alcuni degli strumenti più comuni là fuori per debuggare, intercettare o riscrivere le chiamate di rete, come Charles Proxy o Fiddler.

Probabilmente troverete anche il processo di impostazione del proxy nei vostri dispositivi abbastanza fastidioso: andate in Impostazioni > Impostazioni di rete > Selezionate la vostra rete WiFi > Modifica rete > Aggiungi proxy. Ogni. Singolo. Volta. Phew!

Se stai lavorando con una serie di dispositivi diversi, probabilmente hai anche notato piccole differenze tra le versioni di Android, i produttori, ecc, che potrebbero aggiungere o modificare i passi da fare per impostare il proxy.

C’è un piccolo comando adb che puoi eseguire dal tuo terminale per abilitare un proxy globale sul tuo dispositivo collegato:

adb shell settings put global http_proxy YOUR_IP:YOUR_PORT

Ma questo non ti darà alcun indicatore visivo per sapere se il dispositivo sta utilizzando un proxy o no. Richiede anche che il dispositivo sia collegato a un computer con adb installato ogni volta che si vuole abilitare o disabilitare il proxy… il che probabilmente rende l’uso di questo workaround non la soluzione più ideale.

Bene, ho buone notizie per voi.

Proxy Toggle è una piccola applicazione di utilità compatibile con Android 5.0 e superiori che vi permetterà di abilitare e disabilitare rapidamente le impostazioni proxy, oltre a unificare e semplificare il processo attraverso le versioni della piattaforma, i dispositivi, i produttori, ecc.

Proxy Toggle ti permette di configurare il tuo proxy globale con un solo tocco

Configurazione facile: basta aggiungere l’IP e la porta desiderati, abilitare il proxy e voilà! Tutto fatto, il tuo intero dispositivo sarà proxy.

Per rendere tutto ancora più facile

So che queste sono tutte notizie eccitanti. Ma sento anche che dover aprire l’app ogni volta che vuoi abilitare il proxy potrebbe essere un processo lungo… giusto?

Ecco perché ho aggiunto anche due scorciatoie opzionali da usare: un widget per la schermata iniziale e un tile per le impostazioni rapide.

Home Screen Widget

Questa scorciatoia è molto utile per abilitare e disabilitare l’ultimo proxy usato rapidamente dalla schermata iniziale.

Per aggiungere il widget, normalmente si preme a lungo sulla schermata iniziale (a seconda del launcher), si seleziona Aggiungi widget e si scorre in basso nell’elenco delle applicazioni fino a quando non si vede il widget Proxy Toggle.

Il widget della schermata iniziale configurerà automaticamente l’ultimo proxy utilizzato

Ecco! Attiva e disattiva il tuo proxy con un solo tocco!

Quick Settings Tile

Se il tuo dispositivo ha Android 7.0 o superiore, avrai accesso a un’altra incredibile scorciatoia: un Quick Settings Tile. Questa scorciatoia vivrà all’interno del cassetto delle notifiche, accanto ad alcune altre pratiche scorciatoie come WiFi, Posizione, Bluetooth, Modalità aereo, ecc.

Per attivarla, basta espandere il cassetto di navigazione, fare clic sull’icona Modifica e trascinare l’icona Proxy Toggle dove si desidera posizionarla.

Una volta abilitato, il riquadro delle impostazioni rapide è un’ottima scorciatoia per attivare il proxy

Fatto! Puoi attivare e disattivare il tuo proxy senza nemmeno lasciare l’app corrente!

Nota: se hai delle chiamate di rete in corso, potrebbero volerci alcuni secondi per completare e aggiornare la nuova impostazione.

Tutto ciò che luccica non è oro

Anche se l’app realizza perfettamente il suo obiettivo e ci rende la vita più facile, ci sono un paio di avvertenze che voglio evidenziare su questa app brillante.

Utilizzando le autorizzazioni limitate del sistema

L’app farà uso di Settings.Global. Poiché si tratta di un’impostazione di sistema, normalmente è un’impostazione di sola lettura. Questo piccolo inconveniente viene aggirato concedendo all’app WRITE_SECURE_SETTINGS permesso limitato.

Nota: questo è un permesso protetto che dovrebbe essere concesso solo alle app di sistema. Fate molta attenzione quando concedete questo permesso alle app da fonti sconosciute.

So che questo potrebbe sollevare delle preoccupazioni, e le capisco.
Ecco perché ho deciso di rendere il progetto open-source: per dimostrare che è completamente sicuro concedere questo permesso, in quanto si avrà il controllo completo e la conoscenza di ciò che accade dietro le quinte.

Garantire permessi limitati al sistema

Siccome questo è un permesso limitato, non possiamo richiederlo a runtime come faremmo normalmente, quindi dovremo concederlo manualmente dal nostro computer.

Se vuoi solo installare l’app senza costruirla da Android Studio, c’è un piccolo script che verrà fornito insieme all’app. Basta scaricare il file zip ed eseguire lo script installAndGrantPermission.sh.
In alternativa, puoi installare manualmente l’app eseguendo adb install -g App.apk sul tuo terminale.

Per concedere questo permesso una volta che l’app è già installata, collega il dispositivo al tuo computer ed esegui il seguente comando sul tuo terminale:

adb shell pm grant com.kinandcarta.create.proxytoggle android.permission.WRITE_SECURE_SETTINGS

Fa attenzione quando disinstalli l’app

Sfortunatamente, come sviluppatori, non possiamo eseguire alcun codice quando l’app viene disinstallata. Pertanto, disinstallando l’app con il proxy abilitato, il tuo dispositivo rimarrà permanentemente con questa configurazione (poiché si tratta di una configurazione Settings.Global!).

Dovresti assicurarti che il proxy sia disabilitato prima di disinstallare l’app. Dato che non possiamo garantire che questo accada, c’è anche lo script uninstallAndCleanUp.sh per assicurarsi che tutto sia in uno stato pulito dopo la disinstallazione dell’app.

In alternativa, potresti eseguire i seguenti comandi sul tuo terminale per pulire l’impostazione del proxy:

adb shell settings delete global http_proxy
adb shell settings delete global global_http_proxy_host
adb shell settings delete global global_http_proxy_port

Convenienza a portata di mano

Proxy Toggle rende più facile impostare un proxy globale su qualsiasi telefono Android, oltre a fornire diverse scorciatoie per abilitare e disabilitare il proxy con un solo tocco sullo schermo. Spero che questo strumento sia utile al tuo team come lo è stato al nostro team interno di applicazioni, sia agli sviluppatori che ai tester!

Puoi scaricare l’ultima versione da qui, o clonare il progetto da Github.

Molti ringraziamenti all’unica e incredibile Flor Novello per il suo prezioso aiuto nel design dell’app!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.