Configurare il proxy con l'emulatore Android

Nell'emulatore Android, puoi utilizzare un proxy per eseguire il debug del traffico dell'applicazione o per accedere a internet da dietro un firewall aziendale. L'emulatore offre due meccanismi proxy distinti per supportare questi diversi casi d'uso: il proxy di sistema Android e il proxy dell'emulatore.

Scegliere il proxy giusto

Prima di configurare un proxy, è importante comprendere i due casi d'uso. Il proxy di sistema Android serve per ispezionare il traffico delle applicazioni, mentre il proxy dell'emulatore serve per aggirare le limitazioni di rete. Questi due proxy si escludono a vicenda; puoi attivarne solo uno alla volta.

Funzionalità Proxy di sistema Android Proxy dell'emulatore
Caso d'uso principale Debug delle app Bypass del firewall
Livello operativo Livello di rete Livello di applicazione
Configurazione UI delle impostazioni Wi-Fi di sistema Android UI dei controlli estesi dell'emulatore o flag
-http-proxy.
Debug HTTPS : consente a strumenti come Charles Proxy di
intercettare il traffico quando viene installato un certificato.
No: crea un tunnel TCP, impedendo
l'ispezione SSL.
Gestisce il traffico non HTTP/HTTPS
No: gestisce principalmente solo il traffico HTTP e
HTTPS.
: inoltra tutto il traffico TCP.

Caso d'uso 1: debug dell'applicazione con il proxy di sistema Android

Per eseguire il debug del traffico di rete della tua applicazione, ad esempio per ispezionare le richieste HTTPS con uno strumento come Charles Proxy, devi utilizzare il proxy di sistema Android.

Questo proxy opera a livello di applicazione all'interno del sistema operativo Android. Consente agli strumenti di debug di intercettare e ispezionare il traffico, ma ciò richiede l'installazione dei certificati di sicurezza necessari sul dispositivo emulato.

Configurare il proxy di sistema Android

Configurazione

Puoi configurare il proxy di sistema Android in due modi:

  1. Configurazione manuale: nell'emulatore, vai a Impostazioni > Rete e internet > Wi-Fi, seleziona la tua rete e inserisci manualmente le impostazioni proxy.
  2. Configurazione automatica: puoi configurare a livello di programmazione il proxy di sistema Android. A questo scopo, crea un test di strumentazione che utilizza un framework di automazione dell'interfaccia utente, come UI Automator, per aprire l'app Impostazioni di Android e applicare la configurazione del proxy senza intervento manuale.

Caso d'uso 2: bypassare i firewall aziendali con il proxy dell'emulatore

In molte reti aziendali, le connessioni dirette a internet vengono rifiutate dagli amministratori di rete e devono invece passare attraverso un proxy specifico. Per accedere a risorse esterne da una rete con limitazioni, devi utilizzare il proxy dell'emulatore.

Questo meccanismo opera a un livello di rete inferiore e instrada tutto il traffico TCP del dispositivo emulato tramite il proxy specificato, rendendolo ideale per l'attraversamento del firewall. Riscrittura trasparente delle richieste HTTP dal dispositivo virtuale prima di inviarle al proxy, consentendo loro di funzionare correttamente.

Configurazione

Quando utilizzi l'emulatore in Android Studio, puoi configurare un proxy con le impostazioni nel menu di Android Studio ( Settings > Appearance & Behavior > System Settings > HTTP Proxy). Puoi trovare maggiori dettagli in Configurare il proxy di Android Studio nella documentazione di Android Studio.

Quando utilizzi l'emulatore come standalone (al di fuori di Android Studio), puoi configurare il proxy dell'emulatore utilizzando uno dei seguenti metodi:

  1. Flag della riga di comando: avvia l'emulatore dalla riga di comando con il flag -http-proxy <proxy>. Le informazioni <proxy> possono essere specificate nel formato http://<machineName>:<port> o http://<username>:<password>@<machineName>:<port>.

    emulator -http-proxy http://<machineName>:<port>
    

    o

    emulator @MyAvd -http-proxy http://<username>:<password>@<machineName>:<port>
    
  2. Variabile di ambiente: definisci la variabile di ambiente http_proxy con le impostazioni proxy. L'emulatore verifica la presenza di questa variabile all'avvio e utilizza automaticamente il relativo valore se è definito.

  3. Controlli estesi: apri i Controlli estesi dell'emulatore, vai a Impostazioni > Proxy e inserisci manualmente la configurazione del proxy HTTP. L'emulatore salva queste impostazioni per il dispositivo e le ripristina al riavvio.

    Configurare il proxy dell&#39;emulatore

Il proxy dell'emulatore opera a livello di rete. Il traffico HTTPS viene incapsulato su TCP, ma questo traffico viene inoltrato senza decriptazione, il che impedisce l'ispezione HTTPS. Il proxy dell'emulatore non supporta il reindirizzamento UDP.

Interazione con Android Studio

Android Studio ha una propria finestra di dialogo di configurazione del proxy per scaricare aggiornamenti e librerie. Quando avvii un emulatore da Android Studio, legge le impostazioni proxy dell'IDE una sola volta per compilare la configurazione del proxy dell'emulatore. Tuttavia, queste impostazioni non influiscono sul proxy di sistema Android.