Skip to content

1stgg/ics-openvpn

This branch is 129 commits behind schwabe/ics-openvpn:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

f07066d · Dec 14, 2022
Oct 3, 2021
Jul 31, 2017
Jan 13, 2022
Sep 23, 2022
Dec 14, 2022
Sep 23, 2022
Nov 1, 2022
Feb 4, 2022
Oct 3, 2021
May 10, 2018
Jun 3, 2020
Sep 24, 2020
Jan 13, 2022
Mar 12, 2021
Jul 22, 2022
Dec 14, 2022
Jun 3, 2020
Feb 13, 2014
Feb 13, 2014
Oct 7, 2022
Jun 15, 2021

Repository files navigation

OpenVPN for Android

build status

Description

With the new VPNService of Android API level 14+ (Ice Cream Sandwich) it is possible to create a VPN service that does not need root access. This project is a port of OpenVPN.

Get it on F-Droid Get it on Google Play

Developing

If you want to develop on ics-openvpn please read the doc/README.txt before opening issues or emailing me.

Also please note that before contributing to the project that I would like to retain my ability to relicense the project for different third parties and therefore probably need a contributer's agreement from any contributing party. To get started, sign the Contributor License Agreement.

You can help

Even if you are no programmer you can help by translating the OpenVPN client into your native language. Crowdin provides a free service for non commercial open source projects (Fixing/completing existing translations is very welcome as well)

FAQ

You can find the FAQ here (same as in app): https://ics-openvpn.blinkt.de/FAQ.html

Controlling from external apps

There is the AIDL API for real controlling (see developing section). Due to high demand also acitvies to start/stop, pause/resume (like a user would with the notification) exists

  • de.blinkt.openvpn.api.DisconnectVPN
  • de.blinkt.openvpn.api.ConnectVPN
  • de.blinkt.openvpn.api.PauseVPN
  • de.blinkt.openvpn.api.ResumeVPN

They use de.blinkt.openvpn.api.profileName as extra for the name of the VPN profile.

You can use adb to to test these intents:

adb -d shell am start -a android.intent.action.MAIN -n de.blinkt.openvpn/.api.ConnectVPN --es de.blinkt.openvpn.api.profileName myvpnprofile

Note to administrators

You make your life and that of your users easier if you embed the certificates into the .ovpn file. You or the users can mail the .ovpn as a attachment to the phone and directly import and use it. Also downloading and importing the file works. The MIME Type should be application/x-openvpn-profile.

Inline files are supported since OpenVPN 2.1rc1 and documented in the OpenVPN 2.3 man page (under INLINE FILE SUPPORT)

(Using inline certifaces can also make your life on non-Android platforms easier since you only have one file.)

For example ca mycafile.pem becomes

  <ca>
  -----BEGIN CERTIFICATE-----
  MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
  [...]
  -----END CERTIFICATE-----
  </ca>

Footnotes

Please note that OpenVPN used by this project is under GPLv2.

If you cannot or do not want to use the Play Store you can download the apk files directly.

If you want to donate you can donate to [email protected] via paypal, or alternatively if you believe in fancy Internet money you can use Bitcoin: 1EVWVqpVQFhoFE6gKaqSkfvSNdmLAjcQ9z

The old official or main repository was a Mercurial (hg) repository at http://code.google.com/p/ics-openvpn/source/

The new Git repository is now at GitHub under https://github.com/schwabe/ics-openvpn

Please read the doc/README before asking questions or starting development.

About

OpenVPN for Android

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 32.9%
  • Java 22.7%
  • Shell 19.2%
  • Kotlin 4.9%
  • xBase 4.2%
  • C++ 4.1%
  • Other 12.0%