Проблема F-Droid и reverse tethering gnirehtet#
Пользователи F-Droid, использующие gnirehtet для reverse tethering, сталкиваются с повторяющимся сценарием: интернет на устройстве работает, приложения устанавливаются, но обновление репозиториев блокируется состоянием «нет интернета». Часто восстановление происходит только после краткого включения мобильных данных и повторной проверки обновлений, после чего устройство возвращается в режим reverse tethering.
Что именно ломается в поведении F-Droid#
F-Droid некорректно интерпретирует наличие сети при работе через gnirehtet. HTTP-запросы для установки пакетов проходят, но механизм проверки обновлений считает соединение недоступным или нестабильным.
Gnirehtet создает туннель через ADB и перенаправляет трафик через хост (обычно ПК), формируя виртуальный сетевой интерфейс. Reverse tethering gnirehtet: инструмент маршрутизации трафика Android через компьютер без Wi-Fi и мобильной сети.
Почему это происходит на уровне сети и Android#
Проблема связана не с отсутствием интернета, а с несовпадением сигналов сетевой валидации.
Android использует ConnectivityManager, DNS и проверки captive portal для определения валидной сети. Gnirehtet изменяет сетевую топологию так, что:
- TCP/HTTP трафик проходит
- интерфейс может быть помечен как unvalidated
- F-Droid интерпретирует это как отсутствие интернета
Это типичный класс расхождений между control plane и data plane, встречающийся в VPN, корпоративных прокси и split-tunnel сценариях.
Справочно: https://github.com/Genymobile/gnirehtet
Что проверить#
Проверьте различие между фактической связностью и валидацией сети Android:
- DNS резолвинг работает через gnirehtet
- APK скачивается напрямую через браузер
- обновление репозиториев F-Droid зависает или не стартует
- краткое переключение на мобильные данные восстанавливает метаданные обновлений
Сравнение режимов сети#
| Режим | Установка | Обновления | Валидация ОС | Стабильность F-Droid |
|---|---|---|---|---|
| Wi-Fi | стабильно | стабильно | валидирована | высокая |
| Mobile data | стабильно | стабильно | валидирована | высокая |
| gnirehtet | стабильно | нестабильно | часто нет | средняя/низкая |
Практические последствия для дистрибуции open-source#
Reverse tethering выявляет слабое место систем распространения пакетов: они предполагают стандартные сетевые топологии. При виртуализации маршрута обновления деградируют, хотя транспорт работает нормально.
Это критично для сценариев, где F-Droid используется как доверенный источник: сбой обновлений может привести к использованию устаревших версий без явного уведомления.
Справка по связанным паттернам: https://gigatap.top/en/articles/openssfs-april-signal-make-security-artifacts-operational
FAQ#
Почему установка работает, а обновления нет?
Установка использует прямую загрузку пакетов, а обновления зависят от сетевой валидации Android.
Это проблема F-Droid?
Нет. Это несовпадение модели сети и механизмов проверки соединения.
Можно ли полностью исправить без модификации Android?
Только частично. Полное решение требует согласования сетевой валидации с виртуальными маршрутами gnirehtet.