Вопрос по прокси

blamingas

Client
Регистрация
14.05.2021
Сообщения
114
Благодарностей
45
Баллы
28
Пытаюсь разобраться с алгоритмом работы ЗенноДроида.
Дано:
Создаётся виртуальная машина, запускается, на неё вешается прокси, затем устанавливается приложение, в нём производятся манипуляции. После этого ВМ я останавливаю.
Само по себе приложение имеет в списке разрешений пункт "Запуск при загрузке" (Позволяет приложению запускаться при загрузке устройства). Большинство современных приложений имеет это разрешение.

И вот приходит момент запускать ВМ второй раз с уже предустановленным приложением. Запускается ВМ, и если я всё правильно понимаю, приложение тоже запускается на старте, и получается, что обнаруживает мой реальный IP, т.к. к кубику с прокси мы еще не подобрались - только-только вышли из кубика "Запуск ВМ".
Если же пробовать идти в обратном порядке - сначала устанавливаем прокси, а затем запускаем ВМ, то прокси не цепляется. Кубик с прокси проходит по зеленой ветке, но вьюпорт по-прежнему гласит "Без прокси".

Понимаю, что где-то туплю, т.к. ситуация выглядит странно: куча приложений имеет разрешение запуска при загрузке, и выглядит так, что смысл в прокси теряется, если сначала мы выходим все в белом, а только потом укрываемся чёрным плащом.

Как быть в таком случае? Каков алгоритм установки прокси ДО запуска ВМ (глупо звучит конечно), чтобы приложение на старте не обнаруживало мой IP?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 559
Благодарностей
10 101
Баллы
113
@blamingas Проксируется процесс, т.е. ДО запуска эмулятора проксировать нечего.Прокси цепляется к процессу memuheadless.exe сразу после появления. Это происходит намного раньше чем произойдет инициализация Андроид, и тем более запустятся любые приложения.

Алгоритм такой сейчас:
Ставим экшен прокси перед запуском машины. Выполняем его.
Запускаем машину.Как только появятся процессы (memu.exe и memuheadless.exe) включится прокси.
 
  • Спасибо
Реакции: blamingas

blamingas

Client
Регистрация
14.05.2021
Сообщения
114
Благодарностей
45
Баллы
28
@blamingas Проксируется процесс, т.е. ДО запуска эмулятора проксировать нечего.Прокси цепляется к процессу memuheadless.exe сразу после появления. Это происходит намного раньше чем произойдет инициализация Андроид, и тем более запустятся любые приложения.

Алгоритм такой сейчас:
Ставим экшен прокси перед запуском машины. Выполняем его.
Запускаем машину.Как только появятся процессы (memu.exe и memuheadless.exe) включится прокси.
Спасибо. Исчерпывающе. Сбивало с толку, что когда экшн прокси отработал до запуска ВМ, в нижней строке инстанса по-прежнему присутствует надпись "Без прокси". Теперь вижу, что она действительно изменяется на адрес прокси, когда ВМ запущена. Непривычно после Зеннопостера.
 
  • Спасибо
Реакции: Sergodjan

blamingas

Client
Регистрация
14.05.2021
Сообщения
114
Благодарностей
45
Баллы
28
Также, чтобы два раза не вставать - заметил, что в экшнах GET и POST, при отправке данных с установленной опцией "Текущий прокси проекта", прокси к запросам не цепляется (подозреваю из-за того, что прокси встраивается не в Дроид, а в виде внешней утилиты становится между Дроидом и Эмулятором).

Я подобным методом привык в Зеннопостере делать проверку через api.ipify.org прицепилась прокси или нет (дублируя два get-экшна - в одном "Без прокси", получая реальный ip, в другом с "Текущий прокси проекта", получая уже ip прокси, и потом сравнивая их).

В ЗенноДроиде, получается, этот метод не работает. "Текущий прокси проекта" отправляет запрос без прокси, а если в опциях прописать вручную, то я получу картину только для этого запроса, а не для инстанса в целом.
Каким методом в эмуляторе можно проверять ip-адрес?
 

blamingas

Client
Регистрация
14.05.2021
Сообщения
114
Благодарностей
45
Баллы
28
Также, не вопрос, а предупреждение другим юзерам:
Заметил, что если запуск ВМ произошёл неуспешно (как, например, в случае импортирования ВМ из файла, в 50% случаев запуск всегда неуспешен), то перед тем как по циклу повторно идти на экшн Запуска ВМ, необходимо заново пройти через кубик привязки прокси. Иначе запуск ВМ произойдет без привязки прокси.
 
  • Спасибо
Реакции: Sergodjan

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 559
Благодарностей
10 101
Баллы
113
Также, чтобы два раза не вставать - заметил, что в экшнах GET и POST, при отправке данных с установленной опцией "Текущий прокси проекта", прокси к запросам не цепляется (подозреваю из-за того, что прокси встраивается не в Дроид, а в виде внешней утилиты становится между Дроидом и Эмулятором).

Я подобным методом привык в Зеннопостере делать проверку через api.ipify.org прицепилась прокси или нет (дублируя два get-экшна - в одном "Без прокси", получая реальный ip, в другом с "Текущий прокси проекта", получая уже ip прокси, и потом сравнивая их).

В ЗенноДроиде, получается, этот метод не работает. "Текущий прокси проекта" отправляет запрос без прокси, а если в опциях прописать вручную, то я получу картину только для этого запроса, а не для инстанса в целом.
Каким методом в эмуляторе можно проверять ip-адрес?
А какой IP возвращает api.ipify.org если сделать GET-запрос из ЗД с установленным прокси на ВМ?
 

blamingas

Client
Регистрация
14.05.2021
Сообщения
114
Благодарностей
45
Баллы
28
А какой IP возвращает api.ipify.org если сделать GET-запрос из ЗД с установленным прокси на ВМ?
Это будет зависеть от того, с какой настройкой прокси внутри GET-экшна делается запрос (см. скриншот)

В случае api.ipify.org, ситуация с ip следующая:
В ЗенноПостере было так:
- Без прокси - мой ip
- Текущий прокси проекта - ip прокси.
- Строка[...] - ip прокси.

В ЗенноДроиде на практике выглядит так:
- Без прокси - мой ip
- Текущий прокси проекта - мой ip
- Строка[...] - ip прокси.

Т.е. такое ощущение, что в ЗД автоматом через прокси идут только те запросы, которые идут через андроид-инстанс. А GET-ы идут напрямую (мимо инстанса) поэтому прокси проекта на них, получается, не распространяется, и нужно каждый раз прописывать вручную через "Строку[...]", что довольно неудобно. Ну и в случае api.ipify.org проверять через get прикрутилась прокси или нет, из-за этого становится бессмысленно.
 

Вложения

Последнее редактирование:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 559
Благодарностей
10 101
Баллы
113
- Текущий прокси проекта - мой ip
В дроиде не работает проксирование инстанса из постера. Его тут нет.
Чтобы выполнить запрос, нужно выполнять команды непосредственно в эмуляторе.

Команда Adb Shell:
curl -s https://api.ipify.org
Как пример.

Единственное, curl из коробки есть только в образах Android 7 (x86 и x64).
Для старых версий ВМ (которые без встроенного curl) нужно поставить галочку:

83186
 
  • Спасибо
Реакции: Deisler и blamingas

blamingas

Client
Регистрация
14.05.2021
Сообщения
114
Благодарностей
45
Баллы
28
  • Спасибо
Реакции: Sergodjan

Emmett_Red

Client
Регистрация
14.09.2019
Сообщения
99
Благодарностей
13
Баллы
8
Получается экшен GET не работает с текущим прокси?
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
22 559
Благодарностей
10 101
Баллы
113
Получается экшен GET не работает с текущим прокси?
Пока да.
Впоследствии этот режим будет доработан, либо убран.
Можно вместо него использовать другой режим (Строка[...]).
 
Последнее редактирование:

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)