If Android enjoys one real advantage over iOS, it is its open source nature. Sure, you can do some nifty tricks with jailbreaking on an iPhone, but that pales in comparison to the hacks which people have created for Android. With root access and enough determination, damn near everything is possible. We at TechNorms love tinkering with Android devices for precisely this reason. There’s a whole lot of tinkering to be done.
This hack might take the prize for most impressive, though. With root and a very large amount of storage space on the SD card, you can actually run a low-end version of Linux right there on your Android device. Seriously. This ingenious hack theoretically allows for several different versions of Linux, but we opted to go for Ubuntu. Believe it or not, it actually worked.
Ubuntu can be installed on an Android phone by ingeniously linking two different apps within the same device. Fair warning: this hack is not intended for low-end Android phones. The app recommends at least 1 GHz of processing power. We also overclocked our phone with Tasker for the duration of running Linux.
Here’s what happens. Using a pre-made Ubuntu image, your phone creates a running version of Linux. There’s not much installed and it runs on LXDE to make sure everything fits within the phone’s memory. However, it is very much a legitimate copy of Linux.
The catch is that you can’t actually see Linux when it runs. The process is contained within an invisible set of programs that is not visible above the Android OS. In order to actually see Ubuntu in action, you need to use a VNC server app.
VNC (virtual network computing) is used for remotely viewing another PC over a network. You can use a basic VNC app to view the local OS, which in this case is Ubuntu. With those two apps linked together, Linux runs right there on Android.
- A Nandroid backup
- A kernel that supports loop devices. Unfortunately, there is no way to check for this other than trying the installation. If you run up against a seemingly insurmountable wall, this may be the issue.
- Root access (duh)
- Busybox. Download the app Busybox Installer and use it to install the latest version of Busybox. You may have to run the installer twice to make sure that it really installs.
- Enable USB debugging. Go to Settings > Apps > Development and check the box for debugging.
- A solid Wi-Fi connection. You’ll download a lot of files, and it’s best to not do it over data.
- Storage space. The Ubuntu image requires 2.5 GB, but it’s best to have 3.
- A file browser app that can unzip compressed files. Astro File Manager does this and is free.
- Android Terminal Emulator
- Ubuntu Installer Free
The first step, as always before any serious Android hack, is to reboot into recovery and make a Nandroid backup. This step is absolutely critical and should never be skipped. If something happens and messes up your phone, that backup is the only safeguard.
Now open the Ubuntu Installer Free app. It will contain instructions as well for installing. Tap “Install Guide.” Check that you’ve followed all the instructions listed and hit next.
In order to run Ubuntu, you need two critical files, the boot script and the image. The “large” Ubuntu image is an extra 1 GB but comes with more programs already installed. We chose the “small” one simply because you can always install more programs later. However, you will need the boot script no matter which image you pick.
Download these files. It will take a while, so find something else to do. Water a plant. Paint a sunset. Or just watch Battlestar Galactica reruns on Netflix. Guess which one we did?
When everything has downloaded, open up that file browser and create a folder labeled “ubuntu” (without the quotation marks) in the root of the SD card. Cut and paste the boot script and image into this new folder. Extract the contents of both files into /sdcard/ubuntu. This too will take a while.
Now exit the file browser and go to the Terminal app. We recommend switching off any sort of autocorrect feature you might have for your keyboard. Linux text commands are not grammatically correct by any stretch of the imagination and certainly did not play nicely with our autocorrect in Perfect Keyboard.
Type these commands (hit enter between lines and grant Terminal root access when it asks):
Next Terminal will ask for your screen size. This can be found by searching “(phone model) specs” on Google. Our original HTC Evo 4G has a resolution of 800×480, so we input “800×480” (with no quotes) and hit enter.
A lot of text should scroll by at this point. If all works out, the text will end with a message saying “root@localhost:/#”. This means that Linux is up and running. If it doesn’t say that, double check that Busybox is installed. We ran into that issue.
Congratulations! Ubuntu is now running. You may not be able to see it, but it’s running. The Terminal app now functions as the command line for the OS. The in-OS command prompt app does not work.
In order to actually see your brand new OS, open the Android VNC app. Set the IP address to localhost. The port number should already be 5900. Put in the password as “ubuntu” (no quotes). Skip the username section and set the color format to 24-bit color. Once all that is set up, tap connect.
Linux should now appear in all its LXDE glory. To exit at any time, type “exit” (no quotes, as always) into Terminal.
Life After Installation
The first and most obvious problem is that Linux is a desktop OS, definitely not something meant for touch screens. Tap menu and change the control scheme to touch pad, which makes the touch screen function as a basic mouse. The controls are by no means perfect, but they work.
To be honest, this hack works best on tablets. We really struggled to use Linux on our microscopically small phone screen. Even with an easy zoom function, Ubuntu is not easy to use. Side note: To input text, hold down the menu key. That brings up a virtual keyboard. However, we could easily see someone using a physical keyboard and a tablet with this hack in order to make a facsimile desktop PC.
Ubuntu on Android is certainly not the friendliest of OSes (even by Linux standards), but it is pretty damn neat. Not to mention that all the things normally restricted on mobile devices (like Hulu, The Daily Show and Spotify) are now fair game. No doubt hardcore geeks will find some creative uses for this hack.