You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Jason A. Donenfeld d738161a2e Statistics: only do one hash lookup 1 day ago
.idea idea: import new import sorting rules 1 week ago
gradle/wrapper build: update to Gradle 6.6.1 3 weeks ago
tunnel Statistics: only do one hash lookup 1 day ago
ui TunnelManager: catch exception in intent receiver 1 day ago
.gitignore gitignore: add gradlew.bat 3 months ago
.gitmodules Migrate tunnel related classes to tunnel/ Gradle module 6 months ago
COPYING global: move to Apache 2.0 2 years ago tunnel: libwg-go: remove -x option from flock 5 months ago
build.gradle ui: move to Jetpack DataStore instead of SharedPrefs 4 days ago build: Improve R8 rules and enable aggressive optimization modes 5 months ago
gradlew build: uprev to Gradle 6.6 1 month ago
settings.gradle Rename app module to ui 6 months ago
version.gradle version: bump 2 days ago

Android GUI for WireGuard

Download from the Play Store

This is an Android GUI for WireGuard. It opportunistically uses the kernel implementation, and falls back to using the non-root userspace implementation.


$ git clone --recurse-submodules
$ cd wireguard-android
$ ./gradlew assembleRelease

macOS users may need flock(1).


The tunnel library is on JCenter, alongside extensive class library documentation.

implementation '$wireguardTunnelVersion'

The library makes use of Java 8 features, so be sure to support those in your gradle configuration:

compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8


Please help us translate the app into several languages on our translation platform.