Прокси-управление трафиком приложений Android с помощью эмулятора

#android #mobile #proxy

#Android #Мобильный #прокси

Вопрос:

Я знаю, как настроить эмулятор Android для прокси веб-трафика браузера через прокси, такой как Charles или Fiddler2, но трафик приложений не проходит через прокси.

Я пытаюсь отладить приложение, и мне нужно посмотреть, что такое запрос ответ, но не могу понять, как это настроить. Я попробовал -http-proxy аргумент командной строки, но, похоже, это ничего не дает для меня.

Ответ №1:

Я считаю, что проще всего сделать либо:

  1. Захватывайте трафик с помощью такого инструмента, как wireshark, и фильтруйте на основе адреса сервера.

  2. Используйте прокси-сервер socks, который регистрирует трафик, и оболочку socksify вокруг эмулятора Android

  3. Обновите приложение, чтобы оно использовало настройки прокси (подробности зависят от используемого вами метода подключения, например HttpURLConnection, WebView, raw sockets, …). Вам все равно следует сделать это в какой-то момент, чтобы улучшить совместимость с различными сетевыми настройками, но не обязательно прямо сейчас.

Комментарии:

1. Wireshark работает, но захватывает СЛИШКОМ много трафика. К сожалению, похоже, что это единственный вариант, поскольку во многих блогах, которые я прочитал, упоминается невозможность правильного прокси-эмулятора Android. Google нужно действовать сообща.

Ответ №2:

При любом HTTP-запросе необходимо разрешить доменное имя (чтобы получить ip домена) с помощью dns-запроса, эмулятор по умолчанию пытается получить машинный dns-сервер, но это не всегда работает, например, в эмуляторе Ubuntu используется /etc/resolv.conf но он устарел. Итак, при запуске эмулятора можно использовать другой флаг — dns-server