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:
![](https://private-user-images.githubusercontent.com/32940477/292804706-68342c85-996b-4fe5-9415-6699bea9bf56.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjExODgwMzAsIm5iZiI6MTcyMTE4NzczMCwicGF0aCI6Ii8zMjk0MDQ3Ny8yOTI4MDQ3MDYtNjgzNDJjODUtOTk2Yi00ZmU1LTk0MTUtNjY5OWJlYTliZjU2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE3VDAzNDIxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTZkMWUwNjZjYjk0NzQxZmY0N2Q3MTk1MjAwYWQ2ZWY0YWMxYWVhODYzODdkODM2ZjAzMDMxZDI4ZjI3MjM4YWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.I07Pj93b3F7oq50vU8DgEng1_hSUmygjEBE1SftAZEE)
![](https://private-user-images.githubusercontent.com/32940477/292804703-fe16471b-08df-49e5-85a7-8f82e19425e8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjExODgwMzAsIm5iZiI6MTcyMTE4NzczMCwicGF0aCI6Ii8zMjk0MDQ3Ny8yOTI4MDQ3MDMtZmUxNjQ3MWItMDhkZi00OWU1LTg1YTctOGY4MmUxOTQyNWU4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE3VDAzNDIxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUwNTk5ZmY5YWRmOWY5ODk3ZDQ1NTU5YjJlZjc4MWE2NjM2OTkxZWRjNzYyYmI4MmI0NGIyNjZkOTg0NDJlNTUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.2e9Wxb1mg6-3IqDizaxiq-AT-g-9R03WEh743_4lRqM)
![](https://private-user-images.githubusercontent.com/32940477/292804701-b76f6481-92f6-429e-b1d2-222d23ee5001.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjExODgwMzAsIm5iZiI6MTcyMTE4NzczMCwicGF0aCI6Ii8zMjk0MDQ3Ny8yOTI4MDQ3MDEtYjc2ZjY0ODEtOTJmNi00MjllLWIxZDItMjIyZDIzZWU1MDAxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE3VDAzNDIxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWEwOGJjMjZjYmJjYjk1YWZjYmFmYWViMGJjMGU4MmUwZDg4Y2ExYTdhNThjMTllZmYyM2M3NzlhZTE4ZTU2NGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.lGy8EeH3R9B3KoZAAIDEdcCX1KA3l1rOaoUZkj5wKQ0)
![](https://private-user-images.githubusercontent.com/32940477/293363309-6ccd67b5-5f3f-41b0-9428-871ef906e71e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjExODgwMzAsIm5iZiI6MTcyMTE4NzczMCwicGF0aCI6Ii8zMjk0MDQ3Ny8yOTMzNjMzMDktNmNjZDY3YjUtNWYzZi00MWIwLTk0MjgtODcxZWY5MDZlNzFlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE3VDAzNDIxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRlYmEyOGM3ZjMxNmFjN2RlYTMyNGE5MzE3YmIwOGI5OTc5MzhiMzJkYzRmMDMyMjQ0ZTVmZmYzNzJiMDhlNmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.Zpu7q6oEqpDxOOwzu9bSrku1G2Vp2Y0MtTdfh_K179U)
![](https://private-user-images.githubusercontent.com/32940477/292804692-92f22d3d-6626-4f28-988d-d0b280b0af05.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjExODgwMzAsIm5iZiI6MTcyMTE4NzczMCwicGF0aCI6Ii8zMjk0MDQ3Ny8yOTI4MDQ2OTItOTJmMjJkM2QtNjYyNi00ZjI4LTk4OGQtZDBiMjgwYjBhZjA1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE3VDAzNDIxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJkNWE0N2ZkZjJmZTAzNTNiYjM1YzBiZWJiNjdmZTU5MzA1NTIyMTM1YmFkY2ViMzdhNDgxOGU2OTc1ZDNkMWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.aJdVionSnObBhbkfHM-IdOvj1tuUn46bx3N8AEVubfk)
![](https://private-user-images.githubusercontent.com/32940477/292804713-3f47f872-0fa9-46b8-9bde-c936ea110875.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjExODgwMzAsIm5iZiI6MTcyMTE4NzczMCwicGF0aCI6Ii8zMjk0MDQ3Ny8yOTI4MDQ3MTMtM2Y0N2Y4NzItMGZhOS00NmI4LTliZGUtYzkzNmVhMTEwODc1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA3MTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwNzE3VDAzNDIxMFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYxZTczNDNmNjMzODc5M2Q1OGE5MDczNTIzYTZjOTQ1MWYyYjlhZDIxZDI0YTQwYzhkOTI4NmIxM2RlMWRjZDkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.tnJv4PPtybyFyc59zGA7qHTGTjSWBrsZWQGW4C7NvsY)
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.