0
0
mirror of https://github.com/schwabe/ics-openvpn.git synced 2024-09-20 12:02:28 +02:00
OpenVPN for Android
Go to file
2013-05-25 11:50:43 +02:00
.settings - After installing Juno I need the core prefs for whatever reason 2012-07-18 10:07:51 +02:00
jni Add snappy library. In preparation for upcoming snappy support of OpenVPN 2013-05-03 10:20:54 +02:00
lzo Update lzo version 2012-07-02 17:28:05 +02:00
misc Add copyright for bouncy castles 2013-03-05 21:29:06 +01:00
openssl Build openssl as shared library again, build for all Android ABIs 2012-07-24 21:31:20 +02:00
openvpn Commit files missed in last openvpn import 2013-05-25 11:50:10 +02:00
res Implement Option to pause VPN when screen is off (closes issue #162) 2013-05-25 11:49:49 +02:00
snappy Add snappy library. In preparation for upcoming snappy support of OpenVPN 2013-05-03 10:20:54 +02:00
src Extend external API documentation and change hasPermission to prepareVPNService 2013-05-25 11:50:43 +02:00
.classpath Add auto exported gradle build file 2013-05-16 10:13:40 +02:00
.hgignore Commit files missed in last openvpn import 2013-05-25 11:50:10 +02:00
.hgtags Tag version 0.5.36a 2013-04-02 00:48:22 +02:00
.project Initial import 2012-04-16 19:21:14 +02:00
AndroidManifest.xml Add external API with security. 2013-04-06 19:46:07 +02:00
build-native.bat Accessing wifi state... (commented out, not as useful as I thought) 2012-08-12 23:01:24 +02:00
build-native.sh Allow building with polarssl 2013-03-23 22:42:46 +01:00
build.gradle Updaten OpenVPN version to 2.4master 2013-05-24 13:28:08 +02:00
fetchtranslations.sh Add Swedish! 2013-04-10 11:07:32 +02:00
genFAQ.py Fix genFAQ.py script 2013-04-01 17:12:24 +02:00
LICENSE.txt Switch license to GPLv2.\nI am annoyed of people modifying my code, breaking and then ask me for help on their commercial product for free... 2013-04-24 21:22:42 +02:00
project.properties Minimal rework of notifications for JB 2012-12-15 20:36:44 +01:00
README.txt Sigh .... why are people who cannot found out these simple issues keeping on building the program? 2013-03-29 15:55:03 +01:00
todo.txt Menu fine tuning 2013-02-28 23:42:07 +01:00

This is my first Android project, so some things may be done in a completely stupid way.

See  the file todo.txt for ideas/not yet implemented features (and the bug tracker).

Build instraction:

Disable Google breakcode (WITH_BREAKPAD=0 in jni/Android.mk) or checkout google breakcode

svn co http://google-breakpad.googlecode.com/svn/trunk/ google-breakpad


- Install sdk
- Install ndk (Version 8d gives strange linker errors, use 8b for now)
- Make sure that ndk-build is in your build path.

Do ./build-native.(sh|bat) in the root directory of the project. 
You may need to refresh the project and clean the project in eclipse
 to have the libraries included the resulting apk.

Use eclipse with android plugins to build the project.


FAQ

Q: How is the OpenVPN version different from normal OpenVPN

A: OpenVPN for Android uses a OpenVPN 2.3 master branch + Android patches + dual stack client patches. 
   A git repository of the OpenVPN source code and changes is under: 
   https://github.com/schwabe/openvpn/tree/android_2.3rc1%2Bds

Q: what is minivpn?

A: minivpn is only a executable thats links against libopenvpn which is the normal openvpn build as
   library. It is done this way so the Android Play/Store apk will treat the library as normal library
   and update it on updates of the application. Also the application does not need to take care of 
   keeping minivpn up to date because it contains no code. For almost all intents and purposes
   minivpn + libopenvpn.so is the same as the normal openvpn binary

Q: How to a VPN by name from an external app

A: public class StartOpenVPNActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
    	final String EXTRA_NAME = "de.blinkt.openvpn.shortcutProfileName";

        Intent shortcutIntent = new Intent(Intent.ACTION_MAIN);
		shortcutIntent.setClassName("de.blinkt.openvpn", "de.blinkt.openvpn.LaunchVPN");
		shortcutIntent.putExtra(EXTRA_NAME,"upb ssl");
		startActivity(shortcutIntent);
    }
}

or from the shell:

am start -a android.intent.action.MAIN -n de.blinkt.openvpn/.LaunchVPN -e de.blinkt.openvpn.shortcutProfileName Home