0
0
mirror of https://github.com/schwabe/ics-openvpn.git synced 2024-09-19 19:42:29 +02:00
OpenVPN for Android
Go to file
2022-11-01 14:21:12 +01:00
.github/workflows Do not stop github build if one variant fails 2021-10-03 02:53:26 +02:00
.idea/copyright Silently ignore parsing error if DNS server looks like IPv6 (and hope that Samsung only screwed up IPv4) 2017-07-31 22:06:33 +02:00
doc Add exception to allow linking against Apache 2 libraries (closes #477) 2022-01-13 02:37:53 +01:00
gradle/wrapper Update gradle 2022-09-23 11:31:59 +02:00
main Avoid warning about passing intent between processes 2022-11-01 14:21:12 +01:00
misc Update gradle 2022-09-23 11:31:59 +02:00
remoteExample Add Strictmode to remoteExample 2021-10-04 16:54:02 +02:00
tlsexternalcertprovider Update gradle version 2022-02-04 23:39:27 +01:00
.gitignore Fix various issues in remoteExample 2021-10-03 18:26:55 +02:00
.gitmodules Remove breakpad which is currently not used 2018-05-10 15:20:45 +02:00
.travis.yml Fix travis 2020-06-03 12:31:40 +02:00
build.gradle.kts Update gradle 2022-09-23 11:31:59 +02:00
CONTRIBUTING Update README filename reference 2020-09-24 16:00:57 +02:00
gradle.properties Update gradle plugins and to Android studio 4.0 2020-06-03 10:57:02 +02:00
gradlew add gradle wrapper 2014-02-13 15:50:21 +01:00
gradlew.bat add gradle wrapper 2014-02-13 15:50:21 +01:00
ISSUE_TEMPLATE.md Add config and log to issue template 2022-01-13 02:00:29 +01:00
Privacy-policy.md Add End of service and privacy policy in about dialog 2021-03-12 16:00:27 +01:00
README.md Do not delete any app permission when viewing settings (closes #1469) 2022-07-22 16:35:02 +02:00
runcoverity.sh Update runcoverity script to work under Linux 2022-10-07 15:20:03 +02:00
settings.gradle.kts Upgrade build files to new versions 2021-06-15 16:41:56 +02:00

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 arne-paypal@rfc2549.org 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.