Подготовка к установке

В этом документе описываются шаги, которые необходимо выполнить перед установкой. FIRERPA поддерживает множество типов устройств и архитектур, и здесь перечислены подготовительные действия для различных распространенных устройств. Вы можете выбрать подходящий метод в зависимости от вашей ситуации. FIRERPA состоит из клиентской и серверной частей. Клиентская часть в основном включает библиотеки и API для Python, а серверная часть — это служба, работающая на целевом телефоне. Вы можете установить библиотеки Python на свой компьютер для управления телефоном. Аналогично, если вам нужно управлять устройством с помощью Python, вам необходимо установить и запустить Android-сервер на телефоне, это обязательное требование.

Основные требования

Идеальная среда для запуска FIRERPA — это устройство, на котором только что были получены root-права (например, новый эмулятор, прошивка со встроенными правами, только что полученный root через Magisk). Убедитесь, что у вас есть Android-устройство или эмулятор с root-правами, оперативной памятью более 2 ГБ и свободным местом на диске более 1 ГБ. Рекомендуется использовать последние версии эмуляторов Nox, LDPlayer или эмулятор AVD. Перед запуском обязательно проверьте следующее:

  • Отключить Magisk Hide
  • Отключить frida-server
  • После проверки перезагрузить устройство

Важно

Если вы не выполните вышеуказанные действия, проблемы с совместимостью могут помешать вам полноценно использовать API FIRERPA или удаленный рабочий стол.

Системные настройки

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

Проверка часового пояса и времени

Откройте системные настройки, найдите «Дата и время» и проверьте, установлен ли автоматически Китайский стандартный часовой пояс или часовой пояс вашего местоположения. Проверьте, правильно ли установлено время или находится ли оно в допустимых пределах погрешности. Если нет, отключите Использовать часовой пояс сети и Время сети и вручную установите часовой пояс и время для вашего текущего местоположения.

Отключение специальных возможностей

Откройте системные настройки, найдите «Специальные возможности» (в разделе «Система» или «Дополнительные настройки») и отключите или удалите все приложения, использующие специальные возможности (например, TalkBack, Auto.js и т. д.).

Примечание

Поскольку специальные возможности могут вызывать конфликты, проверяйте этот пункт только в том случае, если у вас возникли проблемы с использованием удаленного рабочего стола FIRERPA или соответствующих API.

Сетевые настройки

Сетевые условия для реальных устройств, облачных телефонов, эмуляторов и т. д. различаются. Вам необходимо выполнить соответствующие настройки в зависимости от вашей ситуации, иначе вы не сможете получить доступ к службе после установки.

Для реального устройства достаточно убедиться, что компьютер и телефон находятся в одной сети. Для эмуляторов, созданный по умолчанию эмулятор обычно не имеет прямого доступа к сети вашего хост-компьютера. Если вы используете Android x86 (виртуальную машину Android на базе VMWare), попробуйте установить сетевой режим «Мост» (Bridge mode) в настройках виртуальной машины. Для эмуляторов, таких как LDPlayer и Nox, необходимо в их настройках установить драйвер согласно инструкциям, включить режим моста, а затем перезапустить эмулятор. Для виртуального устройства Android Studio (AVD) таких настроек нет. Если вам нужно подключиться к AVD, сначала выполните команду adb forward tcp:65000 tcp:65000 и используйте localhost для подключения.

Примечание

Для перенаправленных портов или портов, изначально привязанных к петлевому адресу, мы рекомендуем использовать `localhost` вместо `127.0.0.1`, поскольку некоторые из наших инструментов, например для MITM-атак, используют `localhost` для определения того, используется ли подключение через USB.

Прочие настройки

WSA (Подсистема Windows для Android)

Если вы используете WSA (Подсистема Windows для Android), убедитесь, что версия WSA не ниже 2210.40000 и что у вас есть root-права. Затем откройте настройки WSA -> Subsystem Resources -> выберите Continuous и отключите Advanced Networking. Выберите Developer, включите Developer mode и разверните вкладку, включите опцию «Support single machine UI automation», а затем перезапустите подсистему WSA.

AVD (виртуальное устройство Android Studio)

Если вы используете AVD (виртуальное устройство Android Studio), сначала увеличьте размер хранилища и оперативной памяти по умолчанию.

В Android Studio нажмите на Virtual Device Manager, создайте новую виртуальную машину, затем найдите ее и нажмите на кнопку редактирования (значок карандаша). Нажмите Show Advanced Settings, найдите Storage -> Internal Storage и установите значение не менее 2 ГБ, а размер RAM — не менее 4 ГБ.

Redroid (Android в Docker)

Внимание

Следующие методы могут не работать в других дистрибутивах Linux.

Если вы используете Redroid (Android в Docker), на примере рекомендованной Ubuntu 20.04, сначала установите соответствующие модули linux-modules-extra.

apt install linux-modules-extra-`uname -r`

Отредактируйте файл /etc/modules, скопируйте следующие названия и вставьте их в конец файла, затем перезагрузите хост-машину.

# redroid modules
mac80211_hwsim

binder_linux
ashmem_linux

Наконец, используйте следующую команду для запуска. Измените redroid_gpu_mode и другие параметры в соответствии с вашими потребностями.

Внимание

Обратите внимание, что следующая команда отличается от официальной. Обязательно используйте именно эту команду.
docker run -itd --rm --privileged --pull always -v /lib/modules:/lib/modules:ro -v ~/redroid:/data -p 127.0.0.1:5555:5555 -p 127.0.0.1:65001:65000 redroid/redroid:12.0.0-latest androidboot.redroid_gpu_mode=guest

В приведенной выше команде порт 65000 контейнера сопоставляется с портом 65001 хост-машины, поскольку некоторым инструментам может потребоваться временная привязка к порту 65000 на хосте. Чтобы избежать конфликтов, мы используем порт 65001.

Примечание

К Android-контейнеру, запущенному с помощью этой команды, необходимо обращаться с хост-машины по адресу `http://127.0.0.1:65001`.