URAN233
Местный
- Сообщения
- 570
- Реакции
- 583
Готовые эмуляторы Android, например такие как Bluestacks или Android Studio, не предназначены для анонимной работы и не имеют функционала для заворачивания трафика в сеть Tor. Запуск Android-приложений на таких эмуляторах зачастую может привести к деанонимизации пользователя. Существуют онлайн-эмуляторы, способные работать прямо в браузере Tor, например ApkOnline, однако их функционал, откровенно говоря, оставляет желать лучшего. Ну а запуск Android-приложений на физически существующем телефоне, само собой, почти автоматом приводит к деанону.
В этой статье будет рассказано, как самостоятельно собрать эмулятор Android, специально заточенный под анонимную работу - с заворачиванием всего сетевого трафика в Tor, а также с возможностью подмены идентификаторов "железа", таких как наименование устройства, IMEI и других.
За основу мы возьмем Android-x86 - это сборка Android с модифицированным ядром, способная запускаться на обычных компьютерах и ноутбуках, внутри виртуальной машины VirtualBox. Android-x86 является бесплатным ПО с открытым исходным кодом, и доступен для скачивания в виде готовых ISO-образом. Для сборки эмулятора мы будем использовать Android-x86 версии 8.1 в 32-битной редакции (последняя версия на момент написания статьи - 9.0 64-битная). Почему именно эту версию, а не самую последнюю? На то есть несколько причин:
1. Абсолютное большинство современных Android-приложений прекрасно работают на этой версии Android-x86.
2. 64-битные редакции Android-x86 существенно более прожорливы в плане использования ресурсов компьютера, нежели 32-битные. При этом никаких особых преимуществ при запуске Android-приложений они не дают.
3. Для подмены идентификаторов "железа" в эмуляторе необходима установка Xposed Framework. Данный проект сейчас уже не поддерживается, и не способен работать на Android-x86 версии 9.0. Последняя версия Android-x86, на которой можно установить Xposed Framework - 8.1 в 32-битной редакции.
Из этих соображений Android-x86 версии 8.1 была выбрана как наиболее оптимальная.
Установка Android-x86 в виртуальной машине VirtualBox
Для начала скачиваем ISO-образ Android-x86. Заходим на
Детальное описание процесса установки можно найти в открытых источниках. Я не буду расписывать его подробно, сосредоточусь лишь на ряде неочевидных и/или плохо описанных моментов.
Перед установкой Android-x86, необходимо установить VirtualBox, Whonix, а также VirtualBox Extension Pack.
При создании виртуальной машины, объем виртуального жесткого диска желательно выставить равным 32 ГБ. Можно и больше, но меньше - нежелательно.
В окне настроек виртуальной машины нужно выставить следующие параметры:
- Во вкладке "Общие/Основные" указать тип операционной системы - Linux, версия - Other Linux (32-bit).
- Во вкладке "Система/Материнская плата" указать объем оперативной памяти не менее 2560 МБ. Как показал мой опыт, это минимальный необходимый объем, при меньшем объеме оперативки Android-x86 не запускается. Желательно выставить даже больше.
- Там же выставить: чипсет - PIIX3, манипулятор курсора - USB планшет, а также включить опцию "Включить I/O APIC".
- Во вкладке "Система/Процессор" выставить число процессоров - 2, и включить опцию "Включить PAE/NX".
- Во вкладке "Дисплей/Экран" выставить тип графического контроллера - VBoxSVGA, объем видеопамяти указать 128 МБ. При меньшем объеме видеопамяти Android-x86 может не запуститься.
- Во вкладке "Носители" выставить контроллер жесткого диска - IDE, тип - PIIX4.
- Во вкладке "Сеть/Адаптер 1" выставить тип адаптера - Intel PRO/1000 MT Desktop (82540EM). Для корректного подключения к сети Tor нужно там же выставить тип подключения - Внутренняя сеть, имя сети - Whonix.
В процессе установки, на вопрос "Do you want to use GPT?" надо ответить "No".
Раздел под Android-x86 надо форматировать в файловую систему ext4. Не NTFS и не FAT32!
На вопрос "Do you want to install boot loader GRUB?" надо ответить "Yes".
На вопрос "Do you want to install /system directory as read-write?" надо ответить "Yes".
Когда будет предложено подключиться к Wi-Fi - надо выбрать "Пропустить".
В окне настройки сервисов Google надо отключить геолокацию и отправку диагностической информации.
В качестве главного приложения надо выбрать Launcher3 и указать "Всегда".
Если все правильно сделано, в итоге отобразится рабочий стол Android-x86, отдаленно похожий на рабочий стол Android-смартфона.
Затем нужно зайти в раздел настроек "Система", там перейти в "О планшете", найти информацию о номере сборки Android, и много раз щелкать по номеру сборки, до тех пор, пока не отобразится сообщение "Вы стали разработчиком!". В настройках после этого появится пункт "Для разработчиков", там можно будет включать или отключать предоставление приложениям прав root.
Теперь завершаем работу виртуальной машины. Для этого в меню окна VirtualBox надо выбрать "Машина | Завершить работу".
Затем надо выбрать "Выключить" и подождать. Окно виртуальной машины через некоторое время закроется само.
Установка фаервола. Заодно учимся работать с файловой системой Android-x86.
Для дополнительной конфиденциальности - чтобы встроенные в Android-x86 сервисы Google не лазили лишний раз в интернет и не сливали лишних сведений на сервера Google - нужно установить фаервол. В качестве фаервола рекомендую использовать NetGuard. Заходим на
И тут мы подходим к тому, что скачанный APK-файл надо каким-то образом скопировать из хостовой системы вовнутрь виртуальной машины с Android-x86. Расскажу, как это сделать в случае, если хостовой системой является Windows.
Заходим в окно настроек виртуальной машины Android-x86, на вкладке "Носители" жмем на значок добавления жесткого диска, в открывшемся окне выбираем "Создать новый диск".
Тип жесткого диска надо указать - VHD, это очень важно!
Размер жесткого диска надо выставить в пределах от 1 ГБ до 1,5 ГБ, но не больше, это тоже важно! В примере ниже я указал 1,29 ГБ:
После создания виртуального жесткого диска и сохранения параметров, надо в хостовой системе запустить Командную строку от имени администратора, и ввести команду:
mmc.exe diskmgmt.msc
Откроется оснастка "Управление дисками". В меню "Действие" выбираем команду "Присоединить виртуальный жесткий диск". Находим VHD-файл с только что созданным виртуальным жестким диском, и жмем ОК. Если все сделано правильно, в списке дисков появится новый жесткий диск, размером чуть больше 1 ГБ (аккурат таким же, который вы указывали при создании виртуального диска через настройки VirtualBox, в моем случае 1,29 ГБ), и с пометкой "Не проинициализирован".
Жмем по нему правой кнопкой мыши и выбираем "Инициализировать диск". Стиль разделов выбираем MBR - Master Boot Record. Далее жмем по нему правой кнопкой мыши и выбираем "Создать простой том..." Откроется мастер создания тома. Букву диска назначаем любую произвольную, я указал G:. Дальше будет выбор - не форматировать том, либо форматировать в FAT, FAT32, либо NTFS. Выбираем форматирование тома в FAT (это важно!). По желанию можно указать метку тома, я указал ANDRO-VFAT. Далее, если все сделано правильно, в вашей системе появится новый диск с указанной вами меткой тома и буквой. Это можно проверить, например, через окно "Мой компьютер".
После этого копируем на этот диск ранее скачанный APK-файл с NetGuard. Это лучше всего делать с помощью файлового менеджера вроде Total Commander или Far Manager. Для удобства можно создать в корневом каталоге этого диска папку, например с названием apk2, и скопировать APK-файл туда. В итоге должно получиться так (скриншот из Far Manager):
Далее переходим в оснастку "Управление дисками", щелкаем правой кнопкой мыши по нашему виртуальному жесткому диску, и выбираем "Отсоединить виртуальный жесткий диск". Если все сделано правильно, виртуальный жесткий диск пропадет из списка дисков в оснастке "Управление дисками", а в окне "Мой компьютер" перестанет отображаться буква этого диска.
Затем запускаем виртуальную машину Android-x86. В самом начале загрузки, на короткое время отобразится загрузочное меню. В этом меню нужно быстро выбрать - Debug mode, и нажать Enter!
Дальше ждем 30-60 секунд, после чего жмем Enter. Должно будет появиться приглашение вида android:/android # Если оно не появилось - жмем Enter каждые 30 секунд, до тех пор, пока оно не появится.
Когда приглашение появилось, вводим команды:
cd /
mkdir /fat16
mount -t vfat /dev/sdb1 /fat16
ls /fat16
ls /fat16/apk2
Если все сделано правильно, в выводе предпоследней команды отобразится подкаталог apk2, а в выводе последней команды - APK-файл NetGuard, скопированный ранее на виртуальный жесткий диск.
Далее вводим команды:
mount -o remount,rw /mnt
cd /mnt
ls
Должно будет отобразиться имя подкаталога вида android-8.1-r6 (может отличаться в других версиях Android-x86).
Заходим в этот подкаталог командой:
cd android-8.1-r6
А дальше вводим:
cd data/media/0
ls
Отобразится список папок пользователя на внутреннем носителе Android (может отличаться в разных версиях Android-x86).
Ищем подпапку с именем Pictures (либо аналогичным), заходим в нее:
cd Pictures
и просматриваем ее содержимое командой:
ls
Увидим, что там пусто. Копируем в нее APK-файл NetGuard командой:
cp /fat16/apk2/eu.faircode.netguard_2022111001.apk ./
и опять просматриваем ее содержимое командой:
ls
Увидим, что там появился скопированный нами APK-файл NetGuard. После чего переходим в корневой каталог, отмонтируем файловые системы:
cd /
umount /fat16
rmdir /fat16
umount /mnt
и перезагружаем виртуальную машину командой:
reboot -f
Далее ждем, пока Android-x86 загрузится в обычном режиме. Заходим в приложение "Файлы", жмем на три вертикальные точки в правом верхнем углу экрана, и выбираем "Показать внутр. хранилище". Затем в левой части экрана нажимаем на "VirtualBox". Увидим список папок пользователя на внутреннем носителе, среди них будет папка Pictures. Делаем на ней двойной щелчок, и - увидим APK-файл NetGuard, который мы туда ранее скопировали.
Делаем по нему двойной щелчок, после чего нам будет предложено установить приложение. Устанавливаем его, по окончании установки - запускаем. Включаем NetGuard переключателем в верхней части экрана, даем согласие на все последующие запросы. Далее заходим в настройки NetGuard, переходим в "Дополнительные опции" и там включаем параметр "Управлять сист. приложениями".
Возвращаемся в основное окно NetGuard, и там - запрещаем доступ в Интернет для всех-всех-всех приложений, за исключением браузера Chrome.
Потом возвращаемся на рабочий стол Android-x86 (жмем кружочек посередине черной полоски в самом низу экрана Android-x86). Заходим в Настройки, переходим в раздел "Сеть и Интернет", потом жмем на пункт "VPN". Напротив значка NetGuard жмем на шестереночку, и далее - включаем опцию "Постоянная VPN". Все, на этом настройка NetGuard окончена.
После этого можно завершить работу виртуальной машины, так, как описывалось выше.
Установка Xposed Framework. Подмена идентификаторов устройства
Любое Android-устройство, хоть физически существующий телефон, хоть виртуальная машина Android-x86 - имеет свои идентификаторы: название производителя и модели устройства, IMEI, и ряд других. Идентификаторы Android-x86 значительно отличаются от идентификаторов физически существующих телефонов, в чем вы можете убедиться, зайдя в настройках Android-x86 в раздел "Система / О планшете". В качестве фирмы-производителя устройства там указана innotek GmbH (такая фирма существует, однако производством телефонов не занимается от слова совсем), а в качестве модели устройства - VirtualBox (недвузначный намек на виртуальную машину). Кроме того, Android-x86 "из коробки" не имеет IMEI, в чем вы можете убедиться, открыв приложение "Телефон" и введя *#06# - приложение "Телефон" от этого будет крашиться. (На обычном телефоне комбинация *#06# приведет к отображению IMEI телефона.) Любое Android-приложение, которое вы запустите на Android-x86 - сможет считать эти идентификаторы и по ним понять, что его запустили на виртуальной машине.
В некоторых случаях может возникнуть надобность сокрытия от Android-приложения упомянутых идентификаторов, а точнее - не сокрытия, а подмены идентификаторов на фейковые. Для этого потребуется установить Xposed Framework.
(!) В процессе установки Xposed Framework может получиться так называемый boot loop - это когда система Android-x86 перестает загружаться и в процессе загрузки зависает на этапе отображения заставки с логотипом Android. Поэтому, прежде чем приступать к нижеописанным действиям, настоятельно рекомендую сделать резервную копию виртуальной машины. Проще всего это реализовать, сделав резервную копию .vdi-файла с установленной системой Android-x86 (не путать с VHD-файлом, который мы создавали для переноса файлов!). В случае если что-то пойдет не так и система выпадет в boot loop, будет достаточно восстановить .vdi-файл из резервной копии.
Первым делом скачиваем подходящую версию Xposed Framework. Поскольку данный проект более не поддерживается и его официальный сайт закрыт, скачивать будем из копии в Архиве Интернета
Потом заходим на
Запускаем оснастку "Управление дисками" командой
mmc.exe diskmgmt.msc
как описывалось выше. В меню оснастки выбираем "Действие | Присоединить виртуальный жесткий диск". Находим VHD-файл с виртуальным жестким диском, отформатированным под FAT (который вы создавали ранее), и монтируем его. Далее заходим на этот виртуальный жесткий диск в любом файловом менеджере (например Total Commander или Far Manager). Создаем в корневом каталоге смонтированного виртуального диска папку с названием xposed, и распаковываем в нее содержимое файла xposed-v90-sdk27-x86-beta3.zip. После окончания распаковки там будет две папки, с названиями META-INF и system. Заходим в подпапку META-INF\com\google\android и копируем все файлы оттуда в папку \xposed. Далее возвращаемся в папку \xposed и редактируем файл flash-script.sh с помощью любого текстового редактора. Нужно перейти в конец файла, затем искать ближайшую к концу файла строку "exit 1" (весьма вероятно она будет на строке 194). Её нужно закомментировать, поставив перед ней #, так чтобы она выглядела как "# exit 1". Сохраняем отредактированный flash-script.sh
Ранее скачанный файл de.robv.android.xposed.installer_43.apk копируем в папку \apk2 на виртуальном жестком диске.
В итоге должно получиться примерно так (скриншоты из Far Manager):
Далее отсоединяем виртуальный жесткий диск (командой "Отсоединить виртуальный жесткий диск" в оснастке "Управление дисками", как описывалось выше). Запускаем виртуальную машину с Android-x86 в Debug mode. В консоли вводим команды:
cd /
mkdir /fat16
mount -t vfat /dev/sdb1 /fat16
ls /fat16/apk2
ls /fat16/xposed
Если все сделано правильно, в выводе предпоследней команды отобразится файл de.robv.android.xposed.installer_43.apk, а в выводе последней команды - подпапки META-INF и system и несколько файлов, включая flash-script.sh
Если все в порядке, далее вводим команды:
mount -o remount,rw /mnt
cd /mnt
ls
cd android-8.1-r6 (название может отличаться в других версиях Android-x86)
cd data/media/0
ls
cd Pictures
cp /fat16/apk2/de.robv.android.xposed.installer_43.apk ./
ls
cd ..
cp -r /fat16/xposed ./xposed
ls
После чего отмонтируем файловые системы и перезагружаем виртуальную машину:
cd /
umount /fat16
rmdir /fat16
umount /mnt
reboot -f
Ждем, пока Android-x86 загрузится в обычном режиме. Заходим в приложение "Файлы", там открываем внутренний носитель и заходим в папку Pictures. Делаем двойной щелчок по файлу de.robv.android.xposed.installer_43.apk и устанавливаем приложение Xposed Installer. По окончании установки запускаем это приложение, должно отобразиться, что Xposed Framework не установлен.
Закрываем приложение Xposed Installer, открываем окно терминала, запрашиваем права суперпользователя командой:
su
Выбираем "Только в этот раз" и жмем "Разрешить". Далее вводим команды:
cd /data/data/de.robv.android.xposed.installer
ls -l
В выводе будет присутствовать имя владельца файлов - строка вида u0_a71 (может немного отличаться). Запоминаем это имя. Далее, создаем подкаталог conf и устанавливаем на него права доступа:
mkdir conf
chmod 771 conf
chown u0_a71:u0_a71 conf (при необходимости заменить u0_a71 на актуальное имя владельца)
Далее вводим:
touch conf/jit_reset_offset
echo 148 > conf/jit_reset_offset
chmod 771 conf/jit_reset_offset
chown u0_a71:u0_a71 conf/jit_reset_offset (заменить u0_a71 на актуальное имя)
Затем вводим:
ls /storage/emulated/0
Если в выводе отобразятся папки Pictures и xposed, переходим в папку /storage/emulated/0/xposed :
cd /storage/emulated/0/xposed
Далее нужно запустить скрипт flash-script.sh :
sh flash-script.sh
Ждем окончания его работы, после чего вводим
exit
и закрываем терминал. Перезапускаем Android-x86, для этого в меню окна VirtualBox выбираем "Машина | Завершить работу"
и далее жмем "Перезапустить". Если все сделано правильно, перезагрузка будет длиться заметно дольше чем обычно, однако в конечном итоге отобразится рабочий стол Android-x86.
Открываем приложение Xposed Installer и видим, что Xposed Framework успешно установлен:
Сам по себе Xposed Framework не позволяет подменять IMEI и прочие идентификаторы, для этого нужно установить дополнительные модули. Один из простейших модулей, позволяющих это делать - Android Faker. Его можно найти на GitHub-е, однако последние версии Android Faker не работают с Xposed Framework (требуют наличия более поздних Lsposed либо Edxposed), поэтому скачиваем предыдущую версию по ссылке
Установка Android Faker проводится полностью аналогично тому, как описывалось выше (установка NetGuard и APK-файла Xposed Installer): нужно запустить оснастку "Управление дисками", смонтировать VHD-образ с виртуальным жестким диском, скопировать на него скачанный APK-файл с Android Faker, отмонтировать VHD-образ, затем запустить Android-x86 в режиме Debug mode, в режиме командной строки скопировать APK-файл в папку data/media/0/Pictures, в той же командной строке отмонтировать файловые системы, перезагрузить Android-x86 и дать ему загрузиться в обычном режиме, затем в приложении "Файлы" найти APK-файл с Android Faker и установить его.
(!) Обращаю ваше внимание на то, что если установить APK-файл с Android Faker сразу, минуя установку Xposed Framework - то он установится, однако при запуске выдаст ошибку вида "Xposed Framework не установлен", и фактически не будет работать. Это справедливо и в отношении других APK-файлов с модулями для Xposed Framework.
Сразу после установки и запуска Android Faker отобразит, что модуль не активирован:
Запускаем приложение Xposed Installer, заходим в раздел "Установленные модули"
и включаем галочку напротив Android Faker:
Далее перезагружаем виртуальную машину с Android-x86, после чего запускаем приложение Android Faker. Теперь уже мы не увидим никаких сообщений об ошибках:
Для примера, попробуем установить фейковые IMEI:
Жмем SAVE, после чего запускаем приложение "Телефон", и вводим *#06# . В этот раз приложение "Телефон" не будет крашиться, а отобразит введенный нами фейковый IMEI:
Значительно более продвинутым функционалом обладает модуль Android Device Changer, его можно скачать по ссылке
У него есть преднастройки с идентификаторами реально существующих Android-смартфонов (правда, только устаревших моделей), а также мобильных операторов ряда стран, включая в том числе Россию и Украину.
Пробрасывание USB-вебкамеры в виртуальную машину Android-x86
Некоторые Android-приложения требуют доступ к видеокамере телефона, например чтобы отсканировать QR-код. Понятно, что виртуальная машина Android-x86 не является телефоном, и не имеет своей физически существующей камеры. Как быть в таком случае? Ниже я расскажу, как пробросить USB-вебкамеру в виртуальную машину Android-x86, так чтобы Android-приложения воспринимали ее как видеокамеру телефона.
Прежде всего нам понадобится вебкамера, подключаемая к компьютеру через USB, наподобие такой:
или такой:
Подключаем вебкамеру к компьютеру, при необходимости устанавливаем драйверы для нее. Далее, не отключая вебкамеру (!), запускаем Командную строку от имени администратора. Переходим в подкаталог, в котором установлен VirtualBox (это может быть C:\Program Files\Oracle\VirtualBox либо C:\Program Files\Whonix , в зависимости от используемой вами версии Whonix). Для этого используем команду вида cd <подкаталог>, например:
cd C:\Program Files\Whonix
После этого вводим:
dir *.exe
Если в выводе отобразятся файлы VirtualBox.exe и VBoxManage.exe, например так:
значит вы перешли в нужный подкаталог. В таком случае вводим:
VBoxManage.exe list webcams
Отобразится список подключенных вебкамер, например так:
В скриншоте выше .1 "Integrated Camera" - это встроенная вебкамера ноутбука, а .2 "iSlim 1300" - внешняя USB-вебкамера.
Для подключения вебкамеры к виртуальной машине с Android-x86, нужно запустить соответствующую виртуальную машину, и не дожидаясь загрузки Android-x86, приостановить загрузку на этапе вывода загрузочного меню, нажимая кнопки "вниз" и/или "вверх" на клавиатуре. Затем переключиться в Командную строку в хостовой системе, и ввести команду вида:
VBoxManage.exe controlvm <имя вирт.машины> webcam attach <идентификатор камеры>
например:
VBoxManage.exe controlvm "Android-x86-Rutor" webcam attach .2
после чего переключиться в виртуальную машину с Android-x86 и продолжить её загрузку в обычном режиме. После загрузки виртуальной машины, приложения в ней будут воспринимать USB-вебкамеру как камеру смартфона.
Для проверки, вы можете установить в виртуальной машине приложение Privacy Friendly QR Scanner
Подключение к сети Tor. Создание цепочки Tor -> VPN
Для того, чтобы виртуальная машина с Android-x86 могла подключиться к сети Tor, в VirtualBox, в настройках виртуальной машины, во вкладке "Сеть/Адаптер 1" должен быть выставлен тип подключения - Внутренняя сеть, и имя сети - Whonix. Проверьте это перед тем, как выполнять дальнейшие действия.
Запустите шлюз Whonix-Gateway, дождитесь, пока он подключится к сети Tor, и лишь после этого запускайте виртуальную машину с Android-x86. Обе виртуальные машины - Whonix-Gateway и Android-x86 - должны работать одновременно.
В виртуальной машине с Android-x86 нужно зайти в "Настройки / Сеть и Интернет / Wi-Fi", найти там сеть с названием VirtWifi, навести на нее курсор мыши, после чего нажать и удерживать левую кнопку мыши. Выскочит меню, в этом меню надо выбрать "Изменить сеть".
Далее нужно выбрать "Расширенные настройки", указать "Настройки IP" - "Пользовательские", и ввести следующие параметры: IP-адрес - 10.152.152.28 (можно указывать любое произвольное значение в пределах 10.152.152.12 ... 10.152.152.50), шлюз - 10.152.152.10, длина префикса сети - 18, DNS 1 - 10.152.152.10
после чего нажать "Сохранить". Теперь проверяем наличие доступа в Интернет и свой IP-адрес, для этого открываем браузер Chrome и заходим на сайт browserleaks.com/ip . Если все сделано правильно, отобразится IP-адрес выходной ноды Tor:
В некоторых случаях может потребоваться сокрыть факт использования вами Tor, для этого нужно выстраивать цепочку Tor -> VPN. В этом случае потребуется отключить фаервол NetGuard, так как, к сожалению, NetGuard не может работать одновременно с VPN-приложениями. При этом следует иметь в виду, что в случае отключения NetGuard, встроенные в Android-x86 сервисы Google начнут коннектиться к серверам Гугла, сливать на них телеметрию и скачивать обновления. Поэтому решайте сами, исходя из ваших задач, что для вас важнее - фаервол NetGuard либо цепочка Tor -> VPN.
Общий алгоритм следующий:
1. Подыскиваем подходящее VPN-приложение, скачиваем его в виде APK-файла и копируем в виртуальную машину с Android-x86 через командную строку в Debug mode. Но - пока не устанавливаем!
2. Загружаем виртуальную машину Android-x86 в обычном режиме. Запускаем приложение NetGuard, и отключаем его. Потом переходим в настройки Android-x86, в разделе "Сеть и Интернет / VPN", для NetGuard отключаем опцию "Постоянная VPN".
3. Открываем приложение "Файлы", находим APK-файл скачанного вами VPN-приложения, устанавливаем его, по окончании установки - запускаем. При необходимости - настраиваем.
4. Для проверки запускаем браузер Chrome и смотрим свой IP-адрес.
Для примера, я установил бесплатное приложение Riseup VPN, которое можно скачать по ссылке
Потом открыл браузер Chrome и зашел на сайт browserleaks.com/ip . Там отобразился IP-адрес VPN-сервера, который не детектился как выходная нода Tor:
Установка Android-приложений из Google Play
Как известно, Google Play не позволяет скачивать APK-файлы приложений штатными способами, и к тому же требует наличия Google-аккаунта, тем самым деаноня пользователя. Однако для установки приложений в виртуальной машине с Android-x86 нам непременно нужен APK-файл, по возможности скачанный анонимно. Как быть? Есть очень простой лайфхак: большинство приложений из Google Play можно скачать в виде APK-файлов на этих сайтах:
При скачивании нужно иметь в виду, что одни приложения доступны в универсальном виде для разных архитектур процессора, например:
тогда как другие есть в нескольких вариантах под разные архитектуры, например:
В таком случае нужно искать вариант для архитектуры x86 в виде APK, и скачивать именно его, например:
Варианты под другие архитектуры, например armeabi-v7a или arm64-v8a - не будут работать в виртуальной машине Android-x86. Также следует иметь в виду, что в виртуальной машине Android-x86 не получится установить файлы формата XAPK, независимо от процессорной архитектуры.
P.S. Вместо заключения.
Вовсе не обязательно выполнять все вышеописанные манипуляции. Намного лучше настраивать виртуальную машину Android-x86 с учетом конкретных задач, для которых она вам нужна. Например, если вам нужно зарегистрировать левый Telegram-аккаунт - можно не устанавливать Xposed Framework и не настраивать цепочку Tor -> VPN, такие меры будут излишними. И совсем другое дело, если вы планируете использовать какие-то приложения типа электронных кошельков - там будут желательны и подмена идентификаторов, и сокрытие факта использования Tor.
В этой статье будет рассказано, как самостоятельно собрать эмулятор Android, специально заточенный под анонимную работу - с заворачиванием всего сетевого трафика в Tor, а также с возможностью подмены идентификаторов "железа", таких как наименование устройства, IMEI и других.
За основу мы возьмем Android-x86 - это сборка Android с модифицированным ядром, способная запускаться на обычных компьютерах и ноутбуках, внутри виртуальной машины VirtualBox. Android-x86 является бесплатным ПО с открытым исходным кодом, и доступен для скачивания в виде готовых ISO-образом. Для сборки эмулятора мы будем использовать Android-x86 версии 8.1 в 32-битной редакции (последняя версия на момент написания статьи - 9.0 64-битная). Почему именно эту версию, а не самую последнюю? На то есть несколько причин:
1. Абсолютное большинство современных Android-приложений прекрасно работают на этой версии Android-x86.
2. 64-битные редакции Android-x86 существенно более прожорливы в плане использования ресурсов компьютера, нежели 32-битные. При этом никаких особых преимуществ при запуске Android-приложений они не дают.
3. Для подмены идентификаторов "железа" в эмуляторе необходима установка Xposed Framework. Данный проект сейчас уже не поддерживается, и не способен работать на Android-x86 версии 9.0. Последняя версия Android-x86, на которой можно установить Xposed Framework - 8.1 в 32-битной редакции.
Из этих соображений Android-x86 версии 8.1 была выбрана как наиболее оптимальная.
Установка Android-x86 в виртуальной машине VirtualBox
Для начала скачиваем ISO-образ Android-x86. Заходим на
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
, переходим на любое из зеркал, там ищем файл с названием android-x86-8.1-r6.iso (это нужная нам версия), и скачиваем его.Детальное описание процесса установки можно найти в открытых источниках. Я не буду расписывать его подробно, сосредоточусь лишь на ряде неочевидных и/или плохо описанных моментов.
Перед установкой Android-x86, необходимо установить VirtualBox, Whonix, а также VirtualBox Extension Pack.
При создании виртуальной машины, объем виртуального жесткого диска желательно выставить равным 32 ГБ. Можно и больше, но меньше - нежелательно.
В окне настроек виртуальной машины нужно выставить следующие параметры:
- Во вкладке "Общие/Основные" указать тип операционной системы - Linux, версия - Other Linux (32-bit).
- Во вкладке "Система/Материнская плата" указать объем оперативной памяти не менее 2560 МБ. Как показал мой опыт, это минимальный необходимый объем, при меньшем объеме оперативки Android-x86 не запускается. Желательно выставить даже больше.
- Там же выставить: чипсет - PIIX3, манипулятор курсора - USB планшет, а также включить опцию "Включить I/O APIC".
- Во вкладке "Система/Процессор" выставить число процессоров - 2, и включить опцию "Включить PAE/NX".
- Во вкладке "Дисплей/Экран" выставить тип графического контроллера - VBoxSVGA, объем видеопамяти указать 128 МБ. При меньшем объеме видеопамяти Android-x86 может не запуститься.
- Во вкладке "Носители" выставить контроллер жесткого диска - IDE, тип - PIIX4.
- Во вкладке "Сеть/Адаптер 1" выставить тип адаптера - Intel PRO/1000 MT Desktop (82540EM). Для корректного подключения к сети Tor нужно там же выставить тип подключения - Внутренняя сеть, имя сети - Whonix.
В процессе установки, на вопрос "Do you want to use GPT?" надо ответить "No".
Раздел под Android-x86 надо форматировать в файловую систему ext4. Не NTFS и не FAT32!
На вопрос "Do you want to install boot loader GRUB?" надо ответить "Yes".
На вопрос "Do you want to install /system directory as read-write?" надо ответить "Yes".
Когда будет предложено подключиться к Wi-Fi - надо выбрать "Пропустить".
В окне настройки сервисов Google надо отключить геолокацию и отправку диагностической информации.
В качестве главного приложения надо выбрать Launcher3 и указать "Всегда".
Если все правильно сделано, в итоге отобразится рабочий стол Android-x86, отдаленно похожий на рабочий стол Android-смартфона.
Затем нужно зайти в раздел настроек "Система", там перейти в "О планшете", найти информацию о номере сборки Android, и много раз щелкать по номеру сборки, до тех пор, пока не отобразится сообщение "Вы стали разработчиком!". В настройках после этого появится пункт "Для разработчиков", там можно будет включать или отключать предоставление приложениям прав root.
Теперь завершаем работу виртуальной машины. Для этого в меню окна VirtualBox надо выбрать "Машина | Завершить работу".
Затем надо выбрать "Выключить" и подождать. Окно виртуальной машины через некоторое время закроется само.
Установка фаервола. Заодно учимся работать с файловой системой Android-x86.
Для дополнительной конфиденциальности - чтобы встроенные в Android-x86 сервисы Google не лазили лишний раз в интернет и не сливали лишних сведений на сервера Google - нужно установить фаервол. В качестве фаервола рекомендую использовать NetGuard. Заходим на
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
и скачиваем последнюю версию в виде APK-файла.И тут мы подходим к тому, что скачанный APK-файл надо каким-то образом скопировать из хостовой системы вовнутрь виртуальной машины с Android-x86. Расскажу, как это сделать в случае, если хостовой системой является Windows.
Заходим в окно настроек виртуальной машины Android-x86, на вкладке "Носители" жмем на значок добавления жесткого диска, в открывшемся окне выбираем "Создать новый диск".
Тип жесткого диска надо указать - VHD, это очень важно!
Размер жесткого диска надо выставить в пределах от 1 ГБ до 1,5 ГБ, но не больше, это тоже важно! В примере ниже я указал 1,29 ГБ:
После создания виртуального жесткого диска и сохранения параметров, надо в хостовой системе запустить Командную строку от имени администратора, и ввести команду:
mmc.exe diskmgmt.msc
Откроется оснастка "Управление дисками". В меню "Действие" выбираем команду "Присоединить виртуальный жесткий диск". Находим VHD-файл с только что созданным виртуальным жестким диском, и жмем ОК. Если все сделано правильно, в списке дисков появится новый жесткий диск, размером чуть больше 1 ГБ (аккурат таким же, который вы указывали при создании виртуального диска через настройки VirtualBox, в моем случае 1,29 ГБ), и с пометкой "Не проинициализирован".
Жмем по нему правой кнопкой мыши и выбираем "Инициализировать диск". Стиль разделов выбираем MBR - Master Boot Record. Далее жмем по нему правой кнопкой мыши и выбираем "Создать простой том..." Откроется мастер создания тома. Букву диска назначаем любую произвольную, я указал G:. Дальше будет выбор - не форматировать том, либо форматировать в FAT, FAT32, либо NTFS. Выбираем форматирование тома в FAT (это важно!). По желанию можно указать метку тома, я указал ANDRO-VFAT. Далее, если все сделано правильно, в вашей системе появится новый диск с указанной вами меткой тома и буквой. Это можно проверить, например, через окно "Мой компьютер".
После этого копируем на этот диск ранее скачанный APK-файл с NetGuard. Это лучше всего делать с помощью файлового менеджера вроде Total Commander или Far Manager. Для удобства можно создать в корневом каталоге этого диска папку, например с названием apk2, и скопировать APK-файл туда. В итоге должно получиться так (скриншот из Far Manager):
Далее переходим в оснастку "Управление дисками", щелкаем правой кнопкой мыши по нашему виртуальному жесткому диску, и выбираем "Отсоединить виртуальный жесткий диск". Если все сделано правильно, виртуальный жесткий диск пропадет из списка дисков в оснастке "Управление дисками", а в окне "Мой компьютер" перестанет отображаться буква этого диска.
Затем запускаем виртуальную машину Android-x86. В самом начале загрузки, на короткое время отобразится загрузочное меню. В этом меню нужно быстро выбрать - Debug mode, и нажать Enter!
Дальше ждем 30-60 секунд, после чего жмем Enter. Должно будет появиться приглашение вида android:/android # Если оно не появилось - жмем Enter каждые 30 секунд, до тех пор, пока оно не появится.
Когда приглашение появилось, вводим команды:
cd /
mkdir /fat16
mount -t vfat /dev/sdb1 /fat16
ls /fat16
ls /fat16/apk2
Если все сделано правильно, в выводе предпоследней команды отобразится подкаталог apk2, а в выводе последней команды - APK-файл NetGuard, скопированный ранее на виртуальный жесткий диск.
Далее вводим команды:
mount -o remount,rw /mnt
cd /mnt
ls
Должно будет отобразиться имя подкаталога вида android-8.1-r6 (может отличаться в других версиях Android-x86).
Заходим в этот подкаталог командой:
cd android-8.1-r6
А дальше вводим:
cd data/media/0
ls
Отобразится список папок пользователя на внутреннем носителе Android (может отличаться в разных версиях Android-x86).
Ищем подпапку с именем Pictures (либо аналогичным), заходим в нее:
cd Pictures
и просматриваем ее содержимое командой:
ls
Увидим, что там пусто. Копируем в нее APK-файл NetGuard командой:
cp /fat16/apk2/eu.faircode.netguard_2022111001.apk ./
и опять просматриваем ее содержимое командой:
ls
Увидим, что там появился скопированный нами APK-файл NetGuard. После чего переходим в корневой каталог, отмонтируем файловые системы:
cd /
umount /fat16
rmdir /fat16
umount /mnt
и перезагружаем виртуальную машину командой:
reboot -f
Далее ждем, пока Android-x86 загрузится в обычном режиме. Заходим в приложение "Файлы", жмем на три вертикальные точки в правом верхнем углу экрана, и выбираем "Показать внутр. хранилище". Затем в левой части экрана нажимаем на "VirtualBox". Увидим список папок пользователя на внутреннем носителе, среди них будет папка Pictures. Делаем на ней двойной щелчок, и - увидим APK-файл NetGuard, который мы туда ранее скопировали.
Делаем по нему двойной щелчок, после чего нам будет предложено установить приложение. Устанавливаем его, по окончании установки - запускаем. Включаем NetGuard переключателем в верхней части экрана, даем согласие на все последующие запросы. Далее заходим в настройки NetGuard, переходим в "Дополнительные опции" и там включаем параметр "Управлять сист. приложениями".
Возвращаемся в основное окно NetGuard, и там - запрещаем доступ в Интернет для всех-всех-всех приложений, за исключением браузера Chrome.
Потом возвращаемся на рабочий стол Android-x86 (жмем кружочек посередине черной полоски в самом низу экрана Android-x86). Заходим в Настройки, переходим в раздел "Сеть и Интернет", потом жмем на пункт "VPN". Напротив значка NetGuard жмем на шестереночку, и далее - включаем опцию "Постоянная VPN". Все, на этом настройка NetGuard окончена.
После этого можно завершить работу виртуальной машины, так, как описывалось выше.
Установка Xposed Framework. Подмена идентификаторов устройства
Любое Android-устройство, хоть физически существующий телефон, хоть виртуальная машина Android-x86 - имеет свои идентификаторы: название производителя и модели устройства, IMEI, и ряд других. Идентификаторы Android-x86 значительно отличаются от идентификаторов физически существующих телефонов, в чем вы можете убедиться, зайдя в настройках Android-x86 в раздел "Система / О планшете". В качестве фирмы-производителя устройства там указана innotek GmbH (такая фирма существует, однако производством телефонов не занимается от слова совсем), а в качестве модели устройства - VirtualBox (недвузначный намек на виртуальную машину). Кроме того, Android-x86 "из коробки" не имеет IMEI, в чем вы можете убедиться, открыв приложение "Телефон" и введя *#06# - приложение "Телефон" от этого будет крашиться. (На обычном телефоне комбинация *#06# приведет к отображению IMEI телефона.) Любое Android-приложение, которое вы запустите на Android-x86 - сможет считать эти идентификаторы и по ним понять, что его запустили на виртуальной машине.
В некоторых случаях может возникнуть надобность сокрытия от Android-приложения упомянутых идентификаторов, а точнее - не сокрытия, а подмены идентификаторов на фейковые. Для этого потребуется установить Xposed Framework.
(!) В процессе установки Xposed Framework может получиться так называемый boot loop - это когда система Android-x86 перестает загружаться и в процессе загрузки зависает на этапе отображения заставки с логотипом Android. Поэтому, прежде чем приступать к нижеописанным действиям, настоятельно рекомендую сделать резервную копию виртуальной машины. Проще всего это реализовать, сделав резервную копию .vdi-файла с установленной системой Android-x86 (не путать с VHD-файлом, который мы создавали для переноса файлов!). В случае если что-то пойдет не так и система выпадет в boot loop, будет достаточно восстановить .vdi-файл из резервной копии.
Первым делом скачиваем подходящую версию Xposed Framework. Поскольку данный проект более не поддерживается и его официальный сайт закрыт, скачивать будем из копии в Архиве Интернета
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
. Там нужно открыть папку sdk27, затем x86, после чего скачать файл xposed-v90-sdk27-x86-beta3.zipПотом заходим на
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
и скачиваем файл de.robv.android.xposed.installer_43.apkЗапускаем оснастку "Управление дисками" командой
mmc.exe diskmgmt.msc
как описывалось выше. В меню оснастки выбираем "Действие | Присоединить виртуальный жесткий диск". Находим VHD-файл с виртуальным жестким диском, отформатированным под FAT (который вы создавали ранее), и монтируем его. Далее заходим на этот виртуальный жесткий диск в любом файловом менеджере (например Total Commander или Far Manager). Создаем в корневом каталоге смонтированного виртуального диска папку с названием xposed, и распаковываем в нее содержимое файла xposed-v90-sdk27-x86-beta3.zip. После окончания распаковки там будет две папки, с названиями META-INF и system. Заходим в подпапку META-INF\com\google\android и копируем все файлы оттуда в папку \xposed. Далее возвращаемся в папку \xposed и редактируем файл flash-script.sh с помощью любого текстового редактора. Нужно перейти в конец файла, затем искать ближайшую к концу файла строку "exit 1" (весьма вероятно она будет на строке 194). Её нужно закомментировать, поставив перед ней #, так чтобы она выглядела как "# exit 1". Сохраняем отредактированный flash-script.sh
Ранее скачанный файл de.robv.android.xposed.installer_43.apk копируем в папку \apk2 на виртуальном жестком диске.
В итоге должно получиться примерно так (скриншоты из Far Manager):
Далее отсоединяем виртуальный жесткий диск (командой "Отсоединить виртуальный жесткий диск" в оснастке "Управление дисками", как описывалось выше). Запускаем виртуальную машину с Android-x86 в Debug mode. В консоли вводим команды:
cd /
mkdir /fat16
mount -t vfat /dev/sdb1 /fat16
ls /fat16/apk2
ls /fat16/xposed
Если все сделано правильно, в выводе предпоследней команды отобразится файл de.robv.android.xposed.installer_43.apk, а в выводе последней команды - подпапки META-INF и system и несколько файлов, включая flash-script.sh
Если все в порядке, далее вводим команды:
mount -o remount,rw /mnt
cd /mnt
ls
cd android-8.1-r6 (название может отличаться в других версиях Android-x86)
cd data/media/0
ls
cd Pictures
cp /fat16/apk2/de.robv.android.xposed.installer_43.apk ./
ls
cd ..
cp -r /fat16/xposed ./xposed
ls
После чего отмонтируем файловые системы и перезагружаем виртуальную машину:
cd /
umount /fat16
rmdir /fat16
umount /mnt
reboot -f
Ждем, пока Android-x86 загрузится в обычном режиме. Заходим в приложение "Файлы", там открываем внутренний носитель и заходим в папку Pictures. Делаем двойной щелчок по файлу de.robv.android.xposed.installer_43.apk и устанавливаем приложение Xposed Installer. По окончании установки запускаем это приложение, должно отобразиться, что Xposed Framework не установлен.
Закрываем приложение Xposed Installer, открываем окно терминала, запрашиваем права суперпользователя командой:
su
Выбираем "Только в этот раз" и жмем "Разрешить". Далее вводим команды:
cd /data/data/de.robv.android.xposed.installer
ls -l
В выводе будет присутствовать имя владельца файлов - строка вида u0_a71 (может немного отличаться). Запоминаем это имя. Далее, создаем подкаталог conf и устанавливаем на него права доступа:
mkdir conf
chmod 771 conf
chown u0_a71:u0_a71 conf (при необходимости заменить u0_a71 на актуальное имя владельца)
Далее вводим:
touch conf/jit_reset_offset
echo 148 > conf/jit_reset_offset
chmod 771 conf/jit_reset_offset
chown u0_a71:u0_a71 conf/jit_reset_offset (заменить u0_a71 на актуальное имя)
Затем вводим:
ls /storage/emulated/0
Если в выводе отобразятся папки Pictures и xposed, переходим в папку /storage/emulated/0/xposed :
cd /storage/emulated/0/xposed
Далее нужно запустить скрипт flash-script.sh :
sh flash-script.sh
Ждем окончания его работы, после чего вводим
exit
и закрываем терминал. Перезапускаем Android-x86, для этого в меню окна VirtualBox выбираем "Машина | Завершить работу"
и далее жмем "Перезапустить". Если все сделано правильно, перезагрузка будет длиться заметно дольше чем обычно, однако в конечном итоге отобразится рабочий стол Android-x86.
Открываем приложение Xposed Installer и видим, что Xposed Framework успешно установлен:
Сам по себе Xposed Framework не позволяет подменять IMEI и прочие идентификаторы, для этого нужно установить дополнительные модули. Один из простейших модулей, позволяющих это делать - Android Faker. Его можно найти на GitHub-е, однако последние версии Android Faker не работают с Xposed Framework (требуют наличия более поздних Lsposed либо Edxposed), поэтому скачиваем предыдущую версию по ссылке
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
в виде APK-файла.Установка Android Faker проводится полностью аналогично тому, как описывалось выше (установка NetGuard и APK-файла Xposed Installer): нужно запустить оснастку "Управление дисками", смонтировать VHD-образ с виртуальным жестким диском, скопировать на него скачанный APK-файл с Android Faker, отмонтировать VHD-образ, затем запустить Android-x86 в режиме Debug mode, в режиме командной строки скопировать APK-файл в папку data/media/0/Pictures, в той же командной строке отмонтировать файловые системы, перезагрузить Android-x86 и дать ему загрузиться в обычном режиме, затем в приложении "Файлы" найти APK-файл с Android Faker и установить его.
(!) Обращаю ваше внимание на то, что если установить APK-файл с Android Faker сразу, минуя установку Xposed Framework - то он установится, однако при запуске выдаст ошибку вида "Xposed Framework не установлен", и фактически не будет работать. Это справедливо и в отношении других APK-файлов с модулями для Xposed Framework.
Сразу после установки и запуска Android Faker отобразит, что модуль не активирован:
Запускаем приложение Xposed Installer, заходим в раздел "Установленные модули"
и включаем галочку напротив Android Faker:
Далее перезагружаем виртуальную машину с Android-x86, после чего запускаем приложение Android Faker. Теперь уже мы не увидим никаких сообщений об ошибках:
Для примера, попробуем установить фейковые IMEI:
Жмем SAVE, после чего запускаем приложение "Телефон", и вводим *#06# . В этот раз приложение "Телефон" не будет крашиться, а отобразит введенный нами фейковый IMEI:
Значительно более продвинутым функционалом обладает модуль Android Device Changer, его можно скачать по ссылке
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
. Установка производится полностью аналогично описанной выше установке Android Faker.У него есть преднастройки с идентификаторами реально существующих Android-смартфонов (правда, только устаревших моделей), а также мобильных операторов ряда стран, включая в том числе Россию и Украину.
Пробрасывание USB-вебкамеры в виртуальную машину Android-x86
Некоторые Android-приложения требуют доступ к видеокамере телефона, например чтобы отсканировать QR-код. Понятно, что виртуальная машина Android-x86 не является телефоном, и не имеет своей физически существующей камеры. Как быть в таком случае? Ниже я расскажу, как пробросить USB-вебкамеру в виртуальную машину Android-x86, так чтобы Android-приложения воспринимали ее как видеокамеру телефона.
Прежде всего нам понадобится вебкамера, подключаемая к компьютеру через USB, наподобие такой:
или такой:
Подключаем вебкамеру к компьютеру, при необходимости устанавливаем драйверы для нее. Далее, не отключая вебкамеру (!), запускаем Командную строку от имени администратора. Переходим в подкаталог, в котором установлен VirtualBox (это может быть C:\Program Files\Oracle\VirtualBox либо C:\Program Files\Whonix , в зависимости от используемой вами версии Whonix). Для этого используем команду вида cd <подкаталог>, например:
cd C:\Program Files\Whonix
После этого вводим:
dir *.exe
Если в выводе отобразятся файлы VirtualBox.exe и VBoxManage.exe, например так:
значит вы перешли в нужный подкаталог. В таком случае вводим:
VBoxManage.exe list webcams
Отобразится список подключенных вебкамер, например так:
В скриншоте выше .1 "Integrated Camera" - это встроенная вебкамера ноутбука, а .2 "iSlim 1300" - внешняя USB-вебкамера.
Для подключения вебкамеры к виртуальной машине с Android-x86, нужно запустить соответствующую виртуальную машину, и не дожидаясь загрузки Android-x86, приостановить загрузку на этапе вывода загрузочного меню, нажимая кнопки "вниз" и/или "вверх" на клавиатуре. Затем переключиться в Командную строку в хостовой системе, и ввести команду вида:
VBoxManage.exe controlvm <имя вирт.машины> webcam attach <идентификатор камеры>
например:
VBoxManage.exe controlvm "Android-x86-Rutor" webcam attach .2
после чего переключиться в виртуальную машину с Android-x86 и продолжить её загрузку в обычном режиме. После загрузки виртуальной машины, приложения в ней будут воспринимать USB-вебкамеру как камеру смартфона.
Для проверки, вы можете установить в виртуальной машине приложение Privacy Friendly QR Scanner
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
. Если все было сделано правильно, то после запуска данного приложения оно будет отображать картинку, которую снимает ваша USB-вебкамера.Подключение к сети Tor. Создание цепочки Tor -> VPN
Для того, чтобы виртуальная машина с Android-x86 могла подключиться к сети Tor, в VirtualBox, в настройках виртуальной машины, во вкладке "Сеть/Адаптер 1" должен быть выставлен тип подключения - Внутренняя сеть, и имя сети - Whonix. Проверьте это перед тем, как выполнять дальнейшие действия.
Запустите шлюз Whonix-Gateway, дождитесь, пока он подключится к сети Tor, и лишь после этого запускайте виртуальную машину с Android-x86. Обе виртуальные машины - Whonix-Gateway и Android-x86 - должны работать одновременно.
В виртуальной машине с Android-x86 нужно зайти в "Настройки / Сеть и Интернет / Wi-Fi", найти там сеть с названием VirtWifi, навести на нее курсор мыши, после чего нажать и удерживать левую кнопку мыши. Выскочит меню, в этом меню надо выбрать "Изменить сеть".
Далее нужно выбрать "Расширенные настройки", указать "Настройки IP" - "Пользовательские", и ввести следующие параметры: IP-адрес - 10.152.152.28 (можно указывать любое произвольное значение в пределах 10.152.152.12 ... 10.152.152.50), шлюз - 10.152.152.10, длина префикса сети - 18, DNS 1 - 10.152.152.10
после чего нажать "Сохранить". Теперь проверяем наличие доступа в Интернет и свой IP-адрес, для этого открываем браузер Chrome и заходим на сайт browserleaks.com/ip . Если все сделано правильно, отобразится IP-адрес выходной ноды Tor:
В некоторых случаях может потребоваться сокрыть факт использования вами Tor, для этого нужно выстраивать цепочку Tor -> VPN. В этом случае потребуется отключить фаервол NetGuard, так как, к сожалению, NetGuard не может работать одновременно с VPN-приложениями. При этом следует иметь в виду, что в случае отключения NetGuard, встроенные в Android-x86 сервисы Google начнут коннектиться к серверам Гугла, сливать на них телеметрию и скачивать обновления. Поэтому решайте сами, исходя из ваших задач, что для вас важнее - фаервол NetGuard либо цепочка Tor -> VPN.
Общий алгоритм следующий:
1. Подыскиваем подходящее VPN-приложение, скачиваем его в виде APK-файла и копируем в виртуальную машину с Android-x86 через командную строку в Debug mode. Но - пока не устанавливаем!
2. Загружаем виртуальную машину Android-x86 в обычном режиме. Запускаем приложение NetGuard, и отключаем его. Потом переходим в настройки Android-x86, в разделе "Сеть и Интернет / VPN", для NetGuard отключаем опцию "Постоянная VPN".
3. Открываем приложение "Файлы", находим APK-файл скачанного вами VPN-приложения, устанавливаем его, по окончании установки - запускаем. При необходимости - настраиваем.
4. Для проверки запускаем браузер Chrome и смотрим свой IP-адрес.
Для примера, я установил бесплатное приложение Riseup VPN, которое можно скачать по ссылке
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
, и включил его:Потом открыл браузер Chrome и зашел на сайт browserleaks.com/ip . Там отобразился IP-адрес VPN-сервера, который не детектился как выходная нода Tor:
Установка Android-приложений из Google Play
Как известно, Google Play не позволяет скачивать APK-файлы приложений штатными способами, и к тому же требует наличия Google-аккаунта, тем самым деаноня пользователя. Однако для установки приложений в виртуальной машине с Android-x86 нам непременно нужен APK-файл, по возможности скачанный анонимно. Как быть? Есть очень простой лайфхак: большинство приложений из Google Play можно скачать в виде APK-файлов на этих сайтах:
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
Пожалуйста Войдите или Зарегистрируйтесь чтобы видеть скрытые ссылки.
При скачивании нужно иметь в виду, что одни приложения доступны в универсальном виде для разных архитектур процессора, например:
тогда как другие есть в нескольких вариантах под разные архитектуры, например:
В таком случае нужно искать вариант для архитектуры x86 в виде APK, и скачивать именно его, например:
Варианты под другие архитектуры, например armeabi-v7a или arm64-v8a - не будут работать в виртуальной машине Android-x86. Также следует иметь в виду, что в виртуальной машине Android-x86 не получится установить файлы формата XAPK, независимо от процессорной архитектуры.
P.S. Вместо заключения.
Вовсе не обязательно выполнять все вышеописанные манипуляции. Намного лучше настраивать виртуальную машину Android-x86 с учетом конкретных задач, для которых она вам нужна. Например, если вам нужно зарегистрировать левый Telegram-аккаунт - можно не устанавливать Xposed Framework и не настраивать цепочку Tor -> VPN, такие меры будут излишними. И совсем другое дело, если вы планируете использовать какие-то приложения типа электронных кошельков - там будут желательны и подмена идентификаторов, и сокрытие факта использования Tor.