Сбои F-Droid при gnirehtet: почему обновления пропадают

Reverse tethering через gnirehtet ломает обновления F-Droid: интернет есть, но проверка сети блокирует синхронизацию репозиториев

2026-06-13 GIGATAP Team #tools
#f-droid#reverse-tethering#android-networking

Проблема 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.