A free, open-source, ad-free Android-on-Android virtual machine. Run a full isolated Android guest inside your existing device, with 32-bit app support on arm64-only hardware via QEMU user-mode emulation.
Download Β· Documentation Β· Roadmap Β· FAQ
- What is VineOS?
- Features
- Supported devices
- ROM support
- Installation
- Documentation
- Roadmap
- FAQ
- License
- Credits & acknowledgements
VineOS runs a complete, isolated Android operating system inside your existing Android device, without modifying the host OS or requiring root on most paths.
Unlike simple "app cloners" (Parallel Space, Dual Space) that sandbox
individual apps, VineOS virtualizes the full Android stack: its own
init, Zygote, SurfaceFlinger, ServiceManager, and everything else.
You get a real second phone inside your phone.
Why VineOS over alternatives like VPhoneOS or VMOS?
| Feature | VineOS | VPhoneOS | VMOS | Virtual Master |
|---|---|---|---|---|
| Open source | β | β | β | β |
| Ad-free | β | β | β | β |
| Free (fully) | β | Partial | Partial | β |
| 32-bit on arm64-only devices | β | β | β | β |
| Runs on arm, x86, and x86_64 hosts | β | β | β | β |
| GPL-3.0 licensed | β | β | β | β |
| Material You | β | β | β | β |
| Multiple ROM versions | β | Paid | Partial | Paid |
| No telemetry | β | β | β | β |
- π Completely free: no paywalls, no premium tiers, no ads, ever
- π Open source: GPL-3.0, fully auditable
- π¦ Multiple ROMs: Android 7.1, 9.0, 11, 12 (more planned)
- ποΈ 32-bit support everywhere: runs armeabi-v7a apps on arm64-only devices via QEMU user-mode binary translation
- π₯οΈ Multi-host support: builds and runs on arm64-v8a, armeabi-v7a, x86_64, and x86 devices, not just ARM
- π¨ Material You: dynamic color from your wallpaper on Android 12+, static vine-green fallback on 8-11
- β‘ Lightweight: zero background overhead when no VM is running, no persistent daemons
- π Isolated: PID, mount, UTS, and IPC namespace separation
- π± Multi-instance: run multiple independent VMs simultaneously
- π§ Root support: optional Magisk/root inside instances (requires rooted host)
- π± minSdk 26, targetSdk 37: supports Android 8.0 through Android 17
- Android 8.0 (API 26) or higher as the host OS
arm64-v8a,armeabi-v7a,x86_64, orx86processor- A kernel with Linux namespaces and loop device support (standard since Android 4.4)
32-bit ARM guest apps run natively where the host CPU supports it, and through QEMU user-mode emulation everywhere else, including on the growing range of arm64-only SoCs across many vendors, and on non-ARM hosts entirely. See ARCHITECTURE.md for the full host/guest compatibility matrix.
| ROM | Android Version | API | 32-bit | Status |
|---|---|---|---|---|
vine-rom-7 |
Android 7.1.2 Nougat | 25 | β | π‘ In progress |
vine-rom-9 |
Android 9.0 Pie | 28 | β | π΄ Planned |
vine-rom-11 |
Android 11 | 30 | β | π΄ Planned |
vine-rom-12 |
Android 12 | 31 | β | π΄ Planned |
ROMs are built from AOSP targeting the ranchu virtual device board and
distributed as .vrom archives. See
docs/BUILDING.md for the ROM
build guide.
Download the latest release APK from the Releases page.
VineOS is not yet on the Play Store. First release planned at Beta stability.
All project documentation, including the architecture guide, build
instructions, usage guide, contributing guide, and policies, lives in
docs/. Start there.
- Linux namespace container runtime (
unshare,pivot_root,execl) - QEMU binfmt_misc integration for 32-bit support (4-layer AArch32 detection)
- JNI bridge with
FramebufferBridge+UInputBridgewiring - Material You UI: Home, ROMs, Settings, and detail/create-instance screens
- Room DB + ViewModels + DataStore preferences
- ROM downloader (manifest fetch, streaming download, SHA-256 verification)
- Multi-host-ABI support (arm64-v8a, armeabi-v7a, x86_64, x86)
- First bootable Android 7.1.2 ROM image
- Framebuffer render loop (mmap to ANativeWindow blit)
- RGB565 to RGBA8888 conversion for Android 7.x guests
- Single-touch forwarding, synced to the guest's real display resolution
- Hardware key forwarding (back, home, volume, recents)
- Multi-touch forwarding (MT type B, up to 10 fingers)
- Clipboard sharing host to guest
- Writable
/datapartition (overlayfs on top of read-only ROM) - Instance snapshot / restore
- Android 9, 11, 12 ROM images
- ROM CDN + in-app download UI completion
-
prootfallback for non-rooted devices - Android Virtualization Framework (AVF) backend (Android 13+)
- Play Store + F-Droid release
- Magisk inside instances
- Per-instance VPN / network isolation
- GPU passthrough research
Does VineOS require root?
Root is not required for the planned no-root path (Phase 4). The current
implementation requires CAP_SYS_ADMIN for unshare() and mount().
Root is optional, only for Magisk inside instances.
Does VineOS work on arm64-only phones without 32-bit support? Yes, this is one of the core things VineOS is built for. We're aiming to support a wide range of SoCs across vendors, not just a specific model or two, and VineOS auto-detects arm64-only chips and switches to QEMU mode automatically.
Why GPL-3.0 and not MIT/Apache? VineOS uses QEMU (GPL-2.0-or-later) and is architecturally inspired by Anbox/Waydroid (GPL-3.0). GPL-3.0 ensures commercial forks must also open their changes.
Can I use VineOS on x86_64 Android devices or emulators?
Yes. VineOS builds and runs on arm64-v8a, armeabi-v7a, x86_64, and
x86 hosts; ARM guest ROMs run through QEMU on non-ARM hosts. See
ARCHITECTURE.md for exactly
what runs natively versus emulated on each host.
VineOS is licensed under the GNU General Public License v3.0. See LICENSE for the full text, and docs/TERMS.md for the project's terms of use.
| Component | License | Use |
|---|---|---|
| QEMU | GPL-2.0-or-later | ARMv7 user-mode emulation |
| AOSP | Apache-2.0 + various | ROM images |
| Jetpack Compose | Apache-2.0 | UI framework |
| Hilt | Apache-2.0 | Dependency injection |
| Room | Apache-2.0 | Local database |
- Anbox: the original Android-in-a-Linux-container project; VineOS's container architecture is directly inspired by its design
- Waydroid: maintained successor, reference for namespace setup and binfmt_misc integration
- redroid: Android in Docker, reference for mount table and device node setup
- QEMU: the backbone of VineOS's 32-bit emulation
- VPhoneOS / VPhoneGaGa: the closed-source inspiration that VineOS aims to replace with an open alternative
- The entire Android homebrew and modding community