Skip to content

Android v0.1.0 — первый публичный клиент

Choose a tag to compare

@fafnirov fafnirov released this 26 May 20:46

Первый Android-релиз KaproVPN. Нативный Kotlin+Compose поверх Xray-core
(через libv2ray) + системного VpnService + hev-socks5-tunnel как
tun2socks-моста. ~30 итераций после Phase 1; этот тег фиксирует то, что
готово к раздаче знакомым и в Telegram.

Подключение и протоколы:

  • 🌐 VLESS (включая REALITY), VMess, Trojan, Shadowsocks (SIP002 +
    legacy), Hysteria2 — те же share-URL что работают на десктопе.
  • 🔌 Полноценный системный VPN через VpnService — не proxy-only режим,
    весь трафик идёт через туннель.
  • 🧭 Split-routing — 168 RU-доменов из общего default_sites.json
    (банки, госуслуги, маркетплейсы) идут напрямую мимо VPN.
  • 📵 Per-app VPN — можно исключить отдельные приложения (банковские
    клиенты блочат VPN-IP, у Telegram свой anti-DPI работает лучше).
  • 🔄 Auto-reconnect on app launch + on device boot.

DNS и приватность:

  • 🛡 4 DNS-опции: System / AdGuard (ad-block, ~10k доменов в blackhole) /
    Cloudflare / Quad9 — каждая со своими DoH-серверами.
  • 🚫 DNS-leak hardening — публичные резолверы и UDP/TCP port 53
    forced-direct, log.access: none.
  • 🔒 configs.json шифруется AES-256-GCM через Android Keystore.
    Старые plain-конфиги мигрируются прозрачно.

Серверы:

  • 📥 Импорт подписки (plain / base64 / URL-safe base64) + автообновление
    через WorkManager раз в 12 часов.
  • 📷 QR-сканер для добавления share-URL — CameraX + ML Kit bundled
    (без Google Play Services). Включая работу на устройствах без GMS
    (Huawei, прошивки, AOSP).
  • 📤 QR-share + Copy + Send-sheet — на каждом сервере. Закрывает
    цикл «телефон-в-телефон» с QR-сканером.
  • ✏️ In-place edit конфига (rename + URL update) с сохранением
    active-флага и ping-кэша.
  • 🏓 Per-config latency-ping с colour-coded badge.

Системная интеграция:

  • 🔔 Foreground notification с live-state и кнопкой «Отключить».
  • ⚡ Quick Settings tile — один тап toggle'ит VPN.
  • 🛡 Always-on VPN compatible — поднимается с null-intent,
    graceful onRevoke().
  • 📊 Live traffic stats на главном экране — ↓↑ totals за сессию +
    текущая скорость, опрос libv2ray queryStats раз в секунду.

Локализация и качество:

  • 🇷🇺🇬🇧 i18n RU/EN — переключается по системной локали.
  • ✅ 36 юнит-тестов на парсер, конфиг-билдер и подписки.
  • 📦 Release pipeline: R8 + ABI splits (arm64/armv7/x86_64/x86 +
    universal). Каждый ABI-APK ~40-44 МБ — лезет в Telegram (50 МБ лимит).
  • 🧱 16 KB ELF page alignment во всех нативных .so — приложение
    работает нативно на Pixel 8+ и Android 15+ без compatibility-mode.

Что НЕ работает:

  • WireGuard не поддерживается (вырезан из десктопа в v1.4.0, не
    переносим — для WG используй официальный клиент).
  • iOS — отложено пока нет Apple Developer аккаунта ($99/год, без
    него VPN-extension не подписать).