335 lines
8.2 KiB
Markdown
335 lines
8.2 KiB
Markdown
# 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)
|