Android ports - unix command line packages built for android

Notice: this project is no longer maintained As an alternative, see: termux

What versions of Android do these packages work on?

Android 4.4 and earlier. Android 5.0 is not supported.

What is this?

Unix command-line programs ported to run on android. This project uses opkg, which handles downloading and installing packages and their dependencies (like yum or apt). Source for all packages are available.

How to Install the package system

How to install a package

opkg update
opkg install [package]


How-to instructions
Binary Packages
Source + Patches, Build Environment
Work Notes
busybox binary

Frequently Asked Questions

Q: What does the error "error: only position independent executables (PIE) are supported" mean?
A: Android 5.0 brought the requirement that only executables compiled with the -fPIE flag. These packages were compiled for Android 4.4 and earlier, so they won't work on 5.0.

Q: What does the error "* gz_close: waitpid: No child processes." mean?
A: Check to see if you have gunzip in your path. If you don't, download the busybox binary above and create a symlink to it named gunzip.

Q: Where are programs installed?
A: Everything is compiled with a prefix of /data/local. You can find programs in /data/local/bin

Q: Which libc are you using (uclibc, glibc, dietlibc, etc)?
A: Bionic, google's libc that comes with the phone. (this google groups attachment has more notes on the design decisions - requires google account to view)


2014-12-20 - marking as unmaintained
2014-12-02 - note: broken on Android 5.0 (requires a rebuild with the -fPIE compiler flag)
2014-01-05 - built iperf, updated worknotes
2013-11-13 - rebuilt on Jellybean(4.3), working again
2013-09-04 - note: opkg is broken on Jellybean(4.3)
2012-11-21 - added support for Jellybean(4.2)
2012-09-30 - recompiled linker-jb without neon, will work on Tegra 2 Jellybean devices (Transformer, Acer Iconia Tab, etc)
2012-09-16 - added nano
2012-07-10 - fixed mosh-client's signal problems (bug in android pthread_sigmask/userland sigset_t size)
2012-07-09 - fixed mosh-client's local notification messages
2012-07-04 - changed openssh to consider $HOME as the home directory, changed dropbear to install even as non-root
2012-06-29 - added a ssh port option to mosh
2012-06-28 - rebuilt mosh with c++ wrapper instead of perl wrapper
2012-06-27 - built mosh, rebuilt everything that depends on ncurses, rebuilt openssh to consider everyone's home dir to be /data/local/home/$username
2012-06-25 - rebuilt ncurses (add libtinfo and c++ support), built protobuf, add rss feed
2012-03-19 - built radvd
2012-01-17 - rebuilt the custom linker with NDK r7, now the linker works on ICS
2012-01-05 - the custom linker is broken on ICS, I'm working on a way to get it to work on both GB and ICS
2011-12-12 - built ttcp
2011-12-02 - rebuilt vim, bash, bind, curl, mtr, openssh, tcpdump, and opkg to have proper Depends: package information
2011-12-01 - rebuilt curl and opkg to link against the local openssl package, so it'll work on handsets with different versions of openssl
2011-11-30 - built vim
2011-11-27 - fixed getcwd in bash
2011-11-23 - recompiled ncurses so its tools would work, rebuilt curl to be a shared library, built openssh package (ssh clients plus sftp-server), rebuilt dropbear package (scp moved into openssh package), built bash package, and wrote a howto on setting up a ssh server
2011-11-16 - v3 of the build environment
2011-11-11 - compiled libpcap and tcpdump
2011-11-10 - compiled ncurses and changed mtr to link against the packaged ncurses library
2011-10-22 - made a howto for nsupdate
2011-08-11 - made a busybox mod for das bamf
2011-07-24 - rebuilt bind to enable shared libraries, and split bind into four packges (server, devel, libs, utils)
2011-07-22 - built linker with /data/local/lib in the library path
2011-07-21 - built mtr
2011-07-20 - built libres-devel, rebuilt busybox with nslookup
2011-07-05 - built gdb
2011-07-02 - built binutils
2011-06-30 - built strace
2011-06-29 - built curl, rebuilt opkg to use curl, built socat, added install instructions, and fixed a bug that was preventing opkg from finding its configuration
2011-06-28 - Initial project