If you’re reading this, you’ve probably used Linux before, and know that works on almost any piece of hardware. Meanwhile, you’ve got a phone in your pocket, and you know it’s versatile. So can your Android phone run Linux?
Yes, it can. Here’s what you need to know about running Linux on your Android smartphone or tablet.
Wait, Isn’t Android Already Linux?
Well, it is… and it isn’t.
Android is built upon the Linux kernel, a software stack that interfaces with the hardware of a device. It basically enables an operating system to communicate with the device, whether that be a PC, a smartphone, or other hardware.
The Linux operating system should really be referred to as GNU/Linux. But over time, the word “Linux” has come to interchangeably describe the kernel as well as the various operating systems that use it, such as Ubuntu, Gentoo, and many others.
So while Android uses the Linux kernel, it doesn’t offer a desktop environment. This is what most people are thinking about when considering ways to install Linux on Android.
Why Run Linux on Your Android Device?
So why might you want a Linux desktop environment on your Android phone or tablet?
You may want to run an app that isn’t available on Android. But in most cases, you’ll simply want to gain access to some sort of desktop environment. Current Android devices have ideal hardware for a PC-like experience, and installing Linux is a great way to enable this.
Of course, you may find that the tasks you want to perform in Linux also work in Android. The only hurdle holding you back might be simultaneous app multitasking. Fortunately, this is a feature that is available in Android since 2016’s Android 7.0 Nougat.
Getting Linux running on your Android device isn’t easy, so if it’s multitasking you’re looking for, try upgrading to a modern version of Android instead.
To run Linux on Android, you have several choices. Which to use is determined by whether your Android device is rooted or not.
How to Run Linux on Android (Without Root)
The best way to get Linux running on your phone with minimum fuss is with Debian Noroot.
While useful, unfortunately this app is no longer maintained. It only runs on Android 2.3 Gingerbread to Android 5.0 Jellybean.
The benefit of Debian Noroot is that it will install Debian Jessie on your phone with a compatibility layer. This allows you to run Debian apps without having to root Android. Given how difficult rooting can be for some devices, this is useful.
Performance with Debian Noroot is not great, but it’s usable. For the best results running Linux on Android, consider rooting your device first.
Download: Debian Noroot (Free)
How to Run Linux on Android (With Root)
If you have a rooted device (here’s how to root Android), you can install various versions of Linux on Android using the Linux Deploy tool. This is best done by first connecting your phone to a Wi-Fi network.
Start off by installing BusyBox, which provides some enhanced root capabilities.
Next, install Linux Deploy. When you run it for the first time, tap Start to ensure the root permissions are enabled, then tap the Settings button in the bottom-right corner.
Use this options menu to select your preferred Distribution. Debian, Ubuntu, Gentoo, Fedora, and many more are available to install. We used Arch Linux.
You’ll need to check the Enable box under GUI to view a Linux desktop on your phone, and ensure that VNC is selected for the Graphics subsystem. Next, check the screen resolution under GUI settings, and check you’re happy with the Desktop environment.
Finally, find the User name and User password entries, and either make a note of them, or change them to something more memorable for you.
Back out of this menu, then tap the three dots in the upper-right corner and select Install, then OK.
When this is done, install VNC Viewer from the Play Store. In Linux Deploy, tap Start to run Linux. Then open VNC Viewer, and connect to localhost:5900 to view your Linux desktop with the credentials you entered earlier.
Once up and running, you can install Linux software using the terminal in the usual manner.
Congratulations: you now have Linux running on Android!
How to Install Kali Linux on Android (Root Required)
The Linux Deploy method above for running Linux distros on Android is probably the best one you’ll find. A good choice of Linux versions is available, including Kali Linux.
Fancy using Android as a penetration testing device? While various useful Android networking tools are available, the best option is a portable version of Kali Linux. Simply follow the instructions above using Linux Deploy, and select Kali Linux to install on Android.
Once installed, you’ll have a portable pen-testing solution in your pocket, ready to check the safety of any network your phone connects to.
4 Other Ways to Run Linux on Android
While we’ve covered a few good options to run Linux on your Android device, you have some other methods available too:
- DeX: If you own a modern Samsung device, you have the option of switching your hardware to desktop mode with DeX. While not exactly a Linux operating system, this is a desktop environment with a Linux kernel, so it’s close enough.
- Remote Desktop to a system running Linux with Splashtop or another Android-to-Linux remote solution.
- Limbo: This is a Linux emulator for Android, based on the QEMU emulator. However, it is difficult and time-consuming to set up, and the results are often not worth the effort.
- Dual boot Android with Ubuntu Touch. Connect the device to an HDMI display to see the Ubuntu Touch desktop environment.
Or Just Install a Custom Android ROM Instead
Not sure installing Linux is such a good idea, but want to change the way you use your Android device? You could simply try a different version of Android with a built-in desktop. We’ve looked at Maru OS, which you can install on some devices as a custom ROM. This comes with a standard phone mode and a desktop mode, with good results.
However, another Android ROM may prove more useful to you. Need help? Read more about how to install a custom ROM on Android.
Read the full article: How to Run Linux on Android Devices