You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1 Mac上AOSP编译的Android11/13/14模拟器镜像无法启动求助

针对AOSP编译arm64模拟器镜像启动失败的解决方案

以下是针对你遇到的Android11/13/14分支编译镜像无法启动(Android13出现VFS挂载根文件系统panic)问题的具体修复步骤:

1. 修正模拟器内核配置

Android13+的sdk_phone_arm64默认内核配置可能缺失QEMU virtio块设备支持,这是导致根文件系统挂载失败的核心原因:

  • 进入内核源码目录(如kernel/common或对应分支的内核路径)
  • 加载模拟器专属内核配置:make ARCH=arm64 goldfish_defconfig
  • 打开配置编辑器:make ARCH=arm64 menuconfig
  • 确保以下选项设为y(编译进内核):
    • CONFIG_VIRTIO_BLK(virtio块设备驱动)
    • CONFIG_VIRTIO_MMIO(virtio MMIO接口支持)
    • CONFIG_BLK_DEV_INITRD(初始RAM磁盘支持)
  • 保存配置后重新编译内核:make ARCH=arm64 -j$(nproc)
  • 将编译生成的arch/arm64/boot/Image替换到AOSP的out/target/product/generic_arm64/目录,重新执行make emu_img_zip

2. 使用模拟器专属编译目标

sdk_phone_arm64是通用手机目标,Android13+推荐使用模拟器专属目标来确保配置正确:

  • 替换原lunch命令:lunch sdk_gphone64_arm64-userdebug
  • 执行全量清理编译:m clean && m -j$(nproc)
  • 重新生成镜像包:make emu_img_zip

3. 调整根文件系统挂载参数

编辑device/generic/goldfish/arm64/init.rc(对应设备的初始化脚本),确保根挂载逻辑正确:

  • 在on init段中,确认根设备挂载命令为:mount ext4 /dev/block/vda /system ro wait
  • 检查initrd相关初始化步骤,确保必要的块设备模块已加载

4. 验证镜像打包完整性

手动检查out/target/product/generic_arm64/emu_img.zip的内容,确保包含:

  • kernel-ranchu(或kernel-goldfish)内核文件
  • ramdisk.img、system.img、userdata.img
  • 若缺少内核文件,手动复制编译好的内核镜像到对应目录后重新打包

5. 适配M1 Mac模拟器配置

修改AVD的config.ini文件(路径:~/.android/avd/<你的AVD名称>/config.ini),添加以下参数:

  • hw.cpu.ncore=2
  • disk.dataPartition.size=6442450944(6GB数据分区)
  • hw.ramSize=2048
  • hw.gpu.mode=swiftshader_indirect(适配M1 GPU)

内容的提问来源于stack exchange,提问作者Banana999

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 07:23:13