web-dev-qa-db-fra.com

Paramètre proxy de l'émulateur Android

J'essaie de configurer un proxy réseau pour afficher le trafic de l'émulateur.

Maintenant, si je modifie les paramètres réseau de l'émulateur (10.0.2.2: <port>, tout fonctionne correctement . Mais si je tente de définir le proxy via la ligne de commande à l'aide de emulator -avd myAvd -http-proxy localhost : <port> , le trafic SSL ne passe pas et j'obtiens des erreurs de délai d'attente.

Quelqu'un a-t-il réussi à faire fonctionner cela?

Merci

25
Rndm

Vous ne savez pas quel émulateur vous utilisez, mais il y a un problème avec new émulateur Android annoncé avec Android Studio 2 - Bug Tracker

Pour obtenir une solution de contournement, j'ai dû procéder comme suit à l'aide de l'émulateur new défini sur l'API 23:

  1. Passez -http-proxy http://192.168.x.x:yyyy en tant qu'indicateur lorsque vous lancez l'émulateur. Pour plus d'informations sur cette opération, voir ici.
  2. Configurez les paramètres Access Point pour le proxy dans l'émulateur. Pour ce faire, accédez à paramètres -> plus -> réseau cellulaire -> noms de points d'accès et modifiez le point d'accès existant.
  3. Enfin, il existe un paramètre dans Developer Settings pour configurer le périphérique afin qu'il utilise le client DHCP hérité à la place du nouveau. Celui-ci doit être configuré pour utiliser l'ancien.
  4. Activer et désactiver le mode Airplane.

 Access point settings for proxy  Developer settings for DHCP client

75
Craig Russell

Découvrez le commentaire n ° 6 sur https://code.google.com/p/Android/issues/detail?id=201402#c6 . Si vous utilisez le paramètre IP LAN de votre ordinateur, le proxy fonctionne à l'aide du commutateur de ligne de commande -http-proxy. Aucune autre solution de contournement n'est nécessaire.

Par exemple:

$ emulator -avd Nexus_5X_API_23 -http-proxy http://10.102.80.149:8888
8
Fabian Frank

Il est possible que votre serveur proxy renvoie des en-têtes HTTP supplémentaires dans sa réponse à la demande HTTP CONNECT de l'émulateur Android. Si tel est le cas, vous pouvez rencontrer un problème connu qui aurait dû être résolu à présent, mais en raison de la désynchronisation entre les branches de développement, le correctif n'a jamais été publié. S'il vous plaît voir mon commentaire pour les détails.

Pour clarifier, les requêtes HTTP ne sont pas affectées par le problème car elles ne reposent pas sur le tunneling de connexion (HTTP CONNECT), car elles sont transmises via le transfert de message HTTP défini dans RFC7230 .

0
Alex Zolotko

J'ai récemment dû configurer un environnement de détection pour déboguer du trafic SSL Android. 

Il semble maintenant qu'il n'est plus nécessaire de définir le proxy sur le point d'accès de l'émulateur (étapes 2 à 4 de la réponse de @ craig-russell). L'ajout du paramètre de lancement -http-proxy suffit. Également essayé sur des niveaux d'API <23 et réussi.

Mes spécifications: Android Studio 2.3.1Windows 10 Version de l'émulateur Android 25.2.5.0

Tous les détails: http://www.devsbedevin.com/debugging-Android-ssl-traffic/

0
Vaiden