c8205c4c59
Fixes a bug where turning on auto tunneling hides the first tunnel in the app. Closes #116 |
||
---|---|---|
.github | ||
app | ||
asset | ||
buildSrc | ||
fastlane | ||
gradle | ||
.editorconfig | ||
.gitignore | ||
Gemfile | ||
LICENSE | ||
README.md | ||
build.gradle.kts | ||
gradle.properties | ||
gradlew | ||
gradlew.bat | ||
settings.gradle.kts |
README.md
WG Tunnel
This is an alternative Android Application for WireGuard with added features. Built using the wireguard-android library and Jetpack Compose, this application was inspired by the official WireGuard Android app.
Screenshots
Inspiration
The original inspiration for this app came from the inconvenience of having to manually turn VPN off and on while on different networks. This app was created to offer a free solution to this problem.
Features
- Add tunnels via .conf file, zip, manual entry, or QR code
- Auto connect to VPN based on Wi-Fi SSID, ethernet, or mobile data
- Split tunneling by application with search
- WireGuard support for kernel and userspace modes
- Always-On VPN support
- Export tunnels to zip
- Quick tile support for VPN toggling
- Static shortcuts support for primary tunnel for automation integration
- Intent automation support for all tunnels
- Automatic service restart after reboot
- Battery preservation measures
Docs (WIP)
Basic documentation of the feature and behaviors of this app can be found here.
The repository for these docs can be found here.
Building
$ git clone https://github.com/zaneschepke/wgtunnel
$ cd wgtunnel
Create a personal access token (classic) in GitHuv to be able to pull the wireguard-android github dependencies from GitHub packages as documented here.
Alternatively, you can clone wireguard-android and run the following command to publish the dependency to your local maven repository (requires you have maven installed). This is the ideal approach if you intent to make changes to this lib.
$ git clone https://github.com/zaneschepke/wireguard-android
$ cd wireguard-android
$ brew install maven
$ ./gradlew publishToMavenLocal
The wireguard-android dependency is a fork of the official wireguard-android library.
Add the following lines to local.properties file:
GH_USER=<your github username>
GH_TOKEN=<the personal access token with read package permission you just created>
And then build the app:
$ ./gradlew assembleDebug