TL;DR:

  1. Установить Packet Capture.

  2. При запуске согласиться на установку сертификата SSL, если нужно смотреть HTTPS.

Муки поиска под катом.

Предыстория

На одном из проектов понадобилось посмотреть, какие запросы летают между сервером и мобильным приложением. Как всегда, нужно было быстро и без головной боли. В интернете предлагают несколько вариантов:

  1. Установить adb, потом tcpdump, потом настроить точку доступа на компьютере, потом перенаправить туда траффик с устройства, наконец поймать его в Wireshark и смотреть, смотреть, смотреть! Meh, я поплыл уже на втором пункте, так полжизни пройдёт, пока наконец посмотришь, как твой API (не) работает. Потрачено.

  2. Установить Network Utilites или другой сниффер - и вуаля, смотрим траффик. Вот только рут нужен для этого. А планшет у меня без рута, разумеется, и возиться в этих дебрях нет никакого желания.

Попроще нельзя?

Без рута и прямиком с устройства

Вот так мне нужно! К счастью, способ есть, называется Packet Capture. Ставим, запускаем.

В комментариях на Google Play жалуются, что аппа, мол, пустые пакеты показывает (хоть и захватывает их) - я поначалу тоже столкнулся с этим и сразу снёс приложение. Но потом осознал, что пытаюсь смотреть в HTTPS, и, следовательно, не зря Packet Capture просил меня SSL сертификат установить. Ok, снова ставим, запускаем.

Вопреки моим ожиданиям, для установки сертификата не понадобилось призывать средневековых демонов и чертить круги на полу, всё прошло практически незаметно (Android лишь попросил установить пароль на устройство, чтобы использовать защищённое хранилище).

Отлично, всё готово. Packet Capture захватывает траффик без рута, используя VPN-соединение, поэтому при старте нужно согласиться на активацию VPN и убедить систему, что доверяешь этому приложению.

Наконец-то! Вот они, мои пакеты с багами! Всем спасибо!