2011-04-15 18:39:35 +02:00
|
|
|
|
2014-08-11 20:00:26 +02:00
|
|
|
This document explains how to properly build an Android package of Orbot from
|
|
|
|
source.
|
2012-02-13 13:32:16 +01:00
|
|
|
|
2012-05-04 01:40:21 +02:00
|
|
|
Orbot includes, in the external directory, git repo submodules of:
|
|
|
|
- Tor
|
|
|
|
- OpenSSL (statically built and patched for Android)
|
|
|
|
- LibEvent
|
|
|
|
- JTorControl: The Tor Control Library for Java
|
2011-04-15 18:39:35 +02:00
|
|
|
|
2014-08-11 20:00:26 +02:00
|
|
|
The Orbot repo also includes the Polipo source code of a recent stable release.
|
2009-10-25 02:01:12 +02:00
|
|
|
|
2009-10-25 03:47:27 +01:00
|
|
|
Please install the following prerequisites (instructions for each follows):
|
2009-10-25 05:49:06 +01:00
|
|
|
ant: http://ant.apache.org/
|
2014-08-11 20:00:26 +02:00
|
|
|
Android Native Dev Kit or NDK (for C/C++ code):
|
|
|
|
http://developer.android.com/sdk/ndk/index.html
|
|
|
|
Android Software Dev Kit or SDK (for Java code):
|
|
|
|
http://developer.android.com/sdk/index.html
|
2010-03-18 05:52:53 +01:00
|
|
|
|
2014-08-11 20:00:26 +02:00
|
|
|
You will need to run the 'android' command in the SDK to install the necessary
|
|
|
|
Android platform supports (ICS 4.x or android-15)
|
2009-10-25 02:47:19 +02:00
|
|
|
|
2013-12-06 00:49:23 +01:00
|
|
|
Be sure that you have all of the git submodules up-to-date:
|
|
|
|
|
2014-08-11 20:00:26 +02:00
|
|
|
git submodule update --init --recursive
|
2013-12-06 00:49:23 +01:00
|
|
|
|
2014-08-11 20:00:26 +02:00
|
|
|
To begin building, from the Orbot root directory, you first need to build all
|
|
|
|
external C/native dependencies:
|
2009-10-25 02:47:19 +02:00
|
|
|
|
2015-06-03 22:13:18 +02:00
|
|
|
export ANDROID_NDK_HOME={PATH TO YOUR NDK INSTALL}
|
2012-05-04 01:40:21 +02:00
|
|
|
make -C external
|
2009-10-25 02:47:19 +02:00
|
|
|
|
2014-08-11 20:00:26 +02:00
|
|
|
At this point, you'll have Tor and Polipo binaries that can be run on an
|
|
|
|
Android handset. You can verify the ARM binary was properly built using the
|
|
|
|
following command:
|
2009-10-25 02:06:59 +01:00
|
|
|
|
2014-08-11 20:00:26 +02:00
|
|
|
file external/bin/tor external/bin/polipo
|
2011-05-10 04:08:50 +02:00
|
|
|
|
|
|
|
You should see something like:
|
2014-08-11 20:00:26 +02:00
|
|
|
external/bin/tor: ELF 32-bit LSB executable, ARM, version 1 (SYSV),
|
|
|
|
dynamically linked (uses shared libs), not stripped
|
|
|
|
external/bin/polipo: ELF 32-bit LSB executable, ARM, version 1 (SYSV),
|
|
|
|
dynamically linked (uses shared libs), not stripped
|
2009-10-25 06:06:49 +01:00
|
|
|
|
2011-05-10 04:08:50 +02:00
|
|
|
This isn't enough though and we'll now sew up the binary into a small package
|
|
|
|
that will handle basic Tor controlling features.
|
2009-10-25 06:06:49 +01:00
|
|
|
|
2012-05-04 01:40:21 +02:00
|
|
|
android update project --name Orbot --target android-15 --path .
|
2009-11-28 16:41:28 +01:00
|
|
|
|
2011-07-25 23:35:39 +02:00
|
|
|
Now build the Android app
|
2012-05-04 01:40:21 +02:00
|
|
|
|
2016-09-26 00:53:30 +02:00
|
|
|
(gradle / android studio instructions here)
|
2009-10-25 05:33:05 +01:00
|
|
|
|
2016-09-26 00:53:30 +02:00
|
|
|
This will produce an unsigned Tor package APK.
|
2009-10-25 06:27:19 +01:00
|
|
|
|
|
|
|
To produce a usable package, you'll need to sign the .apk. The basics on
|
|
|
|
signing can be found on the Android developer site:
|
|
|
|
|
|
|
|
http://developer.android.com/guide/publishing/app-signing.html
|
|
|
|
|
2010-03-18 05:52:53 +01:00
|
|
|
|