A Java library providing a wrapper for running a Tor client on Android, Linux, macOS and Windows. The wrapper can be used for running hidden services.
The library supports the obfs4
, meek_lite
and snowflake
pluggable transports.
Binaries for Tor and pluggable transports are not included. They can be found in the following
Maven artifacts: org.briarproject:{tor,obfs4proxy,snowflake}-{android,linux,macos,windows}
. The
obfs4proxy
artifact provides obfs4
and meek_lite
.
The macOS binaries are not signed, so you will need to sign them when packaging your app.
If your Android app is uploaded to Google Play as an app bundle (AAB), you must include the following in
build.gradle
to ensure that the Tor and pluggable transport binaries are extracted during
installation:
android {
packagingOptions {
jniLibs {
useLegacyPackaging = true
}
}
}
On Android, the library uses
dont-kill-me-lib to hold a wake lock
whenever Tor's network connection is enabled. The helper classes in dont-kill-me-lib
can be used
to work around certain manufacturer-specific power management restrictions that would prevent Tor
from running in the background for long periods.