This article may contain original research. (April 2026) |
This article or section possibly contains original synthesis. Source material should verifiably mention and relate to the main topic. (April 2026) |
There are many Android apps that can run other operating systems, for example with virtualization, terminal emulation, or sometimes installing Linux packages directly in the app. Some remote terminal access apps also have the ability to access Android's internally implemented Toybox, via device loopback support. Some VM/emulator apps have a fixed set of OS's or applications that are supported.
Since Android 8 (Oreo), some of these apps have been reporting issues as Google has been making big platform changes to Android, for example the implementation of SAF has been making it more difficult to use these apps and may even make them require root. Some apps have difficulties accessing SD cards. It is also been reported that some of the apps have trouble utilizing packages like udisks2, Open vSwitch, Snort (software), and Mininet, due to new hardware or Android API restrictions on apps that have been put into place in the recent years.
The following is a list of OS emulators and OS virtualization Android apps.
| App Name | Type | Device architecture & OS version requirement | Guest OS architecture | Requires rooted device | Connection technologies | References |
|---|---|---|---|---|---|---|
| Termux | Enhanced Terminal Emulator | Android 7.0 and newer | same as host | No | Runs as a terminal but has a Debian based package manager allowing server apps like Apache, nginx, sshd.
An X11 extension allows even running GUI Linux. |
|
| UserLAnd Technologies | Compatibility layer | /Android 5.0 + | same as host (sometimes emulates Aarch packages for ARM devices if "arm64" package is not available, but "aarch32" or "aarch64" package is available.) | No | SSH, VNC, XSDL (supports access from another app on the phone that links to these technologies.) | |
| GNURoot Debian | Compatibility layer | ?/Android versions below 5.0 | same as host | No | ||
| AnLinux | Compatibility layer (utilizes Termux) | ARMv7, ARM64, x86, x86-64/Android 5.0 + | same as host | No | SSH, VNC (similar support statement like in UserLAnd.) | |
| VMOS (software) | platform virtualization app | ?/Android 5.0+ | same as host | No | Emulation inside app (none) | |
| Virtual Master — Android Clone | virtualization app | ?/Android 5.1+ | same as host | No | Emulation inside app (none) | |
| VPhoneGaGa | virtualization app | ?/Android ?.? | same as host (support 32-bit programs) | No | Emulation inside app (none) | |
| AndroNIX | Compatibility layer (utilizes Termux) | ARMv7, ARM64, x86-64/Android 5.1 + | same as host | No | ||
| proot-distro | Compatibility layer (utilizes Termux) | Android 7+ | same as host | No | Uses user-space proot, somewhat slower because of ptrace overhead, but can run many Linux distributions. The 'root' user insie proot is just a fake root which is only available within the proot environment and cannot mess up Android even when Android itself is rooted.
Can be used as VNC server as well. |
|
| chroot-distro | Compatibility layer (utilizes Termux) | Android 7+ | same as host | Yes | Same a proot, but it utilizes real Android root which has the benefit it runs at native speed (no ptrace overhead) but there is a risk in can break out of the 'chroot jail' which can mess up Android host as it shares its root user with Android root.
Can be used as VNC server as well. |
|
| LinuxDeploy | Compatibility layer | ARM, ARM64, X86, x86-64, emulation mode (ARM ~ 86)/Android 4.0.3 + | Yes | |||
| Vectras VM | platform virtualization app | Android 6.0 and newer | x86, x86_64, ARM64, ARMv7 | No | Emulation inside app (none) | |
| Limbo PC emulator | platform virtualization app | No | Emulation inside app (none) | |||
| Android Virtualization Framework | platform virtualization app | Android 16 and newer | same as host | Yes | Fully virtualized (KVM) which allow running any VM on native speed, fully independent of Android. The root user of the VM is not shared from Android root. |
|
| App Name | Notes | Ref |
|---|---|---|
| JuiceSSH | Other than just local loopback, the app can do SSH, telnet, and Mosh. | |
| ConnectBot | Other than just local loopback, the app can do telnet and SSH. | |
| Termius | Other than just local loopback, the app can do telnet, SSH, and SFTP. |