Türkiye için hafif, kararlı ve sade bir DPI atlatma uygulaması. GoodbyeDPI UI 2.x'in yerine sıfırdan, Rust ile yazıldı; kendi DPI motorunu kullanır.
- Neredeyse sıfır kaynak: motor hizmeti ~1 MB, tepsi ~2 MB, pencere açıkken ~5 MB bellek; boşta işlemci kullanmaz. Pencere kapanınca süreç tamamen bellekten çıkar.
- Motor bir Windows hizmeti: arayüz kapalıyken de korur, çökerse kendiliğinden yeniden başlar ve trafik hiçbir zaman kesilmez (fail-open).
- Akıllı liste: yalnızca engelli sitelere uygulanır; açılmayan siteleri kendiliğinden öğrenir.
- Şifreli DNS (DoH/DoT): ağ ayarlarına dokunmadan; ulaşılamazsa sistem DNS'ine döner.
- İnternet sağlayıcısına özel hazır yöntemler (Türk Telekom, Superonline, Vodafone, TürkNet, Kablonet ve mobil hatlar), özel DNS, istisna listesi, eski sürüm ayarlarını otomatik aktarma.
- Otomatik güncelleme: yeni sürümler bu depodaki Releases sayfasından gelir; paket yalnızca imzası doğrulanırsa kurulur.
- Türkçe ve İngilizce: varsayılan olarak Windows'un dilini kullanır; Ayarlar → Görünüm'den değiştirilebilir. Available in English: Settings → Appearance → Language.
Releases sayfasından en son
DPI-UI-Setup.exe dosyasını indirip çalıştırın. Kurulum yönetici izni ister (WinDivert
sürücüsü ve motor hizmeti için); sonrasında uygulama normal kullanıcı olarak çalışır.
Terminal'de tek komut (Apple Silicon ve Intel, macOS 11+):
curl -fsSL https://raw.githubusercontent.com/unsalable/dpi-ui/main/installer/mac/install.sh | bashEn yeni Mac paketini indirir, SHA-256'sını yayındaki manifestle karşılaştırır, Uygulamalar'a kurar
ve açar. Tarayıcıyla indirilmediği için macOS'un "doğrulanamadı" uyarısı çıkmaz (ücretli Apple
geliştirici imzası olmadan uyarıyı kaldırmanın yolu bu). Alternatif:
Releases sayfasındaki DPI-UI-Mac.dmg; o zaman ilk
açılışta Sistem Ayarları → Gizlilik ve Güvenlik → Yine de Aç bir kez gerekir. Ayrıntılı kurulum
notu: installer/mac/RELEASE_NOTES.md.
Mac'te paket sürücüsü (WinDivert) olmadığı için motor farklıdır: uygulama yerel bir proxy açar,
sistem proxy ayarını (PAC) yalnızca listedeki siteler için ona yönlendirir ve siteye giden ilk
mesajı böler (TLS kaydı bölme, ters sıra). Yönetici şifresi gerekmez; bağlantı kesilince ayar eski
hâline döner. Hangi yöntemin çalıştığı Ayarlar → Bağlantı yöntemi → En iyi yöntemi bul ile o
hatta denenir. Paket ve testler GitHub'ın Mac makinelerinde üretilir (.github/workflows/mac.yml).
Mac'te güncellemeler de Windows'taki imza zinciriyle gelir: yayına DPI-UI-Mac.zip ve imzalı
update-mac.json eklenir; uygulama paketi yalnızca imza ve SHA-256 tutarsa indirir, kendi
kapanınca yeni DPI UI.app'i eskisinin yerine koyar ve yeniden açılır (yönetici şifresi
gerekmez). release.ps1 yayından sonra Mac paketini bekleyip yerel anahtarla imzalar
(release-mac.ps1).
Releases sayfasından DPI-UI-Android.apk dosyasını
telefona indirip açın (Android 8 ve üstü, 64-bit). İlk kurulumda Android "bilinmeyen uygulamalar"
iznini bir kez sorar. Arayüz bilgisayardakiyle aynıdır; ilk bağlanışta Android VPN iznini sorar.
Telefonda paket sürücüsü olmadığı için motor Mac'tekiyle aynıdır: uygulama bir VPN arayüzü açar,
telefonun trafiği bu arayüzden uygulamanın içindeki yerel proxy'ye gelir; proxy yalnızca listedeki
sitelere giden ilk mesajı böler (TLS kaydı bölme), gerisini olduğu gibi geçirir. Trafik hiçbir
sunucuya gönderilmez; "VPN" yalnızca Android'in trafiği uygulamaya vermesinin yoludur. UDP (oyunlar,
sesli görüşme) dokunulmadan geçer. Bağlıyken bildirimde yöntem ve DNS görünür, "Bağlantıyı kes"
oradadır; bildirim panelindeki DPI UI hızlı ayarı tek dokunuşla bağlar/keser. "Telefon açılınca
başlat" açıksa telefon açılınca kendiliğinden bağlanır. Güncellemeler aynı imza zinciriyle gelir:
uygulama imzalı update-android.json'u ve APK'nin SHA-256'sını doğrular, kurulumu Android'in paket
yükleyicisi yapar (Android 12+'da ilk güncellemeden sonra onay sormadan).
Motor hizmeti Windows açılınca, oturum açılınca, uygulama açılınca ve altı saatte bir bu deponun sürümlerine bakar (ağ henüz hazır değilse 2, 5, 15, 30 dakika sonra yeniden dener). Yeni sürüm varsa kurulum paketini indirir ve şu zinciri doğrular:
update.json(sürüm, boyut, SHA-256) uygulamaya gömülü Ed25519 açık anahtarıyla imzalı olmalı,- manifestteki sürüm yayın etiketiyle aynı ve yüklü sürümden yeni olmalı,
- indirilen paketin boyutu ve SHA-256'sı manifestle birebir eşleşmeli.
Paket yalnızca SYSTEM'in yazabildiği bir klasörde durur ve kurulumu motor hizmeti sessizce yapar: Windows onay (UAC) sormaz, ekranda kurulum penceresi açılmaz. Açık pencere ve tepsi simgesi kurulumdan önce kapanır; kurulum bitince yeni hizmet onları kullanıcının oturumunda, kullanıcının kendi yetkisiyle yeniden açar. Kurulum tutmazsa eski hizmet geri gelir ve o sürüm otomatik olarak yeniden denenmez. Ayarlardan "Güncellemeleri otomatik yükle" kapatılırsa kurulum Hakkında sayfasından elle başlatılır (yine onay sorulmaz). 3.0.3 ve öncesinden yükseltirken Windows son bir kez onay ister.
Gereksinimler: Rust (MSVC), Visual Studio C++ araçları, Inno Setup 6.
cargo test --workspace
powershell -ExecutionPolicy Bypass -File publish.ps1 # -> build\DPI-UI-Setup.exeAndroid paketi (Android SDK, NDK, JDK 17 ve cargo install cargo-ndk gerekir):
powershell -ExecutionPolicy Bypass -File build-android.ps1 # -> build\DPI-UI-Android.apk
powershell -ExecutionPolicy Bypass -File build-android.ps1 -Debug # emülatör için hızlı deneme paketiAndroid kodu: apps/mobile (Rust; masaüstü arayüz kodunu ortak kullanır, kök ekran
apps/ui/ui/mobile.slint) ve apps/android (VPN hizmeti, bildirim, açılış alıcısı, hızlı ayar).
Telefon arayüzünün testleri de bilgisayarda çalışır: cargo test -p dpi-ui-mobile.
Arayüz testleri pencere açmadan bellekte çizer; GDPI3_SHOTS=<klasör> verilirse her sayfanın ve
bağlanma animasyonunun ekran görüntülerini PNG olarak yazar. Pencere/tepsi kapanma senaryoları:
powershell -ExecutionPolicy Bypass -File perf\quit-test.ps1 -Exe target\release\GoodbyeDPI3.exe
powershell -ExecutionPolicy Bypass -File perf\tray-menu-test.ps1 -Exe target\release\GoodbyeDPI3.exe
powershell -ExecutionPolicy Bypass -File perf\repaint-test.ps1 -Exe target\release\GoodbyeDPI3.exe
powershell -ExecutionPolicy Bypass -File perf\minimize-test.ps1 -Exe target\release\GoodbyeDPI3.exe
powershell -ExecutionPolicy Bypass -File perf\tray-cursor-test.ps1 -Exe target\release\GoodbyeDPI3.exe
powershell -ExecutionPolicy Bypass -File perf\update-close-test.ps1 -Exe target\release\GoodbyeDPI3.exe -WindowGüncelleme denetimi (yönetici gerekmez; indirir ve doğrular, kurmaz):
target\release\GoodbyeDPI3-Service.exe --check-update --as-version 3.0.0-rc.1Canlı motor testi (yönetici terminali, uygulamada bağlantı kesikken):
& "C:\Program Files\DPI UI\GoodbyeDPI3-Service.exe" --probe
& "C:\Program Files\DPI UI\GoodbyeDPI3-Service.exe" --dns-benchİmza anahtarı depoda değildir; yalnızca yayın yapan bilgisayarda
(%USERPROFILE%\.dpi-ui\release-signing.pk8) durur. Android paketinin imza anahtarı da orada
(android-release.jks ve şifresi android-release.pass); kaybolursa yüklü Android uygulamaları yeni
sürümü kabul etmez. release.ps1 Windows yayınından sonra APK'yi derleyip yayına ekler
(release-android.ps1, -NoAndroid ile atlanır).
powershell -ExecutionPolicy Bypass -File release.ps1 -Version 3.0.1 -Bump -Notes "Değişiklikler"MIT. Üçüncü taraf bileşenler ve lisansları: THIRD_PARTY_NOTICES.md. Paket yakalama: WinDivert (LGPL-3.0). DPI atlatma teknikleri GoodbyeDPI ve zapret projelerinin yayımladığı yöntemlere dayanır.