How anold20046/abdal-4iproto-client-android works
Abdal 4iProto Android is a Compose VPN client that routes device traffic through an SSH-based tunnel to the user’s server. The documented workflow is to configure/select a server, connect through Android’s VPN interface, and send captured traffic through the tunnel; optional capabilities include UDP, remote DNS, split tunneling, kill switch, reconnection, and logs. The README supports the product-level relationships below; most implementation files were not sampled, so internal calls and persistence wiring are not inferred.
Main entry points: AbdalVpnService.kt VPN Service · SshUdpTunnel.kt UDP Tunnel · MainActivity.kt App Entry · ServerManagementScreen.kt Server Management
Components 20
App and Settings
- App Entry
app/src/main/java/com/example/MainActivity.kt - Server Management
app/src/main/java/com/example/ui/screens/ServerManagementScreen.kt - Server Editor
app/src/main/java/com/example/ui/screens/AddServerScreen.kt - Advanced Settings
app/src/main/java/com/example/ui/screens/AdvancedSettingsScreen.kt - Per-App Split
app/src/main/java/com/example/ui/screens/PerAppSplitTunScreen.kt - Live Logs
app/src/main/java/com/example/ui/screens/LogScreen.kt
VPN Routing
- VPN Service
app/src/main/java/com/example/vpn/AbdalVpnService.kt - tun2socks Bridge
app/src/main/java/hev/sockstun/TProxyService.java - Fake DNS
app/src/main/java/com/example/vpn/FakeDnsResolver.kt
Tunnel Transport
- SOCKS Tunnel
app/src/main/java/com/example/vpn/HevSocksTunnel.kt - SSH SOCKS Proxy
app/src/main/java/com/example/vpn/SshSocksProxy.kt - UDP Tunnel
app/src/main/java/com/example/vpn/SshUdpTunnel.kt - UDP Channel Factory
app/src/main/java/com/jcraft/jsch/AbdalUdpChannelFactory.java
App State
- VPN State
app/src/main/java/com/example/vpn/VpnState.kt - App ViewModel
app/src/main/java/com/example/ui/AppViewModel.kt - Server Repository
app/src/main/java/com/example/data/ServerRepository.kt - Server Database
app/src/main/java/com/example/data/AppDatabase.kt
Other components
- User
- Android VPN
- 4iProto Server
Connections 19
- User → App Entry: uses
README.md - User → Server Management: manages servers
README.md - User → Server Editor: adds server
README.md - User → Advanced Settings: configures
README.md - User → Per-App Split: selects apps
README.md - User → Live Logs: views logs
README.md - App Entry → VPN Service: connects
README.md - Android VPN → VPN Service: provides VPN
README.md - VPN Service → tun2socks Bridge: bridges TUN
README.md - VPN Service → SOCKS Tunnel: routes traffic
README.md - SOCKS Tunnel → SSH SOCKS Proxy: forwards SOCKS
README.md - SSH SOCKS Proxy → 4iProto Server: tunnels via SSH
README.md - VPN Service → UDP Tunnel: supports UDP
README.md - UDP Tunnel → UDP Channel Factory: opens UDP channel
- UDP Tunnel → 4iProto Server: tunnels UDP
README.md - VPN Service → Fake DNS: supports remote DNS
README.md - Server Management → Server Repository: persists server data
- Server Repository → Server Database: uses storage
- VPN Service → VPN State: tracks state