A virtual Linux shell environment application for Android OS. Runs Alpine Linux in QEMU system emulator. Termux app fork.

Overview

vShell

vShell (Virtual Shell) β€” a successor of Termux project which provides an alternate implementation of the Linux terminal emulator for Android OS.

Unlike the original, this application uses QEMU to emulate x86_64 hardware to run Alpine Linux distribution. This approach allows to provide a sane distribution independent of Android OS, with own kernel and full root access giving full control over the system. Unlike Termux, vShell does not need to port software packages to Android OS. As result, there are more packages and their quality is much higher.

This application is compatible with any Android OS versions beginning from 7.0. It is not affected by Android security hardening like Termux, see issue about execve(): https://github.com/termux/termux-app/issues/1072.

Closest alternatives:

  • iSH: Linux shell terminal for IOS devices. User mode emulation.
  • UserLAnd: Rootless Linux distribution chroot for Android OS. Uses proot.

vShell is a private project even though it is Free and Open Source. It has been developed specifically for my needs. Considering that Android development is not my occupation and neither my hobby, do not expect the great UX, elegant coding solutions and so on. vShell is not newbie friendly and never was intended to be such. If you are not skilled in Linux systems, you will not have much success with this application.

Remember that I do not provide any kind of mentorship on using the packaged Linux distribution. Read the f***ing documentation! See links below:

Where to download

You can download the latest version from the GitHub Releases page.

Check the LIMITATIONS.md to learn about functional limits of this software.

For instructions about building the own copy of application, please check BUILDING.md.

This application is not distributed via Play Store, F-Droid, alternate stores, Facebook, YouTube and other social media.

Properties of emulated VM

Overview of used QEMU configuration.

Note that you cannot change configuration from the application itself. If you want to adjust QEMU settings, you will need to create your own vShell build.

CPU:

4-core x86 64-bit, with all features enabled.

Warning : This is using unstable MTTCG future, some program may be fail to run when MTTCG is enabled, also this will have serious impact on battery drain.

RAM:

Depends on how much of free RAM is available on device.

If you want to maximize the available RAM for the VM, you will need to close all heavy apps before starting vShell. Maximal amount of memory which VM can allocate is 2 GiB.

HDD:

64 GB dynamic QCOW2 image.

Default operating system installation is diskless, i.e. everything is stored in RAM except data from HDD partitions. There is a 4 GB partition for user data, like /home and /root user directories and package cache. When made some changes to system, do not forget to use lbu to save them on disk.

Since partition is bootable, you can re-install Alpine Linux or other operating system on it, if do not want to use diskless distribution variant.

Host storage:

Device shared storage is mounted as /media/host via 9P file system mounted with tag host_storage.

This is handled by /etc/fstab.

Network:

Only user-mode networking via SLiRP is supported.

Default DNS in /etc/resolv.conf:

# Google DNS which should work for everyone.
nameserver 8.8.8.8

# Fallback QEMU DNS resolver. Uses 1.1.1.1 CloudFlare DNS as upstream.
nameserver 10.0.2.3

Ports 22 and 80 are forwarded to random ports on host. Long tap on terminal screen to see the current port forwardings in context menu.

Known Issues

For now there is only one major issue which doesn't happen under normal cases. It is related to host storage mount point exported through VirtFS and leads to application force-close when you are trying to list current working directory that is already deleted on host. I can't provide fix for that and this seem to be a general QEMU issue.

Resources

  • Alpine Linux: A lightweight Linux distribution built on Musl libc and Busybox.
  • Android Terminal Emulator: One of the first terminal applications for Android OS. Now obsolete.
  • ConnectBot: The first SSH client for Android OS.
  • Limbo Emulator: A QEMU port to Android OS. Unlike vShell, this application is generic and doesn't come with OS preinstalled.
  • QEMU: A generic machine emulator and virtualizer. This is a core of the vShell app.
  • Termux: Android terminal emulator with package ecosystem. vShell borrowed some UI parts and terminal library from Termux.
You might also like...

Eclipse RAP Runtime (Remote Application Platform)

Eclipse RAP Runtime (Remote Application Platform) Welcome and thank you for your interest in this project. The Eclipse RAP Runtime provides a powerful

Dec 15, 2022

Spring boot application for video streaming with complete signup and login build with mongodb

PORT user-service : 8000 eureka-server : 8761 video-service : 8001 api-gateway : 5000 Api-Gateway endpoints request-type body Header sign-up localhost

Jun 27, 2022

BlackBox is a virtual engine, it can clone and run virtual application on Android

BlackBox is a virtual engine, it can clone and run virtual application on Android

BlackBox is a virtual engine, it can clone and run virtual application on Android, users don't have to install APK file to run the application on devices. BlackBox control all virtual applications, so you can do anything you want by using BlackBox.

Jan 3, 2023

Bank Statement Analyzer Application that currently runs in terminal with the commands: javac Application.java java Application [file-name].csv GUI coming soon...

Bank Statement Analyzer Application that currently runs in terminal with the commands: javac Application.java java Application [file-name].csv GUI coming soon...

May 21, 2022

A Java Virtual Machine - running on a Java Virtual Machine - running on a (jk).

Javaception A Java Virtual Machine - running on a Java Virtual Machine - running on a (jk). Goals JVMS compliant Java Virtual Machine Somewhat fast Re

Oct 10, 2022

Android Auto Apps Downloader (AAAD) is an app for Android Phones that downloads popular Android Auto 3rd party apps and installs them in the correct way to have them in Android Auto.

Android Auto Apps Downloader (AAAD) is an app for Android Phones that downloads popular Android Auto 3rd party apps and installs them in the correct way to have them in Android Auto.

Android Auto Apps Downloader (AAAD) is an app for Android Phones that downloads popular Android Auto 3rd party apps and installs them in the correct way to have them in Android Auto.

Jan 2, 2023

Box86Launcher Is Modified Version Of ptitSeb/box86 Which Runs x86 Version Of WineHQ On Android Nativel

Box86Launcher Box86Launcher Is Modified Version Of ptitSeb/box86 Which Runs x86 Version Of WineHQ On Android Natively. Unlike ExaGear or Running Box86

Jan 3, 2023

A webshell application and interactive shell for pentesting Apache Tomcat servers.

A webshell application and interactive shell for pentesting Apache Tomcat servers.

Apache Tomcat webshell application for RCE A webshell application and interactive shell for pentesting Apache Tomcat servers. Features Webshell plugin

Jan 1, 2023

A webshell application and interactive shell for pentesting Apache Tomcat servers.

A webshell application and interactive shell for pentesting Apache Tomcat servers.

Apache Tomcat webshell application for RCE A webshell application and interactive shell for pentesting Apache Tomcat servers. Features Webshell plugin

Aug 7, 2022

MapleStory v111.1 Server Emulator

Lidium v111.1 Server Emulator !! THE LIVE INSTANCE DOES NOT MATCH THIS REPO !! It is highly recommended that you use Java 16 for this project. Live in

Oct 13, 2021

Native Pcode emulator

Native Pcode emulator

GhidraEmu This project was initially started as a part of Digital Security's Research Centre internship "Summer of Hack 2021". Plugin allows you to ea

Dec 24, 2022

A portable 8086 emulator written in Java and JavaFX

8086.java A portable 8086 emulator written in JavaFX Environment Variables To run this project, you will need to add the following environment variabl

Dec 1, 2022

Small app to create icon sets for Linux, Windows, OSX, Android and IOS from a single PNG image

FXIconcreator Small app to create icon sets (multi resolution) for Linux, Windows, OSX from a single PNG image Reason for creating such an app was tha

Aug 4, 2022

Forest_tracker - Help protect the environment with such a simple app.

Forest Tracker 🌳 🌲 🌱 Introduction Hey there! This app is all about protecting the environment! A unique method. Deforestation is happening at an al

May 11, 2022

Google App Engine Standard Environment Source Code for Java 8 and Java11

 Google App Engine Standard Environment Source Code for Java 8 and Java11

Google App Engine Standard Environment Source Code for Java 8 and Java11. This is a repository that contains the Java Source Code for Google App Engin

Jan 2, 2023
Owner
null
State of the art mutation testing system for the JVM

Pitest (aka PIT) is a state of the art mutation testing system for Java and the JVM. Read all about it at http://pitest.org Releases 1.7.3 #952 Mutate

Henry Coles 1.5k Dec 26, 2022
MockServer enables easy mocking of any system you integrate with via HTTP or HTTPS with clients written in Java, JavaScript and Rub

MockServer enables easy mocking of any system you integrate with via HTTP or HTTPS with clients written in Java, JavaScript and Ruby. MockServer also includes a proxy that introspects all proxied traffic including encrypted SSL traffic and supports Port Forwarding, Web Proxying (i.e. HTTP proxy), HTTPS Tunneling Proxying (using HTTP CONNECT) and SOCKS Proxying (i.e. dynamic port forwarding).

Mock-Server 4k Jan 4, 2023
Core System of LANSERVER

LanEssential Core System of LANSERVER This is a minecraft plugin for paper 1.17.1 server. This plugin has many features, but many bugs too. It's on al

lanthanide 0 Aug 11, 2022
Simple meteor addon to bypass other addons that use a uuid-based authentication system

Auth Bypass A Meteor Addon that automatically bypasses other addons using a uuid-based authentication system How to use: Download the latest release f

GhostTypes 4 Apr 1, 2022
Fluent assertions for Java and Android

What is Truth? Truth makes your test assertions and failure messages more readable. Similar to AssertJ, it natively supports many JDK and Guava types,

Google 2.6k Jan 5, 2023
ShotDroid is a pentesting tool for android.

ShotDroid is a pentesting tool for android. There are 3 tools that have their respective functions, Get files from Android directory, internal and external storage, Android Keylogger + Reverse Shell and Take a webcam shot of the face from the front camera of the phone and PC.

null 179 Jan 8, 2023
This repository contains examples using TestContainers in a Spring Boot Application

Sample REST CRUD API with Spring Boot, Mysql, JPA and Hibernate Using TestContainer to assure our Integration/API testing Steps to Setup 1. Build and

Guilherme Rogatto 4 Nov 29, 2021
Apache JMeter - An Open Source Java application designed to measure performance and load test applications

An Open Source Java application designed to measure performance and load test applications. By The Apache Software Foundation What Is It? Apache JMete

The Apache Software Foundation 6.7k Jan 1, 2023
πŸŽ‰Ultimate test automation for testing any application on any platform

boyka-java Ultimate test automation for testing any application on any platform boyka-java Setup Write conventional commits 1.

Wasiq Bhamla 52 Dec 30, 2022
TCP Chat Application - Java networking, java swing

TCP-Chat-Application-in-Java TCP Chat Application - Java networking, java swing Java – Multithread Chat System Java Project on core Java, Java swing &

Muhammad Asad 5 Feb 4, 2022