ubuntu qemu运行 android
·
最近需要学习一些安卓的相关知识。想到用ubuntu qemu 运行安卓系统先玩一下。当前ubuntu 运行环境为Ubuntu 20.04.
1、环境准备
1.1 安装 QEMU 和 KVM
sudo apt install qemu qemu-kvm libvirt-daemon-system bridge-utils virt-manager
安装后重启系统,并验证 KVM 支持:
[~]$kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
1.2 配置用户权限
将当前用户加入 libvirt 和 kvm 组
sudo usermod -aG libvirt $USER
sudo usermod -aG kvm $USER
2、获取 Android 镜像
2.1 下载安卓镜像
如果下面链接失效的话可以从安卓官网下载(如:android-x86_64-9.0-r2-k49.iso)。
$wget https://nchc.dl.sourceforge.net/project/android-x86/Release%209.0/android-x86_64-9.0-r2-k49.iso?viasf=1
--2025-04-01 09:13:48-- https://nchc.dl.sourceforge.net/project/android-x86/Release%209.0/android-x86_64-9.0-r2-k49.iso?viasf=1
Resolving nchc.dl.sourceforge.net (nchc.dl.sourceforge.net)... 140.110.96.69, 2001:e10:ffff:1f02::17
Connecting to nchc.dl.sourceforge.net (nchc.dl.sourceforge.net)|140.110.96.69|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 963641344 (919M) [application/octet-stream]
Saving to: ‘android-x86_64-9.0-r2-k49.iso?viasf=1’
android-x86_64-9.0-r2-k4 0%[ ] 4.26M 961KB/s eta 13m 24s
下载的文件重新命名
mv android-x86_64-9.0-r2-k49.iso\?viasf\=1 android-x86_64-9.0-r2-k49.iso
2.1 创建虚拟磁盘
下载的安卓系统需要安装到虚拟磁盘中。
qemu-img create -f qcow2 android.img 10G
3、启动 Android 虚拟机
3.1 基础启动命令
qemu-system-x86_64 \
-enable-kvm \ # 启用 KVM 加速
-m 4G -smp 4 \ # 分配 4GB 内存和 2 核 CPU
-hda android.img \ # 指定虚拟磁盘
-cdrom android-x86_64-9.0-r2-k49.iso \ # 指定 ISO 镜像
-net nic -net user \ # 启用用户模式网络
-vga qxl \ # 使用 QXL 虚拟显卡
-device virtio-serial-pci \ # 添加 virtio 串口设备
-spice port=5900,addr=127.0.0.1 \ # 启用 SPICE 远程桌面支持
-device virtio-keyboard-pci # 优化键盘输入
3.1.1、 问题1,启动报错
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000001H:ECX.svm [bit
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000001H:ECX.svm [bit
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000001H:ECX.svm [bit
qemu-system-x86_64: warning: host doesn't support requested feature: CPUID.80000001H:ECX.svm [bit
该警告表明宿主机不支持 QEMU 请求的 AMD SVM(Secure Virtual Machine)硬件虚拟化功能(CPUID.80000001H.svm [bit 2]),常见于嵌套虚拟化环境或宿主机未启用 AMD-V 的情况。
修改启动,添加启动参数"-cpu host"
qemu-system-x86_64 \
-cpu host \ # 在 QEMU 命令中强制使用宿主机 CPU 模型并启用 KVM
-enable-kvm \ # 启用 KVM 加速
-m 4G -smp 4 \ # 分配 4GB 内存和 4 核 CPU
-hda android.img \ # 指定虚拟磁盘
-cdrom android-x86_64-9.0-r2-k49.iso \ # 指定 ISO 镜像
-net nic -net user \ # 启用用户模式网络
-vga qxl \ # 使用 QXL 虚拟显卡
-device virtio-serial-pci \ # 添加 virtio 串口设备
-spice port=5900,addr=127.0.0.1 \ # 启用 SPICE 远程桌面支持
-device virtio-keyboard-pci # 优化键盘输入
在Linux系统中使用如下命令,远程连接qemu
remote-viewer spice://127.0.0.1:5900
可以看到需要输入密码

3.1.2、问题2,支持密码输入
qemu-system-x86_64: warning: Spice: reds.c:2231:reds_handle_ticket: Ticketing is enabled, but no password is set. please set a ticket first
virtio_input_hid_handle_status: unknown type 20
virtio_input_hid_handle_status: unknown type 20
该警告表明在使用 QEMU 的 SPICE 图形协议时启用了 Ticketing 认证机制但未设置密码。SPICE 协议默认要求 Ticketing 与密码配合使用,否则会触发此警告
处理方法 1. 添加密码支持
在 QEMU 启动命令中通过password 参数为 SPICE 连接设置密码
qemu-system-x86_64 \
-cpu host \ # 在 QEMU 命令中强制使用宿主机 CPU 模型并启用 KVM
-enable-kvm \ # 启用 KVM 加速
-m 4G -smp 4 \ # 分配 4GB 内存和 2 核 CPU
-hda android.img \ # 指定虚拟磁盘
-cdrom android-x86_64-9.0-r2-k49.iso \ # 指定 ISO 镜像
-net nic -net user \ # 启用用户模式网络
-vga qxl \ # 使用 QXL 虚拟显卡
-device virtio-serial-pci \ # 添加 virtio 串口设备
-spice port=5900,addr=127.0.0.1,password=12345678 \ # 启用 SPICE 远程桌面支持port=5900:指定 SPICE 服务端口(默认 5900),password=your_password:设置连接密码(需至少 8 位)
-device virtio-keyboard-pci # 优化键盘输入
处理方法 2 关闭密码
qemu-system-x86_64 \
-cpu host \ # 在 QEMU 命令中强制使用宿主机 CPU 模型并启用 KVM
-enable-kvm \ # 启用 KVM 加速
-m 4G -smp 4 \ # 分配 4GB 内存和 2 核 CPU
-hda android.img \ # 指定虚拟磁盘
-cdrom android-x86_64-9.0-r2-k49.iso \ # 指定 ISO 镜像
-net nic -net user \ # 启用用户模式网络
-vga qxl \ # 使用 QXL 虚拟显卡
-device virtio-serial-pci \ # 添加 virtio 串口设备
-spice port=5900,addr=127.0.0.1,disable-ticketing \ # 启用 SPICE 远程桌面支持disable-ticketing:直接跳过密码验证流程
-device virtio-keyboard-pci # 优化键盘输入
输入密码后可以正常进入安卓安装目录

3.2、安装 Android 系统到虚拟磁盘
首次启动时选择 Installation - Install Android-x86 to harddisk”,将系统安装到 android.img 磁盘 安装完成后重启虚拟机,并移除 -cdrom 参数以从磁盘启动
qemu-system-x86_64 -cpu host -enable-kvm -m 4G -smp 4 -hda android.img -net nic -net user -vga qxl -device virtio-serial-pci -spice port=5900,addr=127.0.0.1,password=12345678 -device virtio-keyboard-pci
启动界面1

启动界面2

启动界面3

安装完成,开始折腾
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)