adamkruger 49f1522aec Fix bug: null guard. %!s(int64=7) %!d(string=hai) anos
..
PsiphonTunnel ba0d30dd84 Use failover network ID when lacking permissions %!s(int64=7) %!d(string=hai) anos
SampleApps 49f1522aec Fix bug: null guard. %!s(int64=7) %!d(string=hai) anos
.gitignore 84688f702f Build script for for Android umbrella library %!s(int64=9) %!d(string=hai) anos
Dockerfile fdf953d7af Merge branch 'master' into utls %!s(int64=7) %!d(string=hai) anos
README.md 8f0711dea0 Update READMEs regarding utls and OpenSSL %!s(int64=7) %!d(string=hai) anos
make.bash a44e944291 Integrate utls %!s(int64=8) %!d(string=hai) anos

README.md

Psiphon Android Library README

Overview

Psiphon Library for Android enables you to easily embed Psiphon in your Android app. The Psiphon Library for Android is implemented in Go and follows the standard conventions for using a Go library in an Android app.

Building with Docker

Note that you may need to use sudo docker below, depending on your OS.

Create the build image:
  1. While in the MobileLibrary/Android directory, run the command: docker build --no-cache=true -t psiandroid .

  2. Once completed, verify that you see an image named psiandroid when running: docker images

Run the build:

Ensure that the command below is run from within the MobileLibrary/Android directory

cd ../.. && \
  docker run \
  --rm \
  -v $(pwd):/go/src/github.com/Psiphon-Labs/psiphon-tunnel-core \
  psiandroid \
  /bin/bash -c 'cd /go/src/github.com/Psiphon-Labs/psiphon-tunnel-core/MobileLibrary/Android && ./make.bash' \
; cd -

When that command completes, the compiled .aar files (suitable for use in an Android Studio project) will be located in the current directory (it will likely be owned by root, so be sure to chown to an appropriate user).

Building without Docker (from source)

Prerequisites:
  • The build-essential package (on Debian based systems - or its equivalent for your platform)
  • Go 1.9 or later
  • Full JDK
  • Android NDK
  • Android SDK
Steps:
  1. Follow Go Android documentation (gomobile documentation)
  2. Run make.bash

Using the Library

  1. Build ca.psiphon.aar from via the docker container, from source, or use the binary release
  2. Add ca.psiphon.aar to your Android Studio project as described in the gomobile documentation
  3. Example usage in TunneledWebView sample app
Limitations
  • Only supports one concurrent instance of Psiphon.