t2t-sonbui / ether-vpn

Ether VPN is an Android VPN client built on OpenVPN module.

Home Page:https://medium.com/@tanujsinghkushwah/make-your-own-android-vpn-client-with-openvpn-servers-2dfe251f40b6

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ether VPN

Android VPN client developed using ics-openvpn library.

Available on Play Store now ➡️: https://play.google.com/store/apps/details?id=com.anonymous.ethervpn

ether-vpn-walkthrough.mp4

Build instructions:

  • Download swig[https://www.swig.org/download.html] on the system.
  • Add swig executable path to system/android studio environment path variables.
  • Check if submodules in cpp folder are fetched on your system using git submodule command.
  • Replace requestIdToken and google-services.json configuration according to firebase configurations on your account.
  • If current ovpn servers are not working then replace .ovpn configurations. Some free sites to find ovpn configs: freeopenvpn, vpngate, vpnbook.

Tips to build imported openvpn module with latest code while integrating in a base app:

  • Change plugin id("com.android.application") to id("com.android.library") in openvpn build.gradle.kts.
  • set(SWIG_EXECUTABLE "${CMAKE_CURRENT_SOURCE_DIR}/swigwin-4.1.1/swig.exe") set(SWIG_DIR "${CMAKE_CURRENT_SOURCE_DIR}/swigwin-4.1.1") Add above 2 lines to openvpn/src/main/cpp/CMakeLists.txt if not present.
  • Enable multiDex on your base app.
  • Enable databinding and add productFlavors['ui', 'skeleton'] in build.gradle of base app.
  • Comment out splits and applicantVariants register function in openvpn build.gradle.kts.
  • Verify de.blinkt.openvpn.core.OpenVPNService service and de.blinkt.openvpn.activities.DisconnectVPN activity is added to base project's AndroidManifest file.

Project/IDE configurations:

  • Gradle version - 7.5, Gradle plugin version - 7.4.1
  • SDK compile version - 33.0.0
  • java version "1.8.0_361"
  • Kotlin plugin installed on IDE

Screenshots:

Future developments possible:

  • UI/UX Improvements.
  • Implementation of the subscription model for stable paid VPN servers or token-based governance integration.
  • Multiple protocols added support [IKEv2/Wireguard/SSTP].
  • Addition of split tunneling for apps.

Support the development for more free servers:

  • BTC - bc1qm7j9qsn55ue3ke54n2f92el9jx8rfa343yqxq7
  • ETH - 0x81466D108b0969DC26baE8AC040d15F706E9a231

For business queries, please drop an email to tanujsinghkushwah@gmail.com

License:

This project is covered under GNUv3 license. It uses ics-openvpn module which uses GNUv2 license. Please read and understand scope of the license before starting the development.

About

Ether VPN is an Android VPN client built on OpenVPN module.

https://medium.com/@tanujsinghkushwah/make-your-own-android-vpn-client-with-openvpn-servers-2dfe251f40b6

License:GNU General Public License v3.0


Languages

Language:C 41.8%Language:C++ 19.8%Language:Assembly 8.3%Language:Perl 7.1%Language:HTML 7.1%Language:SWIG 3.9%Language:Java 2.0%Language:Roff 2.0%Language:Shell 1.9%Language:Makefile 1.2%Language:Python 0.9%Language:C# 0.6%Language:D 0.4%Language:M4 0.4%Language:Ruby 0.3%Language:Yacc 0.3%Language:CMake 0.2%Language:PHP 0.2%Language:Kotlin 0.2%Language:xBase 0.2%Language:Lua 0.2%Language:Go 0.1%Language:XSLT 0.1%Language:Scilab 0.1%Language:OCaml 0.1%Language:Scheme 0.1%Language:JavaScript 0.1%Language:M 0.1%Language:Tcl 0.1%Language:Objective-C 0.1%Language:R 0.1%Language:MATLAB 0.1%Language:Batchfile 0.0%Language:AGS Script 0.0%Language:AIDL 0.0%Language:Meson 0.0%Language:eC 0.0%Language:Dockerfile 0.0%Language:Pawn 0.0%Language:GDB 0.0%Language:Common Lisp 0.0%Language:Mercury 0.0%Language:SourcePawn 0.0%Language:TeX 0.0%Language:CSS 0.0%Language:NASL 0.0%Language:Standard ML 0.0%Language:SmPL 0.0%Language:Raku 0.0%