Строгая проверка источника проверяет владельца TCP/UDP-трафика перед передачей. Включается в Настройки → Раздельное туннелирование на Android 10+. По умолчанию выключена, применяется при переподключении и остаётся на устройстве: экспорт и подписки не могут её включить. При выключенной опции прежний нативный путь не содержит запросов UID, кешей проверки и дополнительных проверок пакетов.
Оба уровня проверяют владельца TCP один раз при создании соединения, включая прямой выход в LAN. Это может задержать установление соединения, но повторных проверок на TCP-данных нет. UDP, включая DNS, проверяется при создании потока и далее по выбранному уровню:
| Уровень | Проверки исходящего UDP | Компромисс |
|---|---|---|
| Стандартный (первоначальный выбор) | Первая датаграмма после каждого фиксированного интервала 1 секунду | Меньше запросов Android API; устаревшее разрешение может действовать до 1 секунды |
| Расширенный | Каждая датаграмма | Быстрее обнаруживает смену владельца; больше нагрузка и задержка |
Стандартный уровень кеширует разрешение только для живого потока, а не для других адресатов или следующих потоков. Попадания в кеш не продлевают срок. После истечения срока следующая датаграмма требует новой проверки; при отказе поток закрывается. Стандартный уровень не равнозначен расширенному по защите. Ни один не делает запрос владельца и передачу атомарной операцией ядра.
Неизвестный владелец и ошибка API при проверке блокируются. При раздельной маршрутизации разрешены только выбранные UID; в глобальном режиме требуется определимый владелец. Приложения с общим UID неразличимы. Оба уровня могут мешать трафику без определимого владельца, например раздаче интернета. Прямого обхода отказа нет. Запросы идут вне общего цикла TUN: не более 64 одновременных допусков и 8 запросов Android/JNI для активных и завершающихся сеансов; превышение лимита блокируется.
Оба уровня блокируют Echo (ping) IPv4/IPv6 в TUN, фрагментированный ICMP и IPv6-фрагменты с неопределимым транспортом. Обычные ошибки ICMP обрабатываются штатно; ICMP физического соединения не затрагивается. TCP/HTTP-диагностика продолжает работать.
Видимость VPN показывает действующий уровень и необходимость переподключения, а не только сохранённую настройку. Это статус сеанса, не тест атаки из другого приложения; он не скрывает VPN-интерфейсы и другие системные признаки VPN. Смена уровня тоже требует переподключения. Ранее включённая опция без уровня сохраняет расширенный режим; при первом включении выбирается стандартный.