Run a full, persistent Kali Linux rolling environment at near-native CPU speeds on stock Android 8+. Harness OpenRC system services, rootless Docker/Podman, real-time TCP network flows, hardware USB passthrough, and an integrated X11 GUI desktop.
Clearing VM data deletes all guest storage and configuration.
Kalidroid runs virtualization directly on your hardware block. No translation wrappers, no software chroots, and no root commands required.
Leverages Google's official Android Virtualization Framework (AVF) to interface with physical CPUs. Runs guest instruction sets with near-zero virtualization overhead.
Kalidroid bundles a read-only SquashFS system image for size efficiency, mapping runtime changes dynamically into a writable ext4 virtual disk overlay.
Run microservice containers directly on your phone. A customized 7.2-rc2 Linux kernel features complete network namespace overlays, CGroups, and rootless containment models.
Manage background ports, servers, and scripts (like Nginx, SSH, or database daemons) via an elegant toggle menu. Automatically boots and controls scripts under system Sysvinit.
Streams standard NMEA location logs from Android GPS sensors directly into Kali's Wi-Fi scanning engines, letting you map wireless nodes and export captures directly to Wigle.
Binds physical wireless adapters and SDR peripherals directly to your virtual environment using QMP sockets. Prompts native hardware monitoring and packet injection.
Test drive common Kali hacking, network diagnostic, and container utilities. Click a preset template to run an animated terminal script.
Follow these quick guides to configure permissions, initialize pKVM virtualization, and resolve Android memory limits.
To run the guest OS smoothly, verify that your Android device matches or exceeds the following metrics:
| Metric | Requirement |
|---|---|
| Architecture | arm64-v8a (ARM64 only) |
| OS Version | Android 8.0+ (API 26) for QEMU fallback, Android 13+ for AVF pKVM |
| Device Storage | 200 MB for APK + VM drive (default 2 GB, scalable to 64 GB) |
| Device Memory | 2 GB RAM minimum, 4 GB+ recommended for graph viewer/desktop |
On devices supporting Google's pKVM (such as Pixel 7/8/9), you can bind the virtual machine to native hardware cores. Run these ADB command shell grants to authorize permissions:
adb shell pm grant com.excp.kalidroid android.permission.MANAGE_VIRTUAL_MACHINE
adb shell pm grant com.excp.kalidroid android.permission.USE_CUSTOM_VIRTUAL_MACHINE
Once granted, enter the app's settings menu and change the virtualization backend to Auto or AVF.
On Android 12+, the OS's Activity Manager monitors background terminal tasks and aggressively stops long-running native child programs (phantom processes) under memory pressure.
Run this command script over an ADB shell hook to disable phantom process termination:
adb shell "/system/bin/device_config set_sync_disabled_for_tests persistent"
adb shell "/system/bin/device_config put activity_manager max_phantom_processes 2147483647"
adb shell settings put global settings_enable_monitor_phantom_procs false
Track version history, hypervisor enhancements, and core security modules of the Kalidroid application.