Comparison of OS emulation or virtualization apps on Android

Last updated

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.

Contents

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
Termux Enhanced Terminal Emulator /Android 7.0 +same as hostNoEmulation inside app (none) [7] [8] [9]
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.) [10] [11]
SPC/AT Computer system emulator arm only for the android version of VM X86-64 PC , and various other platforms [12] [13]
GNURoot Debian Compatibility layer?/Android versions below 5.0same as hostNo [14] [15] [16]
AnLinux Compatibility 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]
LinuxDeploy Compatibility layerARM, ARM64, X86, x86-64, emulation mode (ARM ~ 86)/Android 4.0.3 +Yes [23] [24] [25]
linux on dex Samsung phones only / Android version below 10No [26] [25] [27]
VMware Horizon Client Desktop virtualization ?/Android 5.0 +Connected to a server:

VMware Server, VMware ESXi

No [28] [29]
Vectras VM platform virtualization app Android 5.0 +x86, armNoEmulation inside app (none) [30]
Limbo PC emulator platform virtualization app NoEmulation 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]
ConnectBot Other 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

Related Research Articles

<span class="mw-page-title-main">Linux distribution</span> Operating system based on the Linux kernel

A Linux distribution is an operating system made from a software collection that includes the Linux kernel and often a package management system. Linux users usually obtain their operating system by downloading one of the Linux distributions, which are available for a wide variety of systems ranging from embedded devices and personal computers to powerful supercomputers.

In software engineering, a compatibility layer is an interface that allows binaries for a legacy or foreign system to run on a host system. This translates system calls for the foreign system into native system calls for the host system. With some libraries for the foreign system, this will often be sufficient to run foreign binaries on the host system. A hardware compatibility layer consists of tools that allow hardware emulation.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

QEMU is a free and open-source emulator. It emulates a computer's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems. It can interoperate with Kernel-based Virtual Machine (KVM) to run virtual machines at near-native speed. QEMU can also do emulation for user-level processes, allowing applications compiled for one architecture to run on another.

Platform virtualization software, specifically emulators and hypervisors, are software packages that emulate the whole physical computer machine, often providing multiple virtual machines on one physical platform. The table below compares basic information about platform virtualization hypervisors.

The following is a timeline of virtualization development. In computing, virtualization is the use of a computer to simulate another computer. Through virtualization, a host simulates a guest by exposing virtual hardware devices, which may be done through software or by allowing access to a physical device connected to the machine.

<span class="mw-page-title-main">Kernel-based Virtual Machine</span> Virtualization module in the Linux kernel

Kernel-based Virtual Machine (KVM) is a free and open-source virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. It was merged into the mainline Linux kernel in version 2.6.20, which was released on February 5, 2007. KVM requires a processor with hardware virtualization extensions, such as Intel VT or AMD-V. KVM has also been ported to other operating systems such as FreeBSD and illumos in the form of loadable kernel modules.

Web-based SSH is the provision of Secure Shell (SSH) access through a web browser. SSH is a secure network protocol that is commonly used to remotely control servers, network devices, and other devices. With web-based SSH, users can access and manage these devices using a standard web browser, without the need to install any additional software.

The Android Package with the file extension apk is the file format used by the Android operating system, and a number of other Android-based operating systems for distribution and installation of mobile apps, mobile games and middleware. A file using this format can be built from source code written in either Java or Kotlin.

<span class="mw-page-title-main">ChromeOS</span> Linux-based operating system developed by Google

ChromeOS, sometimes styled as chromeOS and formerly styled as Chrome OS, is a Linux distribution developed and designed by Google. It is derived from the open-source ChromiumOS, based on the Linux kernel, and uses the Google Chrome web browser as its principal user interface.

<span class="mw-page-title-main">Android Debug Bridge</span> Tool for debugging Android-based devices

The Android Debug Bridge is a programming tool used for the debugging of Android-based devices. The daemon on the Android device connects with the server on the host PC over USB or TCP, which connects to the client that is used by the end-user over TCP. Made available as open-source software under the Apache License by Google since 2007, its features include a shell and the possibility to make backups. The adb software is available for Windows, Linux and macOS. It has been misused by botnets and other malware, for which mitigations were developed such as RSA authentication and device whitelisting.

<span class="mw-page-title-main">Sailfish OS</span> Mobile operating system

Sailfish OS is a Linux-based operating system based on free software, and open source projects such as Mer as well as including a closed source UI. The project is being developed by the Finnish company Jolla.

<span class="mw-page-title-main">Fire OS</span> Tablet operating system for Amazon devices

Fire OS is a mobile operating system based on the Android Open Source Project (AOSP). It is developed by Amazon for their devices. Fire OS includes proprietary software, a customized user interface primarily centered on content consumption, and heavy ties to content available from Amazon's storefronts and services.

Android Runtime (ART) is an application runtime environment used by the Android operating system. Replacing Dalvik, the process virtual machine originally used by Android, ART performs the translation of the application's bytecode into native instructions that are later executed by the device's runtime environment.

<span class="mw-page-title-main">Windows Subsystem for Linux</span> Compatibility layer for running Linux binary executables natively on Windows

Windows Subsystem for Linux (WSL) is a feature of Microsoft Windows that allows developers to run a Linux environment without the need for a separate virtual machine or dual booting. There are two versions of WSL: WSL 1 and WSL 2. WSL is not available to all Windows 10 users by default. It can be installed either by joining the Windows Insider program or manually via Microsoft Store or Winget.

<span class="mw-page-title-main">UserLAnd Technologies</span> Compatibility layer mobile app

UserLAnd Technologies is a free and open-source compatibility layer mobile app that allows Linux distributions, computer programs, computer games and numerical computing programs to run on mobile devices without requiring a root account. UserLAnd also provides a program library of popular free and open-source Linux-based programs to which additional programs and different versions of programs can be added.

VMOS is a virtual machine app that runs on Android, which can run another Android OS as the guest operating system. Users can optionally run the guest Android VM as a rooted Android OS. The VMOS guest Android operating system has access to the Google Play Store and other Google apps. The first Android virtual machine to offer Google Play services and other Google apps was VMOS.

Android devices have the ability to run virtual machines or emulate other operating systems. It does this either via desktop virtualization, platform virtualization, or emulation via compatibility layer.

LinuxDeploy is an application that allows the installation of Linux distributions on an Android device. However, the Android device has to be rooted first before being able to install this application.

<span class="mw-page-title-main">Termux</span> Terminal emulator for Android

Termux is a free and open-source terminal emulator for Android which allows for running a Linux environment on an Android device. Termux installs a minimal base system automatically; additional packages are available using its package manager, based on Debian's.

The Linux kernel can run on a variety of devices made by Apple, including devices where the unlocking of the bootloader is not possible with an official procedure, such as iPhones and iPads.

References

  1. "terminal - No permissions for Termux to access internal storage - even for reading". Android Enthusiasts Stack Exchange. Retrieved 2019-10-30.
  2. "How to access sdcard? · Issue #46 · CypherpunkArmory/UserLAnd". GitHub. Retrieved 2019-10-30.
  3. 1 2 "Apt-Get Install failing - Udisks2 Permission Denied error leads to lots of DPKG error · Issue #992 · CypherpunkArmory/UserLAnd". GitHub. Retrieved 2019-10-30.
  4. 1 2 "[Full Tutorial💻] Install Parrot OS On Android". AndroPalac.com. 2019-10-09. Archived from the original on 2019-10-30. Retrieved 2019-10-30.
  5. "Question #266516 : Questions : udisks2 package : Ubuntu". answers.launchpad.net. 19 March 2015. Retrieved 2019-10-30.
  6. "closed session after dpkg --configure -a ] , After installing gnome-terminal · Issue #802 · CypherpunkArmory/UserLAnd". GitHub. Retrieved 2019-10-30.
  7. "Termux - Apps on Google Play". play.google.com. Retrieved 2019-10-30.
  8. "Termux". termux.com. Retrieved 2019-10-30.
  9. Wallen, Jack (August 13, 2019). "How to install Git on Android". TechRepublic. Retrieved 2019-10-30.
  10. "UserLAnd - Apps on Google Play". play.google.com. Retrieved 2019-10-30.
  11. "Use Linux Anywhere". userland.tech. Retrieved 2019-10-30.
  12. "SPC / AT Emulator - PC x86 / x86-64 - Downloads - Emulators". www.emutopia.com. Retrieved 2019-10-30.
  13. "SPC / AT x64 Emulator 0.98 - Front Page News". www.emutopia.com. Retrieved 2019-10-30.
  14. "GNURoot Debian – Apps on Google Play". 2019-04-06. Archived from the original on 2019-04-06. Retrieved 2019-10-30.
  15. "GNURoot Debian". corbinlc.github.io. Retrieved 2019-10-30.
  16. This is the repository corresponding to the GNURoot Debian Android app.: corbinlc/GNURootDebian, 2019-10-24, retrieved 2019-10-30
  17. "AnLinux : Run Linux On Android Without Root Access - Apps on Google Play". play.google.com. Retrieved 2019-10-30.
  18. AnLinux allow you to run Linux on Android without root access.: EXALAB/AnLinux-App, EXALAB, 2019-10-30, retrieved 2019-10-30
  19. "VMOS Virtual Root Android on Android-Double System - Apps on Google Play". play.google.com. Retrieved 2019-10-30.
  20. "VMOS Lets You Run a Virtual Android Machine on your Phone". xda-developers. 2019-08-08. Retrieved 2019-10-30.
  21. "AndroNix - Linux on Android without root - Apps on Google Play". play.google.com. Retrieved 2019-10-30.
  22. "AndroNix - Install Linux on Android without Rooting". AndroNix. Retrieved 2019-10-30.
  23. "Linux Deploy - Apps on Google Play". play.google.com. Retrieved 2019-10-30.
  24. Skshidlevsky, Anton (2019-10-30), GitHub - meefik/linuxdeploy: Install and run GNU/Linux on Android , retrieved 2019-10-30
  25. 1 2 Bradshaw, Kyle (2019-10-18). "Samsung discontinuing 'Linux on DeX' w/ Android 10 update". 9to5Google . Retrieved 2019-10-30.
  26. "Linux on DeX is Dead, Says Samsung". OMG! Ubuntu!. 2019-10-20. Retrieved 2019-10-30.
  27. "Linux on DeX". www.linuxondex.com. Archived from the original on 2020-08-11. Retrieved 2019-10-30.
  28. "VMware Horizon Client - Apps on Google Play". play.google.com. Retrieved 2019-11-21.
  29. Evans, Jonny (2019-01-28). "How to run Windows 10 on an iPad Pro or on Android". Computerworld. Retrieved 2019-11-21.
  30. https://github.com/epicstudios856/Vectras-VM-Android
  31. https://github.com/limboemu/limbo
  32. "JuiceSSH - SSH Client - Apps on Google Play". play.google.com. Retrieved 2019-11-21.
  33. "JuiceSSH - Free SSH client for Android". juicessh.com. Retrieved 2019-11-21.
  34. Wallen, Jack (August 13, 2014). "JuiceSSH makes it easy to manage SSH from an Android device". TechRepublic. Retrieved 2019-11-21.
  35. "ConnectBot - Apps on Google Play". play.google.com. Retrieved 2019-11-21.
  36. "A Nice Alternative for PuTTY: Termius – A very nice portable SSH connection tool". Computing & Technology, The Ultimate Computer Technology Blog and The Knowledgebase of Computing. Retrieved 2019-11-21.
  37. "Termius". termius.com. Retrieved 2019-11-21.
  38. "JuiceSSH - SSH Client vs Termius - SSH/SFTP and Telnet client - compare android market data from Google Play". www.androidrank.org. Retrieved 2019-11-21.