How to Install Ubuntu on Your Android Phone Using Linux Deploy

It’s easy to forget that Android is a Linux-based operating system sometimes. But it is, and it retains some of that openness and flexibility that attracts people to the Linux platform.

As an example, you can actually install a full Linux distro on your Android device. We’ll demonstrate how to install Ubuntu on Android using an app called Linux Deploy, which will install the Linux desktop environment, but you can use this same method to install Debian or various other Linux distros.

Note: you’ll need to root your Android device before starting this process.

Install and Deploy Linux on Android

First, install BusyBox. This is a toolkit that unlocks your Android phone for various Linux commands that are essential to getting Ubuntu up and running. You won’t need to actively use this after installing it.

You’ll also need VNC Viewer, a remote desktop app that creates the window within which Ubuntu will run on your Android device. This is what you’ll ultimately be using to get Linux up and running.

Finally, you need to install Linux Deploy, which you’ll use to install Ubuntu (or one of several different versions of Linux, for that matter).

After installing Linux Deploy, open it and tap the icon with the three sliders (bottom-right corner).

Here you can select the Linux distro you want to install. (Just tap “Distribution,” then select the distro name – we went with Ubuntu.)

install-linux-deploy-android-settings-1

After that, scroll to the GUI section at the bottom, tap the “Enable” box and make sure “VNC” is selected under “Graphics subsystem.”

install-linux-deploy-android-enable-gui

Once you’ve done that, you can also go into “GUI Settings” to set the resolution of Linux once it runs. Unless you have a tablet, the default 1920 x 1080 resolution on most smartphones is probably too high to practically use Linux, so we recommend lowering it to 1024×576 or 1152×648.

install-linux-deploy-android-resolution

Finally, scroll back up about halfway until you find “User name” and “User password.” Make a note of them, or replace them with your own.

install-linux-deploy-android-user-name-password

Those are all the settings you need to tweak. Go back to the Linux Deploy home screen, tap the three-dotted menu icon at the top-right and tap “Install.”

install-linux-deploy-android-install

The installation may take from one to several minutes, depending on the speed of your smartphone.

Once it’s finished (denoted by the “<<<deploy” message at the bottom of the install log), tap Start at the bottom-left corner, then “OK.” Once you see the message “<<< Start” at the bottom of the log, Linux is deployed and running.

Run Linux on Android

But in order to actually see and use Linux, you need to use VNC Viewer. Open VNC Viewer, tap the green “+” icon at the bottom-right, then in the “New connection” box enter “localhost” as an address, and give the connection a name of your choice. (We went with “Linux.”) Click “Create.”

install-linux-deploy-android-new-connection

Tap the new connection in VNC Viewer to open it, and your Linux build should open up!

install-linux-deploy-android-ubuntu-running

It won’t have anything installed on it by default, but you can go to the Terminal and sudo apt-get install various software like you normally would in Linux.

Conclusion

That’s it. You now have a fully functional Linux distro on your Android device.

install-linux-deploy-android-root-browser

If at any point you decide that you don’t want Linux any more, it’s not a case of uninstalling Linux Deploy. Instead, you’ll need to use a file explorer with root access (we used Root Browser), find the directory “/data/user/0/ru.meefik.linuxdeploy/env” and delete it. (You can change the default Linux install directory in Linux Deploy’s settings menu).

10 comments

  1. I have a few low-end Android devices, so I’m not even going to attempt this. Would love to see a review on this site, though (including keyboard & mouse support)! It might tempt me to upgrade my 10.1 inch tablet. The final screenshot looked fantastic.

  2. You should have made clear that this is for rooted phones

  3. Also provide a solution for people who don’t want to root their phones?

  4. In the process of installing on a low end android device (MT6580). It is not working well, unable to install packages. So i am trying different distro’s but I dont think that is the problem. Which distro would be best, which is the lightest version? Which repositories are available?

  5. I did this on huawei p8 lite and it runs well just one problem..
    Even though I have selected ubuntu(my fav as I am from south Africa.. thanx mr shuttleworth) the interface looks like debian..
    I dont want that .. boo hoo

  6. What I’d like to do is get rid of Android entirely and install Linux instead.

  7. Hey Robert,

    thanks for your article, I’ve tried this and it worked, but I was wondering… I have another smartphone with an Android Gingerbread (2.3.6) installed on it, and this makes it impossible to use RealVNC’s VNC Viewer, since it is aimed at Android 4.4+ devices. Can you or the Hivemind point me to a good subtitute to VNC Viewer?

    Thanks in advance,

  8. So, I am constantly running into the fat32 file size limitation of the ext4 Linux Deploy file. Will this method allow me to use external SD and free up space in img file? Ideally, system files and swap would run on internal faster memory. I already have an image file created and after updates, etc. down to 400mb free space. If possible I would like to use the current build as I have put time into it. Any suggestions?

  9. Hi.
    Amazing tutorial, but I’m stuck at where you “Install”.
    It shows
    >>> deploy
    <<>> start
    Missinh parameters: TARGET_PATH
    <<< start

    Pls help.

  10. So if I’ve not installed linux or ubuntu on my phone yet it’s installed,1 who installed it,2 why is it installed, 3 what should I do. it appears I’m running old OS in my browser and its literally making me crazier

Leave a Comment

Yeah! You've decided to leave a comment. That's fantastic! Check out our comment policy here. Let's have a personal and meaningful conversation.