OpenVPN Plugin
Application Description
The project demos how to integrate a VPN into Aurora OS based on OpenVPN solution, adding the ability to connect via plugin connman. The application is a plugin, not a standalone application, and is built into the into the system and becomes available in the system settings. It allows you to set up access to the server yourself, or use an .ovpn file to configure the connection. Creating a VPN connection provides advanced settings such as encryption selection, certificate selection, for example. It also supports OTP authentication.
Build status:
Table of Contents
- Compatibility
- Build features
- Branch info
- Install and launch
- Screenshots
- Project Structure
- Terms of Use and Participation in Development
Compatibility
The application works correctly starting with Aurora OS 4.x.x and higher.
Build features
The plugin is built in the standard way via SDK or Platform SDK.
As of Aurora OS 5.0.1, the openvpn utility is no longer pre-installed on the system, but is available in the repository. Therefore, the plugin uses a custom OpenVPN, which is built together with the necessary libraries. The project has the following dependencies:
The following dependencies are also installed to build the application from the repository:
- libtool
- libpkcs11-helper-1
- openssl
- connman
- glib-2.0
- dbus-1
Branch info
Application versions conform to the branch naming convention.
Install and launch
Important
Application signing is done by extended profile.
Installation
As it was written earlier, the project is not a standalone application and is integrated into the system during installation. After deployment, the plugin will be available in the system settings in the connection management section under VPN. A button will appear there “Add VPN”, after clicking which you will need to select OpenVPN connection type.
Launch
There are two ways to create a new VPN connection:
- Import file. To do this, you need to upload an .ovpn file to the device, which will contain the necessary settings for connection to the VPN server (recommended).
- Skip. If you choose this option, you will have to manually enter the server address and download the certificate authority file.
Also in two connection creation scenarios you can change some data in the advanced settings. In case OTP, you need to uncheck the “Set default route” option in “Advanced settings”.
After creation, your connection will appear in the list of available VPNs. When you enable it, a shield icon should appear in the upper tray and the connection should switch to the “Connected” state. If it doesn't, check the VPN connection settings.
Screenshots
Project Structure
The project has a C++ and QML based application structure for Aurora OS.
-
connman_plugin the directory contains a subproject with the connman plugin wrapper.
-
src the directory contains the plugin source code.
-
openvpn.c the file is the master file with the
CONNMAN_PLUGIN_DEFINE
macro.
-
openvpn.c the file is the master file with the
- aurora-openvpn.conf the file contains the plugin settings.
-
src the directory contains the plugin source code.
- gitlab-ci the directory contains the files for CI.
- lz4 the directory contains the LZ4 library.
- lzo2 the directory contains the LZO2 library.
- openvpn the directory contains the OpenVPN utility.
- openvpn_plugin the directory contains an implementation of a qml only application with no C++ source code.
- qml_plugin the directory contains an implementation of the OpenVPN plugin.
-
rpm the directory contains the rpm package build settings.
- ru.auroraos.OpenVPNPlugin.spec the file is used by the rpmbuild tool.
- settings_controls the directory contains the QML files for managing settings in the VPN clause.
- settings_translations the directory contains the OpenVPN plugin translation files.
- ru.auroraos.OpenVPNPlugin.pro the file describes the project structure for the qmake build system.
Terms of Use and Participation in Development
The source code of the project is provided under license, which allows to use it in third-party applications.
OpenVPN source code is available under license.
LZO2 source code is provided under license.
LZ4 source code is provided under license.
To participate in the development of the project, please read the member agreement. If you plan to submit your own source code for inclusion in the project, you will need to accept the CLA terms and conditions.
Participant information is listed in the AUTHORS file.
The Code of Conduct is the current set of rules of the Open Mobile Platform Company, which informs about the expectations for interaction between community members when communicating and working on projects.