Run Linux virtual machine on Android OS. Powered by QEMU. No KVM or root required.

Overview

vmConsole

A free and open-source application that enables you to run Alpine Linux distribution in a virtual machine on your Android device. Thousands of packages available for installation from online repositories make vmConsole a powerful tool for software developers, testers, system administrators and just Linux fans. The core of application is QEMU x86_64 emulator, so you do not need superuser permissions, KVM support or other special features of device. Input and output are being performed through Xterm-compatible terminal screen.

Typical use-cases of vmConsole application:

  • Exploring the world of Linux =)
  • Programming
  • Testing software
  • Hacking
  • Running TOR hidden services
  • Crawling / archiving web sites

Application runs on any modern device with Android OS 7.0 or higher. For the best experience, it is recommended to have 6+ GiB of RAM and 8+ GiB of free disk space.

Our Wiki provides details about application usage and various tips. Currently it is basic, but will grow over time. Also it is highly recommended to visit Alpine Linux Wiki.

Proper Linux administration skills are needed in order to use vmConsole! I do not advertise my application as entertainment tool or game. If you do not have any specific tasks in mind to solve with it, most likely the vmConsole will be useless for you.

About project

vmConsole, previously known as "Alpine Term" or "vShell", was started as an alternative to currently available implementations of Linux environments for Android OS. Android by itself is quite (reasonably) restricted operating system and that makes hit on Linux userland approaches. Another issues are stability, like with barely maintained Limbo PC or PRoot-based UserLAnd, and high efforts required for maintaining a package repository like in case of Termux.

So the main idea was to combine terminal emulator, adequate and up-to-date QEMU port to Android OS and a tiny, but production-grade Linux distribution. As for latter, I have picked the Alpine Linux as it much better suits as operating system for QEMU, small and does not rely on systemd.

Notice: this project does not apply community-led development approach. Pull requests can be rejected if they does not suit well goals of the vmConsole project and rather could be treated as customization instead of enhancement.

Remember that author does not owe anything for you.

Credits

  • Alpine Linux: the operating system used in vmConsole.
  • ConnectBot: the recommended SSH client for use with vmConsole.
  • QEMU: the emulator and virtualizer, a core of vmConsole.
  • Termux: the famous terminal emulator for Android OS, vmConsole uses certain parts of it.
You might also like...
 🍲Foodium is a sample food blog Android application 📱 built to demonstrate the use of Modern Android development tools - (Kotlin, Coroutines, Flow, Dagger 2/Hilt, Architecture Components, MVVM, Room, Retrofit, Moshi, Material Components). 🎓 Learning Kotlin Coroutines for Android by example. 🚀 Sample implementations for real-world Android use cases. 🛠 Unit tests included!
🎓 Learning Kotlin Coroutines for Android by example. 🚀 Sample implementations for real-world Android use cases. 🛠 Unit tests included!

Kotlin Coroutines - Use Cases on Android 🎓 Learning Kotlin Coroutines for Android by example. 🚀 Sample implementations for real-world Android use ca

🔥The Android Startup library provides a straightforward, performant way to initialize components at the application startup. Both library developers and app developers can use Android Startup to streamline startup sequences and explicitly set the order of initialization.
🔥The Android Startup library provides a straightforward, performant way to initialize components at the application startup. Both library developers and app developers can use Android Startup to streamline startup sequences and explicitly set the order of initialization.

🔥The Android Startup library provides a straightforward, performant way to initialize components at the application startup. Both library developers and app developers can use Android Startup to streamline startup sequences and explicitly set the order of initialization.

Android Kotlin Fundamentals 01.2: Anatomy of Basic Android Project

Welcome to Android Kotlin Fundamentals 01.2: Anatomy of Basic Android Project 👋 Codelab de android para practicar apps Android con Kotlin 🏠 Homepage

Meu primeiro aplicativo Android desenvolvido com Kotlin e Android Studio.
Meu primeiro aplicativo Android desenvolvido com Kotlin e Android Studio.

Cálculos 3 em 1 Este é um aplicativo Android que oferece três tipos de cálculos: calcular o IMC, calcular o valor do IPVA e converter medidas. Esse ap

Use Android Data Binding wih Live Data to glue View Model and Android

Gruop-C Spliff Summary Use Android Data Binding wih Live Data to glue View Model and Android. Asynchronous communications implemented with KotlinX Cor

DogglersApp - Criação de um App para estudo de RecyclerView no Android Studio. Parte do curso Android Basics in Kotlin

Dogglers - Starter Code Starter code for the second independent project for Android Basics in Kotlin. Introduction This is the starter code for the Do

Basic-Android-Project - A Basic Android Project with proper structure and all necessary dependencies

Basic-Android-Project A Basic Android Project with proper structure and all nece

Android Data Managment System Android UI - Kotlin- Firebase
Android Data Managment System Android UI - Kotlin- Firebase

DataManagmentSystem Data Managment System Android UI - Kotlin- Firebase Android Data Managment System App Design And Kotlin with Firebase The project

Comments
  • build(deps): bump tzinfo from 1.2.9 to 1.2.10 in /docs

    build(deps): bump tzinfo from 1.2.9 to 1.2.10 in /docs

    Bumps tzinfo from 1.2.9 to 1.2.10.

    Release notes

    Sourced from tzinfo's releases.

    v1.2.10

    TZInfo v1.2.10 on RubyGems.org

    Changelog

    Sourced from tzinfo's changelog.

    Version 1.2.10 - 19-Jul-2022

    Commits
    • 0814dcd Fix the release date.
    • fd05e2a Preparing v1.2.10.
    • b98c32e Merge branch 'fix-directory-traversal-1.2' into 1.2
    • ac3ee68 Remove unnecessary escaping of + within regex character classes.
    • 9d49bf9 Fix relative path loading tests.
    • 394c381 Remove private_constant for consistency and compatibility.
    • 5e9f990 Exclude Arch Linux's SECURITY file from the time zone index.
    • 17fc9e1 Workaround for 'Permission denied - NUL' errors with JRuby on Windows.
    • 6bd7a51 Update copyright years.
    • 9905ca9 Fix directory traversal in Timezone.get when using Ruby data source
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • Prepare system image for v1.2

    Prepare system image for v1.2

    • Added -doc packages in addition to currently available.
    • Added packages mandoc and mandoc-apropos for viewing man pages.
    • MOTD: add information about on-disk installation. (short version of our wiki).
    • MOTD: add basic information about package management. (short version of our wiki)
    • MOTD: add warning/notice to the very end that application requires proper skills in order to be useful.

    ISO image size is expected to increase for about 10 MiB.

    opened by sylirre 0
Owner
Leonid Pliushch
Specializing at system administration and DevOps, but also do a bit of hacking and programming as well...
Leonid Pliushch
A Gradle plugin providing various utility methods and common code required to set up multi-version Minecraft mods.

Essential Gradle Toolkit A Gradle plugin providing various utility methods and common code required to set up multi-version Minecraft mods via archite

Essential 29 Nov 1, 2022
Andorid app which provides a bunch of useful Linux commands.

Linux Command Library for Android The app currently has 3203 manual pages, 1351 one-line scripts and a bunch of general terminal tips. It works 100% o

Simon Schubert 271 Dec 31, 2022
Simple Kotlin application that displays the currently available network interfaces on your machine

Network-Interface-Checker Simple Kotlin application that displays the currently available network interfaces on your machine. An executable jar can be

Joshua Soberg 3 Jun 10, 2022
A collection of code generators powered by ksp.

AutoKsp A collection of code generators powered by ksp. status: working in progress Projects AutoGradlePlugin - Generate gradle plugin properties file

shenghaiyang 0 Nov 8, 2021
Gradle plugin to manage tests which should only run nightly and not every time a CI/CD pipeline builds.

NightlyTestsPlugin Gradle Plugin to configure which (j)Unit tests should only be run nightly and not everytime a CI/CD pipeline is triggered. Usage To

VISUS Health IT GmbH 0 Dec 7, 2021
Remove MIUI's performance limit, run app at maximum FPS

MIUI 性能救星 移除 MIUI 对应用的性能限制,以最高帧率运行应用 介绍 本模块旨在用各种方式提升系统运行应用的性能。 目前支持的功能: 对指定应用解除 MIUI 系统 "电量与性能" 应用云控限制屏幕刷新率 "电量与性能" 应用会根据前台应用情况,限制应用的运行帧数。

null 48 Jan 1, 2023
This is the interpreter of Hime language, a dialect of Lisp, run on JVM platform.

Hime Language About This is the interpreter of Hime language, a dialect of Lisp, running on JVM platform. Once a feature is finished and tested, and n

Hime Programming Language 8 Jul 12, 2022
AndroidIDE - an IDE for Android to develop full featured Android apps on Android smartphones.

AndroidIDE - an IDE for Android to develop full featured Android apps on Android smartphones.

Akash Yadav 615 Dec 27, 2022
Aggregated Android news, articles, podcasts and conferences about Android Development

DroidFeed Curated news feed for Android Developers! Stay up to date with the latest Android Development news. Built for the Android developer communit

Dogan Gulcan 183 Dec 2, 2022