Se un dispositivo Android autorizzato esegue già un proxy HTTP raggiungibile tramite adb sulla porta 8080, inoltra una porta del portatile su di esso:

adb -s DEVICE_SERIAL forward tcp:6400 tcp:8080

Usa il numero di serie effettivo del dispositivo, poi imposta il proxy HTTP del browser del portatile su 127.0.0.1:6400. La prima porta è l'endpoint del portatile; la seconda è il servizio del telefono. adb fornisce il percorso TCP, non il protocollo del proxy.

laptop browser
  -> laptop 127.0.0.1:6400
  -> adb USB forwarding
  -> phone TCP port 8080
  -> phone's outbound network

Il proxy del telefono deve supportare le operazioni richieste, incluso CONNECT per l'HTTPS del browser. Usa il debug USB solo con il dispositivo autorizzato e un computer fidato. Questo percorso non richiede che l'operatore accetti connessioni Internet non richieste verso il telefono.

Verifica l'uscita separatamente dalla raggiungibilità USB. Il proxy usa la rete in uscita scelta dal telefono, a meno che la sua applicazione ne vincoli un'altra. Un Wi-Fi attivo, una VPN o un routing esplicito dell'app possono rendere l'uscita diversa dai dati mobili.

Se il telefono esegue invece un server SSH, inoltra quella porta e crea SOCKS sul portatile:

adb -s DEVICE_SERIAL forward tcp:2222 tcp:2222
ssh -N -D 127.0.0.1:8899 -p 2222 [email protected]

Qui il browser usa SOCKS su 127.0.0.1:8899 e SSH apre le connessioni di destinazione sul telefono. È un'alternativa all'inoltro diretto del proxy HTTP; nessuna delle due disposizioni richiede un listener pubblico.

Al termine, rimuovi la voce adb specifica, ad esempio adb -s DEVICE_SERIAL forward --remove tcp:6400. Chiudere il browser non rimuove lo stato di inoltro.

Articoli correlati