[tor-dev] Orbot makefile / build update

Nathan Freitas nathan at freitas.net
Fri May 4 22:34:49 UTC 2012

Since the dawn of Orbot, way back in 2009, the onion routing robot app
has been built using an unwieldy combination of tools, based on an
extremely out of date method for cross-compiling C code for Android/ARM.
In the 1.x era of Android, there was no Native Development Kit as their
is now, but thanks to some craft individuals, scripts were developed to
utilize the compilers found within the core Android OS build kit.
However, this mean you had to build the entire Android OS to be able to
build Orbot, and you were potentially relying upon highly unstable
internal libraries.

This week, I finally bit the bullet, and decided to rewrite the build
process utilizing the more proper NDK tools, as well as utilize Git
submodules as a means for managing retrieval and version control of
dependencies. With the help of _hc, sebastian, rransom, vapourEyes, asn
and others, I was able to work through the various issues of porting
over to the more limited NDK environment, and come out with a properly
formatted Makefile for building all native code that Orbot relies upon.

This means that to fully build Orbot (including tor, privoxy, and
obfsproxy binaries, and the jtorctrl java library) you simply need to
ensure you have the Android SDK and NDK setup, and then:

1) git clone git://git.torproject.org/orbot.git
2) cd orbot
3) make -C external
4) android update project --name Orbot --target android-15 --path .
5) ant debug

That's it! (in theory).

At this point, I would love some clean eyes to look at this, try it out,
ask questions and who knows, perhaps submit a patch or two.

Human readme on new build process and prereqs:

Makefile for Orbot and dependencies (openssl, libevent, privoxy, obfsproxy)

Successfully executed build on our build server:

happy friday,

More information about the tor-dev mailing list