Как настроить эмулятор Android Lollipop с Charles Proxy?

Я следовал инструкциям из других вопросов, таких как Как настроить SSL-сертификаты с помощью Charles Web Proxy и новейшего эмулятора Android в Windows? (хотя я на MAC) и SSL Proxy/Charles и проблемы с Android, и я могу использовать Charles Proxy для анализа пакетов эмуляторов Android вплоть до Kitkat.

Теперь я пытаюсь сделать то же самое для эмуляторов Lollipop. Однако, когда я повторил те же шаги, что и для успешной настройки эмуляторов Kitkat, Чарльз ничего не показал! Когда я пытаюсь подключиться к Интернету с помощью браузера эмулятора, возникает следующая ошибка: введите здесь описание изображения

Требуются ли какие-либо специальные действия для эмулятора Android Lollipop в Mac OS X, чтобы включить перехват пакетов?

Заранее спасибо!


person Some Noob Student    schedule 03.11.2014    source источник


Ответы (5)


У меня было то же самое, и я, наконец, нашел выход: следуйте инструкциям в упомянутой вами ссылке: Как настроить SSL-сертификаты с помощью Charles Web Proxy и новейшего эмулятора Android в Windows?

Затем из Чарльза я зашел в меню «Прокси» и включил «Прокси-сервер Mac OS X». Потом вдруг что-то просочилось. Даже после того, как я отключил «прокси-сервер Mac OS X»…

ps: установка прокси через мобильные настройки на эмуляторе не сработала; Настройка прокси должна выполняться через командную строку (команда эмулятора находится в sdk/tools и должна выполняться примерно так: ./emulator -avd Nexus_4_API_21 -http-proxy http://<your-ip-as-in-charles-help-menu>:8888). Я также пробовал некоторые прокси-приложения, такие как проксиматор, но безуспешно. Также у меня были проблемы, и перезапуск Чарльза исправил это.

person Hans    schedule 18.12.2014

Если вы не хотите возиться с командной строкой, вы можете сделать это из эмулятора, это требует немного больше настроек, но работает хорошо:

  1. Откройте «Настройки» > «Дополнительно» > «Сотовые сети» > «Имена точек доступа».

введите описание изображения здесь

  1. Выберите основной APN и введите прокси как 10.0.2.2:8888 (указывает на локальный хост вашего компьютера). Вы можете использовать другой IP-адрес в сети, если вы делаете это с реальным устройством или на локальной ферме устройств.

введите описание изображения здесь

  1. Перейдите на charlesproxy.com/getssl в Chrome.

введите описание изображения здесь

  1. Сертификат SSL будет загружен

введите описание изображения здесь

  1. При открытии вам будет предложено установить пин-код или подтвердить его, если он уже установлен.

  2. Назовите сертификат

введите описание изображения здесь

  1. Наслаждайтесь проксированием (вы должны включить проксирование SSL для своего домена на Charles, чтобы видеть запросы)

Примечание. Я протестировал это с помощью эмулятора API 24 и, похоже, работает, однако он должен работать и с другими версиями.

Примечание 2. Начиная с Android Studio 3.0, Чарльз больше не будет нужен при использовании API > 21 по большей части, так как это приближается: https://developer.android.com/studio/profile/network-profiler.html

person pablisco    schedule 31.05.2017
comment
Не работает с Charles 4.2.1 (последняя версия) и Android Emulator v27 с Nougat 7 внутри. Хотя я использовал аналогичный IP для подключения прокси к Genymotion (10.0.3.2). Возможно, в старых эмуляторах это работало. - person Alex Sorokoletov; 05.12.2017
comment
Сначала это не сработало, но после перезапуска соединения (режим полета выкл -> вкл) сертификат наконец-то скачался - person Dmitriy Pavlukhin; 30.07.2020

Теперь в эмуляторе Android есть настройка введите здесь описание изображения

person Chris Gunawardena    schedule 08.09.2017
comment
Сетевые вызовы из эмулятора отображаются на charles как необработанные IP-адреса. Есть ли способ заставить их отображаться как их доменные имена? - person Gak2; 07.10.2017
comment
@ Gak2 Перезапуск Чарльза и / или сима иногда решает эту проблему для меня. - person Chris Gunawardena; 07.10.2017
comment
@Gak2 Обратитесь в блог :) medium.com/@daptronic/ - person Curious96; 28.01.2020

это может быть немного утомительно на Mac при отладке на эмуляторе Android.

Следуйте шагам:

1) Откройте терминал и перейдите в папку tools по пути SDK.
2) Перетащите файл с именем emulator на терминал (при этом вы получите путь к исполняемому файлу).
Теперь ваш эмулятор должен прочитать такой путь

/Users/your_pc_name/android_sdk/tools/emulator -avd Nexus_6P_API_23 -http-proxy http://x.x.x.x:8888

здесь xxxx — это IP-адрес, который вы можете найти в меню «Charles Help».
3) и выполните это.

Вуаля! Теперь ваш эмулятор запустится в режиме прокси-сети.

person sud007    schedule 13.10.2016
comment
Для меня это оказалось `/Users/chris/Library/Android/sdk/tools/emulator -avd Nexus_5_API_22 -http-proxy 192.168.0.4:8888` - person Chris Gunawardena; 06.04.2017
comment
Это работает для меня, когда я перехожу на charlesproxy.com/getssl - person TTransmit; 05.06.2017

/Users/`whoami`/Library/Android/sdk/tools/emulator -avd `android list avd | grep Name -m 1 | cut -c 10-99` -http-proxy `ipconfig getifaddr en0`:8888

Это должно работать на большинстве компьютеров Mac.

person Chris Gunawardena    schedule 06.04.2017