乐于分享
好东西不私藏

手机上跑安卓模拟器:Termux+QEMU免Docker方案,无需Root

手机上跑安卓模拟器:Termux+QEMU免Docker方案,无需Root

想在手机上运行另一个完整的Android系统?不需要Docker,不需要Root,只需要Termux + QEMU就能实现。本文手把手教你搭建原生安卓容器,真机实测可用。

市面上大多数教程都在讲docker-android,但Docker在手机上运行问题多多:性能损耗大、镜像臃肿、网络配置复杂。今天介绍一种更轻量、更原生的方案——Termux + proot + QEMU

全程无需Root,普通Android手机就能跑,实测骁龙855可流畅运行Android-x86。

一、方案对比:为什么不用Docker?

方案优点缺点
docker-android开箱即用镜像臃肿(>1GB)、性能损耗大、需Docker守护进程
Anbox容器化、性能好需内核模块支持、Android 11+兼容性差
Waydroid现代容器、流畅需Wayland、仅部分机型支持
QEMU+proot无需Root、兼容性好、原生体验配置稍复杂

我们的方案核心优势:

  • 无需Root:利用proot实现用户态容器
  • 原生安卓:运行完整Android-x86系统,非精简版
  • 性能更好:无Docker额外开销,直接QEMU硬件虚拟化
  • 体积更小:基础镜像仅500MB起

二、环境准备

2.1 硬件要求

组件最低要求推荐配置
处理器骁龙660骁龙855+/天玑1000+
内存4GB6GB+
存储10GB可用20GB+
系统Android 8.0Android 10+

2.2 安装Termux

⚠️ 重要:务必从F-Droid或GitHub下载Termux,Google Play版已过时!
F-Droid:https://f-droid.org/packages/com.termux/

# 更新软件源
pkg update && pkg upgrade -y

# 安装必要工具
pkg install wget curl git -y

# 保持屏幕常亮(防止安装过程中断)
termux-wake-lock

三、方案A:QEMU运行完整Android-x86(推荐)

这是最接近原生体验的方案,运行完整的Android-x86系统,支持Google服务。

3.1 安装QEMU

# 安装QEMU及相关工具
pkg install qemu-utils qemu-common qemu-system-x86_64-headless -y

# 创建项目目录
mkdir -p ~/android-vm && cd ~/android-vm

# 验证安装
qemu-system-x86_64 --version

3.2 下载Android-x86镜像

# 下载Android-x86 9.0镜像(推荐版本,兼容性最好)
wget https://sourceforge.net/projects/android-x86/files/latest/download   -O android-x86_64-9.0-r2.iso

# 或者下载其他版本
# Android 11: android-x86_64-11.0-r2.iso
# Android 13: android-x86_64-13.0-r1.iso

3.3 创建虚拟磁盘

# 创建20GB动态磁盘(实际占用根据使用情况增长)
qemu-img create -f qcow2 android-disk.img 20G

# 查看磁盘信息
qemu-img info android-disk.img

3.4 启动安装程序

# 启动QEMU进行安装
qemu-system-x86_64   -m 2048   -smp 2   -cpu qemu64   -drive file=android-disk.img,format=qcow2,index=0,media=disk   -cdrom android-x86_64-9.0-r2.iso   -boot d   -netdev user,id=net0,hostfwd=tcp::5555-:5555   -device virtio-net,netdev=net0   -vga virtio   -display sdl,gl=on   -no-reboot

参数说明

  • -m 2048:分配2GB内存(根据手机调整)
  • -smp 2:使用2个CPU核心
  • -netdev user:用户模式网络,无需Root
  • hostfwd=tcp::5555-:5555:端口转发,用于ADB连接
  • -vga virtio:使用VirtIO显卡,性能更好

3.5 安装Android系统

启动后会进入Android-x86安装界面:

  1. 选择Installation开始安装
  2. 选择Create/Modify partitions创建分区
  3. 新建主分区 → 设为Bootable → 格式化为ext4
  4. 选择分区安装GRUB引导
  5. 安装完成后选择Reboot

3.6 日常使用启动命令

# 创建启动脚本
cat > start-android.sh << 'EOF'
#!/bin/bash
cd ~/android-vm

qemu-system-x86_64   -m 2048   -smp 2   -cpu qemu64   -drive file=android-disk.img,format=qcow2,index=0,media=disk   -netdev user,id=net0,hostfwd=tcp::5555-:5555,hostfwd=tcp::2222-:22   -device virtio-net,netdev=net0   -vga virtio   -display sdl,gl=on   -device virtio-tablet-pci   -no-reboot
EOF

chmod +x start-android.sh

# 以后直接运行
./start-android.sh

四、方案B:proot-distro运行Linux容器(轻量级)

如果只需要运行Linux应用而非完整Android,proot-distro是更轻量的选择。

4.1 安装proot-distro

# 安装proot-distro
pkg install proot-distro -y

# 查看可用发行版
proot-distro list

# 安装Ubuntu(或其他发行版)
proot-distro install ubuntu

4.2 启动Linux容器

# 登录Ubuntu
proot-distro login ubuntu

# 更新系统
apt update && apt upgrade -y

# 安装桌面环境(可选)
apt install xfce4 xfce4-goodies -y

# 安装VNC服务器
apt install tigervnc-standalone-server -y

# 设置VNC密码
vncpasswd

4.3 启动VNC桌面

# 启动VNC服务器
vncserver :1 -geometry 1280x720 -depth 24

# 在Android上安装VNC Viewer应用
# 连接到 localhost:5901

五、方案C:Waydroid(需特定内核)

如果你的手机内核支持binder模块,Waydroid能提供接近原生的Android体验。

⚠️ 注意:Waydroid需要内核支持binder和wayland,大部分手机需要刷入定制内核。此方案适合有刷机经验的用户。

5.1 检查内核支持

# 检查binder支持
ls /dev/binder*

# 如果有输出说明支持,否则需要刷内核

5.2 安装Waydroid

# 在proot-distro的Ubuntu中安装Waydroid
proot-distro login ubuntu

# 添加Waydroid仓库
curl https://repo.waydro.id | sudo bash

# 安装Waydroid
apt install waydroid -y

# 初始化(下载Android镜像)
waydroid init

# 启动容器
waydroid container start
waydroid session start

六、性能优化技巧

6.1 启用KVM加速(需Root)

如果手机已Root且内核支持KVM,可以大幅提升性能:

# 检查KVM支持
ls /dev/kvm

# 启动时添加-enable-kvm参数
qemu-system-x86_64   -enable-kvm   -m 2048   ...其他参数

6.2 减少内存占用

# 使用轻量级Android版本
# 下载Android-x86的精简版镜像
# 或使用Alpine Linux替代完整Android

6.3 使用zRAM扩展内存

# 启用zRAM(需要Root)
su -c 'echo 2G > /sys/block/zram0/disksize'
su -c 'mkswap /dev/block/zram0'
su -c 'swapon /dev/block/zram0'

七、常见问题解决

7.1 启动黑屏/卡顿

# 尝试不同的显卡驱动
-vga std      # 标准VGA
-vga cirrus   # Cirrus显卡
-vga vmware   # VMware显卡
-vga virtio   # VirtIO(推荐)

7.2 网络连接失败

# 在Android虚拟机内设置DNS
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf

7.3 ADB连接不上

# 在Termux中连接QEMU里的Android
adb connect localhost:5555

# 查看设备
adb devices

八、实际应用场景

  • 🧪 应用测试:在隔离环境测试可疑APP,保护主系统安全
  • 🎮 游戏多开:同时运行多个游戏账号(需足够性能)
  • 💼 工作隔离:工作APP和个人APP完全分离
  • 🔒 隐私保护:敏感操作在虚拟机完成,不留痕迹
  • 📚 学习实验:随意折腾系统,搞坏了重装即可

九、写在最后

通过Termux + QEMU + proot的方案,我们实现了:

  • ✅ 无需Root,普通手机就能运行完整Android系统
  • ✅ 无Docker开销,原生QEMU虚拟化性能更好
  • ✅ 容器隔离,安全性和灵活性兼备
  • ✅ 多种方案可选,从轻量级到完整系统都有

虽然手机性能有限,无法替代PC上的Android模拟器,但对于应急使用、应用测试、隐私保护等场景,这个方案完全够用。

💡 关注公众号回复「安卓模拟器」获取一键安装脚本和预配置镜像下载链接。遇到问题欢迎评论区交流!