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.
Note that you may need to use sudo docker
below, depending on your OS.
-
While in the
MobileLibrary/Android
directory, run the command:docker build --no-cache=true -t psiandroid .
-
Once completed, verify that you see an image named
psiandroid
when running:docker images
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).
- 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
- Follow Go Android documentation (gomobile documentation)
- Run
make.bash
- Build
ca.psiphon.aar
from via the docker container. - Add
ca.psiphon.aar
to your Android Studio project as described in the gomobile documentation
- Add maven repo to your app build.gradle
repositories {
...
maven {
url "https://raw.github.com/Psiphon-Labs/psiphon-tunnel-core-Android-library/master/releases"
}
}
then add PsiphonTunnel dependency like following
dependencies {
...
implementation 'ca.psiphon:psiphontunnel:1.0.7'
}
Where 1.0.7 is the target version. Latest available release version can be found at https://github.com/Psiphon-Labs/psiphon-tunnel-core-Android-library
See example usage in TunneledWebView sample app
- Only supports one concurrent instance of Psiphon.