BlueStacks + Proxy для просмотра HTTP/HTTPS трафика (Android 7 - 14): Итоги
Подведём небольшие итоги по мотивам моих публикаций: BlueStacks + Proxy для просмотра HTTP/HTTPS трафика для Android 7 - 14
Содержание предыдущих серий:
Стояла задача: у разрабатываемого приложения был "плавающий" глюк в виде потери идентификатора сессии при передаче запросов на сервер.
Входе исследований было получено много своеобразной информации, как, малыми усилиями и простыми способами, перехватывать и просматривать трафик, идущий из виртуальной Android оболочки.
Итак, все способы имеют один общий пункт: обязательное получение root. К счастью, BlueStacks 5 имеет для этого простой и приятный способ - достаточно подправить несколько текстовых файлов
В качестве прокси я выбрал платный Charles Proxy , но уже в процессе поиска решений с корневыми сертификатами, случайно наткнулся на бесплатное приложение mitmproxyи условно бесплатное HTTP Toolkit .
Но так как уже две статьи были написаны с использованием Charles Proxy , то мне уже лень было их переписывать. Но идущим по моим стопам могу посоветовать для Android 7-11 хорошо документированный mitmproxy в качестве хорошей бесплатной альтернативы, и HTTP Toolkit для Android 12+
Как это не печально, но приложения имеют свойство умирать - по ряду всевозможных причин авторы перестают их поддерживать.
Начиная поиск для Android 7 (BlueStacks + Charles Proxy (Android 7 Nougat)) я нашел хороший вариант: BlueStacks Tweaker. пара кликов мышью и у вас есть root-доступ. Но, к сожалению, BlueStacks Tweaker заброшен и работает только для BlueStacks 5.14 (автор пишет, что до 5.10, но я проверил - 5.14 ещё поддаётся этой утилите) и Android 7
А что же Android 8, 9, 10, 11.. ?
Собрав на форумах информацию, и отбросив трудоёмкие варианты с использованием adb появилось решение Kitsune Magisk + Riru + EdXposed ( BlueStacks + Charles Proxy (Android 9 Pie, 11 RVC) ). Но, как я написал выше: приложения имеют свойство умирать, и когда добрался до Android 13, то столкнулся с рядом проблем:
На данном этапе, если нужен именно Android 13+, победил HTTP Toolkit - он единственный, кто уверенно работает с Android 13+. Программа имеет бесплатный базовый функционал, и если бы в этом функционале была возможность копировать запрос в виде cURL, то можно было бы смело рекомендовать и использовать в виде постоянного рабочего инструмента. Но не думаю, что стоит платить $10 в месяц за Pro-версию ради cURL и нечастого использования.
Если же под ваши задачи подойдет Android 11, то рекомендую обратить своё внимание на Charles Proxy и mitmproxy
Содержание предыдущих серий:
- BlueStacks + Charles Proxy (Android 7 Nougat)
- BlueStacks + Charles Proxy (Android 9 Pie, 11 RVC)
- BlueStacks + HTTP Toolkit Proxy (Android 13 Tiramisu, 14 UDC)
Стояла задача: у разрабатываемого приложения был "плавающий" глюк в виде потери идентификатора сессии при передаче запросов на сервер.
Входе исследований было получено много своеобразной информации, как, малыми усилиями и простыми способами, перехватывать и просматривать трафик, идущий из виртуальной Android оболочки.
Итак, все способы имеют один общий пункт: обязательное получение root. К счастью, BlueStacks 5 имеет для этого простой и приятный способ - достаточно подправить несколько текстовых файлов
В качестве прокси я выбрал платный Charles Proxy , но уже в процессе поиска решений с корневыми сертификатами, случайно наткнулся на бесплатное приложение mitmproxyи условно бесплатное HTTP Toolkit .
Но так как уже две статьи были написаны с использованием Charles Proxy , то мне уже лень было их переписывать. Но идущим по моим стопам могу посоветовать для Android 7-11 хорошо документированный mitmproxy в качестве хорошей бесплатной альтернативы, и HTTP Toolkit для Android 12+
Как это не печально, но приложения имеют свойство умирать - по ряду всевозможных причин авторы перестают их поддерживать.
Начиная поиск для Android 7 (BlueStacks + Charles Proxy (Android 7 Nougat)) я нашел хороший вариант: BlueStacks Tweaker. пара кликов мышью и у вас есть root-доступ. Но, к сожалению, BlueStacks Tweaker заброшен и работает только для BlueStacks 5.14 (автор пишет, что до 5.10, но я проверил - 5.14 ещё поддаётся этой утилите) и Android 7
А что же Android 8, 9, 10, 11.. ?
Собрав на форумах информацию, и отбросив трудоёмкие варианты с использованием adb появилось решение Kitsune Magisk + Riru + EdXposed ( BlueStacks + Charles Proxy (Android 9 Pie, 11 RVC) ). Но, как я написал выше: приложения имеют свойство умирать, и когда добрался до Android 13, то столкнулся с рядом проблем:
- умер EdXposed - последняя свежая версия 0.5.2.2 от 2021 года и она не совместима с Android 13
EdXposed удалось заменить LSPosed , но удачно с Kitsune Magisk подружилась и установилась только версия 1.8.6, более свежая отказалась работать с BlueStacks
Для тех кто хочет поэкспериментировать, скачать LSPosed можно отсюда:
https://github.com/LSPosed/LSPosed/releases
или отсюда: LSPosed-v1.8.6-6712-riru-release.zip
и менеджер к нему (обычно находится внутри zip: manager.apk): LSPosed-v1.8.6-manager.apk
- Хотя и удалось заменить EdXposed , и даже заработал в нем модуль TrustMeAlready - но появилась вторая проблема: начиная с Android 12 теперь settings_global.xml - это бинарный файл в формате Android ABX – Binary XML
Эта проблема решилась с помощью использования ProxyDroid . И я честно не пойму, почему ко мне сразу не пришла эта мысль, когда я только начинал исследования с Android 7: использовать ProxyDroid (или его аналоги) намного удобнее, чем исправлять вручную системный settings_global.xml
Скачать ProxyDroid можно здесь: https://4pda.to/forum/index.php?showtopic=241822
или здесь: proxydroid_3.2.0_x86_64.apk
TrustMeAlready и альтернативы:
https://github.com/ViRb3/TrustMeAlready
https://modules.lsposed.org/module/io.github.tehcneko.sslunpinning/
https://github.com/Xposed-Modules-Repo/io.github.tehcneko.sslunpinning
https://github.com/mobile46/TrustMeAlready
https://modules.lsposed.org/module/com.simo.ssl.killer/
https://github.com/Xposed-Modules-Repo/com.simo.ssl.killer
Конвертация Android XML Binary: abx2xml and xml2abx:
[GUIDE] How to change files in Android XML Binary format
GitHub: android-xml-converter
- Так и не удалось, используя малые усилия, заставить Android 13 принять сторонний корневой SSL сертификат.
Но благодаря поискам был обнаружен mitmproxy: Android SSL certificate stopped working after Android 13 upgrade и Install System CA Certificate on Android Emulator
И был найден HTTP Toolkit: New ways to inject system CA certificates in Android 14
На данном этапе, если нужен именно Android 13+, победил HTTP Toolkit - он единственный, кто уверенно работает с Android 13+. Программа имеет бесплатный базовый функционал, и если бы в этом функционале была возможность копировать запрос в виде cURL, то можно было бы смело рекомендовать и использовать в виде постоянного рабочего инструмента. Но не думаю, что стоит платить $10 в месяц за Pro-версию ради cURL и нечастого использования.
Если же под ваши задачи подойдет Android 11, то рекомендую обратить своё внимание на Charles Proxy и mitmproxy