Comparison of OS emulation or virtualization apps on Android

There are many apps in Android that can run or emulate other operating systems, via utilizing hardware support for platform virtualization technologies, or via terminal emulation. Some of these apps support having more than one emulation/virtual file system for different OS profiles, thus the ability to have or run multiple OS's. Some even have support to run the emulation via a localhost SSH connection (letting remote ssh terminal apps on device access the OS emulation/VM, VNC, and XSDL. If more than one of these apps that support these protocols or technologies are available on the android device, via androids ability to do background tasking the main emulator/VM app on android can be used to launch multiple emulation/vm OS, which the other apps can connect to, thus multiple emulated/VM OS's can run at the same time. However, there are a few emulator or VM apps that require that the android device to be rooted for the app to work, and there are others that do not require such. 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 can be supported.

Since Android 8 (Oreo) and later versions of Android, some of these apps have been reporting issues as Google has heightened the security of file-access permissions on newer versions of Android. Some apps have difficulties or have lost access to SD card.[1][2] 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.[3][4] Due to this, many of these app developers and their community members are stating that the emulation/VM app can run itself and an OS without being rooted, however not all packages will be able to run unless the device is rooted.[3][4][5][6]

OS emulators or VM Android apps

The following is a list of OS emulators and OS virtualization Android apps.

App NameTypeDevice architecture & OS version requirementGuest OS architectureRequires rooted deviceConnection technologiesReferences
TermuxEnhanced Terminal Emulator/Android 7.0 +same as hostNoEmulation inside app (none)[7][8][9]
UserLAnd TechnologiesCompatibility 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.)NoSSH, VNC, XSDL (supports access from another app on the phone that links to these technologies.)[10][11]
SPC/ATComputer system emulatorarm only for the android version of VMX86-64 PC , and various other platforms[12][13]
GNURoot DebianCompatibility layer?/Android versions below 5.0same as hostNo[14][15][16]
AnLinuxCompatibility layer (utilizes Termux)ARMv7, ARM64, x86, x86-64/Android 5.0 +same as hostNoSSH, VNC (similar support statement like in UserLAnd.)[17][18]
VMOS (software)platform virtualization app?/Android 5.0+same as hostNoEmulation inside app (none)[19][20]
AndroNIXCompatibility layer (utilizes Termux)ARMv7, ARM64, x86-64/Android 5.1 +same as hostNo[21][22]
LinuxDeployCompatibility layerARM, ARM64, X86, x86-64, emulation mode (ARM ~ 86)/Android 4.0.3 +Yes[23][24][25]
linux on dexSamsung phones only / Android version below 10No[26][25][27]
VMware Horizon ClientDesktop virtualization?/Android 5.0 +Connected to a server:

VMware Server, VMware ESXi

No[28][29]
Vectras VMplatform virtualization appAndroid 5.0 +x86, armNoEmulation inside app (none)[30]
Limbo PC emulatorplatform virtualization appNoEmulation inside app (none)[31]

Terminal emulation apps utilizing internal OS

App NameNotesRef
JuiceSSHOther than just local loopback, the app can do SSH, telnet, and Mosh.[32][33][34]
ConnectBotOther than just local loopback, the app can do telnet and SSH.[35]
TermiusOther than just local loopback, the app can do telnet, SSH, and SFTP.[36][37][38]

See also

References