Note

PHP 5.3.10 (with almost all extensions and XCache)

MySQL 5.5.19 (if you want a full database server on your phone...)

lighttpd 1.4.30

OpenSSH 5.9p1

OpenSSL 1.0.0f

Samba 3.6.3

cURL 7.23.1

bash 4.2

BusyBox 1.19.3

ImageMagick 6.7.4-10

OpenVPN 2.2.2

Python 2.7.2

Node.js 0.6.7

git 1.7.9

Wget 1.13.4

Rsync 3.0.9

TCPDUMP 4.2.0

Midnight Commander 4.8.1

Pure-FTPd 1.0.35

screen 4.0.3

iptables 1.4.10 (without bionic bug "getnetbyaddr()" and with iptables-save/restore!)

BIND 9.8.1-P1

Lua 5.2.0

Ruby 1.9.3-p0

usbutils 004

MTDUtils latest git

GCC 4.6.2 (c, c++)

GNU Coreutils 8.14, Binutils 2.22, Findutils 4.4.2, Inetutils 1.8

QEMU 0.15.1

SANE 1.0.22

tesseract-ocr 3.01

...

a lot of libraries, development tools and other useful programs

...

automatic download and untar the cross-compilers (if not already done) for cross compiling

automatic download and untar the source packages (if not already done), that you have selected

solve dependences and reserves additional needed packages

apply patches to the sources if necessary

build them, "install" them in a folder for later "ready to transfer" to your phone and stripes the binaries and libraries to reduce the filesize if selected

autogenerate a tar file and adb push the file to device if selected

allows you to use well-known software like PHP, MySQL, OpenSSL, OpenSSH, OpenVPN, bash and lighttpd on your phone (see the full list in file package_selection.conf, see attachement)

scripting and development on your phone

no limits with BusyBox (without want to be derogative, BusyBox is a wonderful tool), full featured tools like Coreutils, Binutils etc.

build scripts are expandable with other or newer packages you eventual want to have

Selected the desired packages in the config file Adjust the compiler settings for your phone Run the build script to download and compile the software Copy the generated TAR files to your phone or let "adb" this do for you and unpack them in the prepared sysroot folder

This can (in combination with tesseract-ocr) be very useful to recognize text from scanned images.For pictures see also http://forum.xda-developers.com/showpost.php?p=23046120&postcount=187 With this bash script your are able to build relatively easy from source a lot of native software (over 90 at the moment) from the GNU/Linux community for your Android phone and you will havethe good experience with free software.All these tools and programs are not "apps for the GUI" for Android but native running command line tools "under the surface" of your Android GUI like the kernel and other services.Don't ask me if it makes any sense to install program xy (like MySQL) on a phone. This is your decision. It's possible, so try it and see what you can do with it.: I tested most of the compiled software on a Samsung Galaxy S2 (my phone). I cannot test it on a variety of phones because I have no mobile phone shop...Q: Do I need native GNU/Linux programs and what is that?A: If you do not know what native Linux applications are, then stop here - you don't need them.Q: What can I do with these tools?A: Many things. As a developer you can use the libraries to include them in Android GUI apps, as user you can start for example a webserver on your phone and write some HTML or PHP pagesjust for fun or replace BusyBox with full featured tools (or only some commands).Some tools are also very useful to find network errors, check the network traffic and many more.Q: What do I need?A: A Linux installation (VM or real), some Linux knowledge and a little bit time to read all instructions carefully. A rooted Android device with enouth free memory (ext2/3/4 formatted)See README for details.Q: Costs?A: Nothing. The scripts are Open Source (GPL v3), the packages are GPL licensed or under a similar license. The cross-compilers are Open Source or free to use for non-profit purposes.But I would be pleased if I get a donation and/or a press on the "Thanks button", if the scripts are useful for you. It was a long and hard work...Note: The attachement scriptset-x.yy.zip is double packed (inside .bz2), because I want preserve the right settings of the scripts.For more information please read the instructions in "README"Please let me also know if you have any problems or if you have questions or further suggestions.Thanks go to the Open Source community and a lot of people/webpages with hints about cross-compiling software.Thankssmitna01/14/2012 First public release v0.901/14/2012 Update: Removed unneeded big patch for ncurses01/15/2012 Release of v1.0Update: Fixed build of gcc. Note: the header files are not copied automatically with the script.If you want to compile on your phone, set TAR_HEADERS=1 in configuraton.confTypos: some translations corrected in build.sh01/16/2012 Release of v1.1Update: Removed building of fsck from util-linux-ng, it's in e2fsprogsUpdate: ISC Cron / vixie cron: set correct paths in pathnames.h before compilingEnhancement: More detailed explanation of device specific compiler settings with list of possible valuesUpdate: Removed dependence e2fsprogs libs from e2fsprogs01/17/2012 Release of v1.2Update: Build of zip, zipcloak, zipnote, zipsplit, unzip, unzipsfx and funzip now possible without errors01/17/2012 Release of v1.3Update: Added Node.jsTypos: some translations and language errors corrected in build.sh and README (sorry, I'm not a native English speaker...)01/18/2012 Release of v1.4Fixed TMP_PATH in PHP extension XCache (mmap.c) to prevent startup warningFixed BusyBox problems with static build against glibc ("__getpagesize" segfault with ping, traceroute and other networking parts)and added some BusyBox patches.BusyBox is now dynamic linked, so don't replace the system BusyBox with this build, because of missing mount/paths to libraries at phone startup01/20/2012 Release of v1.5Update: Cleanup in scripts and separation of configuration and code. Now it's only necessary to edit configuration.conf and package_selection.confUpdate: Added gzipUpdate: Added experimental adb push to device if the device is connected and permissions are okUpdate: Check for installed programs. Script now exists on check failure to minimize errors while compiling.01/21/2012 Release of v1.6Bugfix: MySQL build could fail if gen_lex_hash could not generate the file sql/lex_hash.h in pass 2Update: adb push should now work, check for connected device (and possible multiple devices) and check for right permissions to use the deviceEnhancement: Even more explanation of device specific compiler flags and some hints to find the right settings.01/21/2012 Release of v1.7Enhancement: To eliminate sure a failing MySQL build, with every new run the source folder will be removed before completelyEnhancement: file version is now strictly checked (the host version must be the same as the cross version)Some minor changes and filechecks (e.g. autoconf)01/23/2012 Release of v1.8Bugfix: Python has SQLite dependencies and SQLite must be ready before Python configure/makeBugfix: In certain circumstances the optimizer settings get lostBugfix: Removed --enable-multibyte from bash, no chance to use it with NDK01/24/2012 Release of v1.9Update: Added ngIRCd (Please read the comment for this server, because of running as root)Update: Sorted the links and package names in the config a little bit...01/26/2012 Release of v2.0Bugfix: OpenSSH wants to touch /var/empty while compiling, should be fixed --with-privsep-path now set (thanks to member dateno1 for his reports of such warnings/errors)Bugfix: Removed a wrong CFLAG -I path from NDK config (only useful for me, really useless for others...)Enhancement: Example for a user db for Pure-FTPd virtual user database in README (please use virtual users, it's the best and easiest solution)Update: OpenSSH build need ssh-keygen for the generation of the default keys, added this info to README and the package selectionBugfix: Not really a bugfix, but some installers don't set the right permissions of libraries in the sysroot folder, so set them global in the final taskBugfix: Removed --with-lastlog=$TARGET_SYSROOT/var/log/lastlog from OpenSSH and added --with-lastlog=no, I don't know why this is not working and throws a warning, but we can live without it...Enhancement: Added option to choose the sysroot variant from the CodeSourcery libs: v5TE (default), v4T (old), thumb2 (v7, fastest if supported by the phone)Enhancement: Added option to tar the headers for development on the device with CodeSourcery (hint: always set rpath in LDFLAGS to make use of the CodeSourcery libs)01/26/2012 Release of v2.1Update: Added getcap/setcap and libraries from wishlist, needs libtoolize. Note: This is in a testing stage, kernel and filesystem support needed!01/30/2012 Added a ScriptStarter app09/02/2012 Release of v2.2Update: Local compilation of static "tic" from ncurses for buildhost, if ncurses installation is missingEnhancement: "downloading only" mode without compiling the packages (and force download)Enhancement: some parameters for starting the script with additional functions (show with ./build.sh help)Enhancement: more logging and outputsEnhancement: language specs, all outputs can be changed to other languages in build.shUpdate: Added dosfstoolsUpdate: Added RubyUpdate: Added example configs and starter scripts for Samba and OpenSSHUpdate: Use of http-URLs if possible and update of some broken external links since last releaseBugfix: util-linux-ng needs gettext, added dependenceBugfix: Added parameter to Samba to solve user/group settings and socket_wrapper support to set path vars at runtimeUpdate: Changed PHP version to 5.3.10, Samba to 3.6.3 and git to 1.7.902/11/2012 internal Release v2.3Bugfix: openVPN patch for /dev/tun and links to ip/netstat/ifconfig/route, see hints for symlinks02/16/2012 internal Release v2.402/25/2012 Release of v2.5Update: Added LAMEUpdate: Added experimental CUPSUpdate: Changed PNG version to 1.5.9Update: Added Net-SNMPUpdate: Added NetpbmUpdate: Added PNG 1.2.47 for Netpbm and phpSANEUpdate: Added LibTIFFUpdate: Added SANE (USB Scanner backend and drivers) - OTG equipped device needed to work for this - YES, Scanner Access Now possible and Easy with your phoneUpdate: Split patches for bash (4.1 and 4.2) for better and easier (automatic) inclusion of original patches02/28/2012 Release of v2.6Update: Added Cuneiform OCRUpdate: Added tesseract-ocr (see hints for more details howto use it)02/03/2012 Added a small ScriptStarter for the GUI. With this app, written with JQuery, PhoneGap and Java (wrapper to execute the shell scripts) it's possible to start for example the lighttpd web server, Pure-FTPd or MySQL from within the Android GUI without a terminal and read the output. If a script needs root access, there is a checkbox to allow this. For this to work, copy the script sush in the script folder. All scripts ending with .sh can be started (please choose after the first start your script folder on the device to add the scripts to the selection, normally your [SYSROOT]/sbin folder).Three buttons (start, stop and status) are predefined for start-stop-status scripts, there is also a parameter input field for more start values.Free GPL v3 source code also included (Eclipse project). Please don't expect too much eye-candy. The GUI could be much better, but my CSS skills are very limited...I added a few example scripts in the zip file, for example a battery stats reader. Before starting these scripts, have a look in the source code to be sure that they are compatible with your device.Update 0.97 02/03/2012: Now the stderr is also printed in the output windowUpdate 0.99 02/10/2012: Replaced scrolling api with a much better solution (jScrollPane) for the output window. Not the real Android scroll feeling, but it's usable.