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: https://gitweb.torproject.org/orbot.git/blob/HEAD:/BUILD
Makefile for Orbot and dependencies (openssl, libevent, privoxy, obfsproxy) https://gitweb.torproject.org/orbot.git/blob/HEAD:/external/Makefile
Successfully executed build on our build server: https://build.safermobile.org/job/Gibberbot/49/console
happy friday, n8fr8
Nathan Freitas nathan@freitas.net wrote:
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.
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.
Quoting BUILD: | The Orbot repo also includes the Privoxy source code of a recent stable release.
Privoxy 3.0.12 was released in 2009, so I wouldn't call it a recent release. Did you run into problems with more recent versions? At least in theory they should work better.
Fabian
On 05/07/2012 11:55 AM, Fabian Keil wrote:
Privoxy 3.0.12 was released in 2009, so I wouldn't call it a recent release. Did you run into problems with more recent versions? At least in theory they should work better. Fabian
I think this time around, I was trying to change as little as possible. Since Privoxy 3.0.12 has been working quite well, I didn't want to move forward on that within this Makefile effort.
However, since we now have a clean way to move forward, we'll tackle an update on Privoxy, especially since our integration with Twitter for Android depends upon HTTP proxying.
Best, Nathan