Logo Computer scientist,
engineer, and educator
• Software  • The KBOX3 project

The KBOX3 project

KBOX logo
Please note that KBOX3 is the latest, development release of the KBOX project for Android. It specifically targets Android 5 and recent Android 4 devices. For information about earlier KBOX versions — none of which is now supported — please see here.

KBOX is a port of Busybox and a number of other Linux utilities, packaged up in such a way as to be useable on a stock, non-rooted Android device. It works in conjunction with a terminal emulator, for example Jack Palevich's Android Terminal Emulator (see here; also available from the Android Market). KBOX provides a 'virtual root filesystem'; that is, under the KBOX shell the users sees what appears to be a conventional Linux filesystem, all of which is editable, despite the lack of root access. This technique is conceptually the same as that used by Cygwin to provide a Linux-like environment on Windows.

KBOX consists of a base distribution, and a number of optional packages. Packages can be downloaded to the device, and then installed at the command prompt using the dpkg utility. At present, major packages provided by KBOX include Perl, Python 3, Dropbear (ssh support), gcc, Vim (full version), and rsync (client and server). There's even preliminary support for compiling Java application. Many smaller packages are also available, and more continue to be added.

The KBOX shell is launched from the terminal emulator like any other Linux program; most terminal emulators provide a way to set the default shell, so it's possible to make KBOX start up with the terminal emulator. In use, the KBOX shell presents a Linux-like filesytem, with the usual directories /bin, /usr etc. However, these are not the real locations of these directories, because these places are not writable (perhaps not even visible) to a non-root user. Instead, KBOX uses an Android port of the libfakechroot library to set up a virtual root filesystem. This filesystem can be rooted at any point in the Android filesystem the terminal emulator has write access to — the terminal emulator's own data directory is usually the best place.

All the utilities in the KBOX distribution have been specifically ported to run in the KBOX environemnt — Android is not Linux, as Google repeatedly tells us — and getting ordinary Linux desktop utilities to work in Android can be a chore, to say the least.

KBOX3 development diary
General thoughts on the progress of KBOX3, and the trials and tribulations of porting and developing for Android Linux
KBOX3 project status
Where things stand, future plans, etc
How it works
How the KBOX3 system installs, and how the KBOX shell provides an illusion of a root filesystem on an unrooted device
KBOX3 installation
How to install the base system, and add-on packages, under an Android terminal emulator app.
What's new in this version
KBOX2 (and probably KBOX1 users, if there still are any) should consider reading this.
Downloads
Get the base system and add-on packages from here. Please read the installation instructions first — it isn't point-and-click
Frequently-asked questions
Please look here first if you have a question — it may already have been answered
Limitations and bugs
KBOX3 is a work-in-progress, and is far from perfect. Please read this section if things do not appear to work as expected
Source code access
Please read this if you're interested in getting the source code for KBOX3
Screenshots
See KBOX3 in action
Java development on KBOX3
KBOX3 has preliminary, experimental support for building Java console-mode applications directly on the device
C/C++ development on KBOX3
C/C++ applications for the console can be build directly on the device, using gcc and other GNU tools. However, there are some things to watch out for.

Copyright © 1994-2015 Kevin Boone. Updated Jul 31 2015