# WireGuard TV Ein WireGuard VPN Client speziell entwickelt für Amazon Fire TV Stick mit vollständiger D-Pad Fernbedienungs-Navigation. ## Beschreibung WireGuard TV ermöglicht es, eine sichere VPN-Verbindung auf dem Amazon Fire TV Stick herzustellen. Die App ist vollständig für die Bedienung mit der Fire TV Fernbedienung optimiert und bietet eine intuitive Leanback-Oberfläche. ### Features - **D-Pad Navigation** - Vollständig mit Fire TV Fernbedienung bedienbar - **Web-Interface** - Configs per Browser vom Smartphone oder PC hochladen und verwalten - **Datei-Import** - .conf Dateien vom lokalen Speicher importieren (per ADB übertragen) - **Auto-Connect** - Automatische Verbindung beim Gerätestart (pro Tunnel konfigurierbar) - **Geo-Location Anzeige** - Zeigt aktuelle öffentliche IP mit Land und Flagge an - **Status Anzeige** - RX/TX Bytes, Verbindungsstatus in Echtzeit - **Web-Server Autostart** - Optional Server beim Gerätestart automatisch starten - **Passwortschutz** - Web-Interface kann mit Passwort geschützt werden - **Kill Switch** - Internet blockieren wenn VPN getrennt (in Einstellungen) --- ## Installation ### Voraussetzungen - Amazon Fire TV Stick (1. Generation oder neuer) - Computer mit ADB (Android Debug Bridge) - Beide Geräte im selben Netzwerk ### Fire TV für ADB vorbereiten 1. **Entwickleroptionen aktivieren:** - Einstellungen > Mein Fire TV > Info - 7x auf "Fire TV Stick" klicken bis "Du bist jetzt Entwickler" erscheint 2. **ADB aktivieren:** - Einstellungen > Mein Fire TV > Entwickleroptionen - "ADB-Debugging" aktivieren - "Apps aus unbekannten Quellen" aktivieren 3. **IP-Adresse herausfinden:** - Einstellungen > Mein Fire TV > Info > Netzwerk - IP-Adresse notieren (z.B. 192.168.1.100) ### ADB installieren ```bash # Debian/Ubuntu sudo apt install adb # Fedora sudo dnf install android-tools # Arch Linux sudo pacman -S android-tools ``` ### App installieren ```bash # Mit Fire TV verbinden adb connect 192.168.1.100:5555 # Beim ersten Mal: Auf dem TV "Erlauben" wählen und "Immer von diesem Computer erlauben" anhaken # Verbindung prüfen adb devices # App installieren adb install wireguard-tv.apk # Oder bei Update: adb install -r wireguard-tv.apk ``` --- ## Benutzung ### WireGuard-Konfiguration hinzufügen #### Methode 1: Web-Upload (empfohlen) Der einfachste Weg - funktioniert mit jedem Gerät im gleichen Netzwerk: 1. In WireGuard TV App: **"Web-Upload"** wählen und Server starten 2. Die angezeigte URL (z.B. `http://192.168.1.100:8080`) im Browser öffnen 3. Im Tab **"Config hochladen"**: - .conf Datei auswählen ODER Config-Text direkt einfügen - Namen vergeben und hochladen 4. Der Tunnel erscheint sofort in der App **Web-Interface Features:** - Tunnel verwalten (Verbinden, Trennen, Löschen, Bearbeiten) - Autostart pro Tunnel aktivieren/deaktivieren - Geo-Location Anzeige (IP, Land, Stadt) - Server-Einstellungen (Port, Passwort, Autostart) #### Methode 2: Datei-Import (via ADB) 1. Config-Datei per ADB übertragen: ```bash adb push meine-config.conf /sdcard/Download/ ``` 2. In WireGuard TV App: **"Datei importieren"** wählen 3. Die Datei aus der Liste auswählen **Unterstützte Pfade:** - `/sdcard/Download/` - `/sdcard/WireGuard/` - `/sdcard/wireguard/` #### Methode 3: Manuell eingeben 1. **"Tunnel hinzufügen"** wählen 2. Alle Felder manuell ausfüllen (Private Key, Addresses, Public Key, Endpoint, etc.) ### Tunnel verbinden - Tunnel mit D-Pad auswählen - Enter/OK drücken - **"Verbinden"** wählen ### Autostart aktivieren 1. Tunnel mit D-Pad auswählen und Enter drücken 2. **"Autostart beim Boot"** aktivieren 3. Der Tunnel verbindet sich automatisch beim Gerätestart **Hinweis:** Beim ersten Aktivieren wird der Tunnel sofort verbunden, damit die VPN-Berechtigung erteilt wird (erforderlich für Autostart). ### Tastenkürzel | Taste | Funktion | |-------|----------| | Enter/OK | Tunnel-Aktionen öffnen | | Zurück | Navigation zurück | | D-Pad | Zwischen Elementen navigieren | --- ## Web-Interface Das integrierte Web-Interface ermöglicht die komfortable Verwaltung vom Smartphone oder PC aus. ### Server starten 1. In der App: **"Web-Upload"** > **"Server starten"** 2. URL wird angezeigt (z.B. `http://192.168.1.100:8080`) 3. URL im Browser öffnen ### Tabs - **Tunnel verwalten** - Alle Tunnel anzeigen, verbinden, trennen, löschen, Autostart - **Config hochladen** - Neue Konfiguration per Datei oder Text hinzufügen - **Einstellungen** - Server-Port, Passwort, Autostart konfigurieren ### Einstellungen - **Port** - Standard: 8080 (änderbar) - **Passwortschutz** - Optional, schützt das Web-Interface - **Server-Autostart** - Server automatisch beim Gerätestart starten --- ## Projekt-Struktur ``` wireguard-tv/ ├── app/ # Fire TV App │ └── src/main/ │ ├── java/.../ │ │ ├── ui/ # Activities, Fragments, Presenter │ │ ├── vpn/ # WireGuard Tunnel Service │ │ ├── web/ # HTTP Server & Web-Interface │ │ ├── data/ # Repository, Settings (DataStore) │ │ ├── model/ # Data Classes │ │ ├── receiver/ # Boot Receiver │ │ ├── tile/ # Quick Settings Tile │ │ └── util/ # Hilfsklassen (IpGeoService) │ └── res/ # Layouts, Drawables, Values │ ├── build.gradle # Root Build Config └── settings.gradle # Projekt-Einstellungen ``` --- ## Build (für Entwickler) ### Voraussetzungen - Android Studio Hedgehog (2023.1.1) oder neuer - JDK 17 - Android SDK 34 ### Android Studio installieren ```bash # Flatpak (empfohlen) flatpak install flathub com.google.AndroidStudio flatpak run com.google.AndroidStudio # Oder Snap sudo snap install android-studio --classic ``` ### Bauen **Mit Android Studio:** 1. Projekt öffnen (File > Open) 2. Gradle Sync abwarten 3. Build > Build Bundle(s) / APK(s) > Build APK(s) **Mit Kommandozeile:** ```bash # Debug Build ./gradlew assembleDebug # Release Build ./gradlew assembleRelease # APK Speicherort ls -la app/build/outputs/apk/debug/app-debug.apk ``` --- ## Debugging ### ADB Verbindung ```bash # Verbinden adb connect 192.168.1.100:5555 # Verbindung prüfen adb devices # Trennen adb disconnect 192.168.1.100:5555 # ADB Server neu starten (bei Problemen) adb kill-server && adb start-server ``` ### Logs anzeigen ```bash # Live Log der WireGuard TV App adb logcat -s WireGuardTV:* AndroidRuntime:E # Nur Crash-Logs adb logcat -s AndroidRuntime:E # Log in Datei speichern adb logcat -d > debug.log # Log leeren (vor Test) adb logcat -c # Boot-Logs prüfen (für Autostart-Debugging) adb logcat -s BootReceiver:* WireGuardTV:* ``` ### App neu installieren ```bash # Deinstallieren adb uninstall de.hackernet.wireguardtv # Neu installieren adb install app/build/outputs/apk/debug/app-debug.apk ``` ### Häufige Probleme **"Offline" bei `adb devices`:** ```bash adb disconnect adb kill-server adb start-server adb connect 192.168.1.100:5555 ``` **App-Update schlägt fehl:** ```bash adb uninstall de.hackernet.wireguardtv adb install app-debug.apk ``` **VPN-Berechtigung fehlt:** - VPN manuell einmal verbinden - Berechtigung wird automatisch angefragt --- ## Technische Details | Eigenschaft | Wert | |-------------|------| | Min SDK | 22 (Android 5.1, Fire TV Stick 1. Gen) | | Target SDK | 34 (Android 14) | | WireGuard Backend | wireguard-android Tunnel Library | | UI Framework | AndroidX Leanback | | Datenspeicherung | Jetpack DataStore | | Web Server | Embedded HTTP Server | | Geo-Location | ip-api.com (kostenlos) | --- ## Sicherheitshinweise - Der Web-Server ist nur im **lokalen Netzwerk** erreichbar - **Passwortschutz** für das Web-Interface wird empfohlen - Der Server startet **nicht automatisch** (optional aktivierbar) - Configs werden **verschlüsselt** im App-internen Speicher gespeichert - HTTP-Verbindung zu ip-api.com ist explizit erlaubt (für Geo-Location) --- ## Lizenz MIT License - siehe LICENSE Datei --- ## Autor **HackerSoft - HACKER-NET Telekommunikation** Website: [HACKER-NET.DE](https://hacker-net.de)