# Настроить скрытие Скрытие настраивается на приложении, **от которого** вы прячете VPN, — банк, госуслуги, маркетплейс. Само VPN-приложение здесь настраивать не нужно: оно то, что прячут. Спешите? Сразу перейдите к [четырём ролям](#четыре-роли). > Пример: чтобы банковское приложение не видело VPN, роли ниже ставятся **на > банк**. VPN-клиент (например, WireGuard) настраивается отдельно — в списке > скрываемых VPN-приложений. ## Частые ситуации ### Приложение обнаруживает VPN Дайте этому приложению роли **Java** и **Native**. Java закрывает VPN-сигналы, которые Android отдаёт приложениям через свои Java-API; Native — то, что видно через ядро или libc. Большинство детекторов ловится одной из двух ролей, поэтому надёжнее включить обе. Исключение: если активный Native-бэкенд — **Zygisk**, и банковское или платёжное приложение перестало открываться после включения Native, отключите Native для него и полагайтесь на Java — Zygisk работает внутри процесса приложения, и часть таких приложений это замечает. Это снижает покрытие и не гарантирует работу приложения; kernel-бэкенд (kmod / KPM), если устройство его поддерживает, такой проблемы лишён. ### Приложение ищет установленный VPN-клиент Некоторые приложения не проверяют соединение — они читают список установленных пакетов и отказываются работать, если находят знакомый VPN. Включите роль **Apps** у того приложения, которое сканирует, и убедитесь, что ваш VPN-клиент есть в списке скрываемых (**Настройки → «Скрытие VPN-приложений»**, или [открыть сейчас](vpnhide://hidden-apps)). Большинство VPN-клиентов VPN Hide находит сам; можно добавить и вручную. ### Приложение проверяет локальные порты Часть приложений ищет VPN- или прокси-демон, слушающий на localhost. Роль **Ports** делает такие порты закрытыми для этого приложения. По умолчанию скрываются все localhost-порты; в настройках приложения можно ограничиться конкретными диапазонами. ### Когда применяются изменения? После нажатия **Сохранить**: Java, бэкенды уровня ядра и правила портов применяются сразу. Перезапуска процесса требуют только Zygisk-хуки — они загружаются внутрь целевого приложения, поэтому его нужно принудительно остановить и открыть заново. И в любом случае приложение, уже выполнявшее проверку, может держать старый результат в кеше — перезапустите его перед повторной проверкой. ### Всё настроено, но VPN всё равно определяется Откройте [Диагностику](vpnhide://diagnostics) и запустите проверки. Они проверяют скрытие самого VPN Hide, а не поведение конкретного приложения: успешный результат означает, что слои работают, — но приложение всё ещё может отказывать по своим причинам (серверная проверка, сканирование установленных приложений, которое вы не закрыли, кешированный результат). Если приложение всё равно не работает, пройдите по шагам: - Проверьте, что роли стоят на нужном приложении — на том, **от которого** прячете, а не на VPN-клиенте, — и в нужном профиле. - Нажмите **Сохранить**, затем принудительно остановите и откройте приложение заново, чтобы оно проверило снова. - Убедитесь, что трафик приложения идёт туда, куда вы ожидаете (напрямую или через туннель). - Если приложение ищет установленный VPN-клиент, включите для него **Apps** и скройте клиент. - Не помогло? Соберите отчёт для диагностики в разделе Диагностики. Если после изменения пропала сеть или приложение вылетает — отмените последнее изменение и по одному проверьте **Ports** и **Native**; не считайте, что виноват split tunneling. ## Четыре роли Ставятся на приложение, от которого вы прячетесь: - **Java** — скрывает VPN-сигналы в Java-API Android (NetworkCapabilities, NetworkInfo, LinkProperties). - **Native** — скрывает VPN-сигналы, видимые через ядро или libc, в том числе список сетевых интерфейсов. VPN Hide хранит один выбор Native; работает только активный бэкенд. - **Apps** — отдаёт приложению очищенный список установленных пакетов, чтобы оно не видело VPN-клиенты, которые вы пометили скрытыми. - **Ports** — делает localhost-порты VPN/прокси закрытыми для приложения. Для Java, Native и Ports можно нажать значок настройки рядом с ролью и выбрать отдельные хуки или диапазоны портов для этого приложения. **\*** означает, что у приложения есть индивидуальные настройки хуков. Готовы? [Откройте вкладку «Скрытие»](vpnhide://hiding) и выберите приложение. ## Строка приложения, плашки ролей и отдельные хуки Нажатие на невыбранную строку включает Java и Apps, а также Native и Ports, если соответствующие компоненты установлены. Нажатие на строку, где выбрана хотя бы одна роль, снимает роли. Чтобы изменить только один слой, нажимайте его плашку. Нажатие на всю строку также возвращает Java/Native-хуки к настройкам по умолчанию; для сохранения индивидуального выбора используйте плашки. После изменений нужен **Save**. Оставляйте выбор хуков по умолчанию, если не разбираете конкретную проблему. Отключение хука уменьшает покрытие, а не делает скрытие сильнее. Индивидуальные настройки Native для ядерных бэкендов и Zygisk хранятся отдельно: проверьте их при смене бэкенда. Диапазоны Ports — отдельная политика. ## Автоматическое и ручное скрытие пакетов Откройте [Скрытие VPN-приложений](vpnhide://hidden-apps). Здесь выбирается, **какие пакеты скрывать**; наблюдателю всё равно нужны роль **Apps** и работающие хуки LSPosed. - **Auto:** пакет найден по объявлению Android VpnService. Это обнаружение пакета, а не свидетельство включённого VPN. - **Совпадение имени:** дополнительная, менее надёжная эвристика по VPN в названии; по умолчанию выключена и может ошибаться. - **Manual:** пакет, который вы явно выбрали скрывать. - **Excluded:** исключение из автоматического скрытия после ошибочного совпадения. Снятие отметки убирает ручное скрытие, а при автоматическом совпадении добавляет исключение. Повторное включение отметки снимает исключение. Список скрываемых пакетов общий для всех наблюдателей с Apps. После применения перезапустите цель и проверьте её. Для одного ложного совпадения используйте исключение, а не отключайте автоматическое обнаружение для всех.