
Size
48.67 MB
Android
8.0+
Downloads
22
Architecture
arm64-v8a
Security Scan
Verified Safe
✓ Scanned with ClamAV, APKiD, and Quark-Engine
What's New
https://github.com/GlassOnTin/Haven/compare/v4.17.0...v4.18.0/
Description
Haven is an open-source SSH, VNC, RDP, and SFTP client for Android.
Features
Terminal: VT100/xterm terminal emulator with multi-tab sessions, Mosh (Mobile Shell) for roaming connections, and Eternal Terminal (ET) for persistent sessions, both implemented in pure Kotlin protocol code with no native binaries. Automatic tmux/zellij/screen attachment with session restoration, tab reordering via long-press menu, color-coded tabs matched to connection profiles, mouse mode for TUI apps, a configurable keyboard toolbar (Esc, Tab, Ctrl, Alt, AltGr, arrows with key repeat), text selection with copy and open URL actions, configurable font size, and six color schemes.
Desktop (VNC): remote desktop viewer with RFB 3.8 support. Pinch-to-zoom, two-finger panning and scrolling, one-finger dragging for window management, and a virtual keyboard with X11 KeySym mapping. Full-screen mode with a NoMachine-style corner hot spot for session controls. Connect directly or through SSH tunneling. Supports Raw, CopyRect, RRE, Hextile, and ZLib encodings.
Native Wayland Desktop: GPU-accelerated Wayland compositor (labwc) running natively inside Haven. Fully interactive terminal with keyboard input, mouse interaction, server-side window decorations, pinch-to-zoom, and full-screen mode with corner overlay menus. The GPU pipeline renders through GLES2 on the device GPU (AHardwareBuffer allocator, zero-copy presentation via ASurfaceControl). Native Wayland clients can render 3D content; it includes a built-in GLES2 benchmark (a rotating lit cube at 60 fps on Mali-G715). Configurable shell (/bin/sh, bash, zsh, fish) and a shared keyboard toolbar (Esc, Tab, Ctrl, Alt, arrows, function keys). External Wayland clients can connect via Shizuku, which symlinks the socket to /data/local/tmp/haven-wayland/. No root required: it runs in PRoot with an Alpine Linux rootfs.
Local Desktop (X11): a local desktop running on the device through PRoot. Choose Xfce4 or Openbox with X11/Xvnc. For Wayland, use the Native Wayland desktop above.
Desktop (RDP): Remote Desktop Protocol client based on IronRDP through UniFFI Kotlin bindings. Connects to Windows Remote Desktop, xrdp on Linux, and GNOME Remote Desktop. Includes pinch-to-zoom, panning, scancode-based keyboard input, and mouse input. SSH tunnel support with automatic connection via saved SSH profiles. Saved connection profiles with optional stored passwords.
Files: unified file browser with SFTP, SMB, and cloud storage tabs. Browse remote directories, upload files or entire folders, download, delete, create directories, copy paths, toggle hidden files, and sort by name, size, or date. Copy and move across file systems: transfer files between any backend, for example Google Drive to an SFTP server, using a clipboard-like model: long-press, Copy/Cut, switch tabs, Paste. Conflict resolution for existing files (skip/replace). Path preservation when switching between tabs.
Cloud Storage: browse, upload, download, and manage files across more than 60 cloud providers through rclone, including Google Drive, Dropbox, OneDrive, Amazon S3, Backblaze B2, and more. OAuth authentication with automatic browser flow. Server-side copies between cloud remotes with no temporary local files required.
SSH Keys: generate Ed25519, RSA, and ECDSA keys on-device. Import keys from files in PEM/OpenSSH/Dropbear format or paste from the clipboard. Copy the public key with one tap and open the key dialog for authorized_keys setup. Assign specific keys to individual connections.
SMB: browse Windows/Samba file shares with optional SSH tunneling for secure access over the internet.
Connections: saved profiles with transport selection (SSH, Mosh, Eternal Terminal, VNC, RDP, SMB, Cloud Storage, Reticulum), TOFU host key verification, fingerprint-change detection, automatic reconnection with backoff, password fallback, local and remote port forwarding (-L/-R), ProxyJump (-J) multi-hop tunneling with tree view, SOCKS5/SOCKS4/HTTP proxy support (Tor .onion compatible), and RDP-over-SSH tunnel profiles.
Local Shell (PRoot): run a real Linux terminal directly on your phone with no root required. Select “Local Shell (PRoot)” when creating a connection, and Haven will download a minimal Alpine Linux rootfs (~4 MB) the first time you use it. From there, you get a full apk package manager: install Python, Node.js, git, build tools, or anything else in Alpine’s package repository.
PRoot works by intercepting system calls in user space, with no kernel changes, so it runs on any Android device without root. It does not require or use root access: “PRoot” stands for “ptrace-based root,” meaning it emulates a root filesystem without actual superuser privileges. Think of it as a lightweight container running entirely inside Haven’s app sandbox.
How it compares with alternatives:
- Rooted phones (Magisk/su): root gives full system access. PRoot is sandboxed: it cannot modify your system, but it does not need root to work.
- Android Terminal VM (Pixel 8+): Google’s official Linux VM runs a full kernel through pKVM. It is more powerful but available only on Pixel 8 and newer. PRoot works on any device running Android 8 or later. Haven can access an Android Terminal VM over SSH if you have one; check the connection settings.
- Termux: a standalone terminal emulator with its own package ecosystem. PRoot is lighter (~4 MB vs. roughly 100 MB) and integrated into Haven alongside SSH and cloud sessions.
For technical details, see the PRoot documentation:
https://proot-me.github.io/
Reticulum: connect over Reticulum mesh networks via rnsh or Sideband, with destination discovery and hop counts based on announcements.
Security: biometric app lock with configurable timeout (immediate/30 seconds/1 minute/5 minutes/never), no telemetry or analytics, local storage only.
OSC escape sequences
Remote programs can interact with Android through standard terminal escape sequences:
- OSC 52: set clipboard.
- OSC 8: hyperlinks.
- OSC 9: notification.
- OSC 777: notification with title.
- OSC 7: working directory.
Notifications appear either as an overlay alert or as an Android notification in the background.
License
GNU General Public License v3.0.
Rate this app
Ratings & Reviews
No reviews yet.