Search code, repositories, users, issues, pull requests

For more details please see CONTRIBUTING.

Where can I find your OVPN files?

We offer several sets of configuration files for OpenVPN. The files are different in how they connect and/or the strength of the security they use. You can click on the name of the configuration files below to download the files.

Connecting:

When connecting using OpenVPN or PIA we provide you the option to connect over TCP or UDP ports. However, TCP ports are often less restricted than UDP ports, and this can allow for connections on networks like your University or workplace to be more successful (but not guaranteed). In addition, using an IP address, by pinging one of our servers, instead of the server name (us-california.privacy.network) can allow you to connect successfully where DNS is being blocked or modified by your network.

Configuration Files:

These configuration files use the newest servers. The differences between each set of config files are detailed below.

OPENVPN CONFIGURATION FILES (DEFAULT) — These files connect over UDP port 1198 with AES-128-CBC+SHA1, using the server name to connect.

OpenVPN Configuration Files (Recommended Default windows only plus block-outside-dns) — These files connect over UDP port 1198 with AES-128-CBC+SHA1, using the server name to connect.

OPENVPN CONFIGURATION FILES (STRONG) — These files connect over UDP port 1197 with AES-256-CBC+SHA256, using the server name to connect.

OPENVPN CONFIGURATION FILES (TCP) — These files connect over TCP port 502 with AES-128-CBC+SHA1, using the server name to connect.

OPENVPN CONFIGURATION FILES (STRONG-TCP) — These files connect over TCP port 501 with AES-256-CBC+SHA256, using the server name to connect.

In addition to the OpenVPN Configuration files, information on using PIA DNS in custom configurations can be found here.

Saved searches

Use saved searches to filter your results more quickly

Cancel Create saved search

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

Private Internet Access – Android VPN Client

pia-foss/mobile-android

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Switch branches/tags
Branches Tags
Could not load branches
Nothing to show
Could not load tags
Nothing to show

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Cancel Create

  • Local
  • Codespaces

HTTPS GitHub CLI
Use Git or checkout with SVN using the web URL.
Work fast with our official CLI. Learn more about the CLI.

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

Latest commit message
Commit time

README.MD

README v0.1 / XX Month XXXX

Private Internet Access

Private Internet Access is the world’s leading consumer VPN service. At Private Internet Access we believe in unfettered access for all, and as a firm supporter of the open source ecosystem we have made the decision to open source our VPN clients. For more information about the PIA service, please visit our website privateinternetaccess.com.

Android Application

Installation

Requirements

  • Git (latest)
  • Android Studio (Stable channel)
  • Gradle (latest)
  • ADB installed
  • NDK (latest)
  • Android 4.1+

Please use these instructions to install Git on your computer if it is not already installed: Installing Git

Please use these instructions to install and download Android Studio on your computer if it is not already installed: Android Studio Download Link

Download Codebase

Using the terminal:

git clone https://github.com/pia-foss/ *folder-name*

type in what folder you want to put in without the ** or use a graphical interface like Android Studio’s to clone the repo.

This will pull the main repository as well as the required submodules and initialize them.

Once the initial pull is done, update the submodules recursively:

git submodule sync –recursive

git submodule update –init –recursive

Alternatively, you can use our gowrapper around the git commands to sync the submodules.

go run pia.go –sync

Building

Once the project is cloned and submodules are updated, the project will build once opened in Android Studio. This will require building the binaries for the underlying modules and configurations. This can take a while for certain computers and is only done on complete clean and rebuilds. You can see progress in the gradle console. Once completed, the app will be able to be run on a device connected to the computer or an emulator running on your computer.

Please note that Android 4.x emulators are broken with VPNs and will not connect.

Documentation

Architecture

com.privateinternetaccess.android is the package name for the PIA section of the app.

de.blinki.openvpn contains all of PIA VPN’s OpenVPN implementation.

All similar UI elements and model classes are keep together. All activities and fragments are keep together by the area of the app they are in.

Code structure via packages:

  • ui – application UI classes and elements
  • model – application model elements including handlers, interfaces, events and POJOs.
  • pia – API, handlers, interfaces, model and tasks relating to Private Internet Access account, server and connection information
  • tunnel – Bridging elements with OpenVPN.
  • receivers – Broadcast receivers used in PIA VPN.

Coding Style

PIA VPN is built using a similar style to MVI (Model View Intent) using an Event bus to communicate between different layers of the app. We use GreenRobot’s Eventbus in order to communicate events throughout the app and OkHttp for web calls. Our naming structure puts the class type or topic a class is in at the end of the name.

Significant Classes and files

  • PIABuilder – Initializes the required notification channels, vpn logs cache, services and more. Should be initialized on Application.onCreate()
  • PIAFactory – Creates instances of interfaces that let you control the VPN, get account information and handle connection elements.
  • PiaOvpnConfig – Generates the vpn configuration to send to OpenVPN.
  • ConnectionResponder – Handles IP grabbing, port forwarding and MACE for all connections.

Contributing

By contributing to this project you are agreeing to the terms stated in the Contributor License Agreement (CLA) here.

For more details please see CONTRIBUTING.

Issues and Pull Requests should use these templates: ISSUE and PULL REQUEST.

Authors

  • Harrison Frede – half47/slai47
  • Arne Schwabe – Arne
  • Tommie Podzemski – tommie
  • Justin Simpson – justin

License

NEED TO FILL THIS OUT. This project is licensed under the MIT (Expat) license, which can be found here.

Acknowledgements

This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit. (https://www.openssl.org/)

© 2002-2017 OpenVPN Inc. – OpenVPN is a registered trademark of OpenVPN Inc.

About

Private Internet Access – Android VPN Client