urlname
type
Post
password
SyncToConfluence
category
Android
date
Jun 23, 2025
slug
2fbd24a0-07bc-460e-8981-6123a2ed18fc
icon
Button
catalog
summary
tags
AOSP
Android
cover
Status
BusyTime
Status 1
status
Published

前言

🗒️
AOSP-源码下载编译
中,已经介绍了如何下载并编译AOSP的源码,所以,本文只要记录如何将编译完成后的产物,运行到虚拟机中

准备环境

虚拟机的运行,需要依赖以下环境
  • Android SDK
  • cmdline-tools

Android SDK

这里介绍在ubuntu下快速配置环境的方案:
  • JetBrains下载Toolbox
  • Toolbox中下载Android studio
  • 运行Android studio,此时如果没有Android SDK环境,Android studio会自动引导下载
  • 下载路径:/Android/Sdk

Cmdline-tools

  • 在上面下载好的Android Studio中,依次点击Settings → Languages & Frameworks → Android SDK → SDK Tools → 勾选Android SDK Command-line Tools → apply
  • 此时会自动下载对应的 Cmdline-tools
  • 下载路径:/Android/Sdk/cmdline-tools/
💡
这里用到Cmdline-tools,主要是虚拟机emulator的执行,需要依赖avdmanager和sdkmanager,两者包含在Cmdline-tools中

执行步骤

🗒️
AOSP-源码下载编译
操作的基础上,要将AOSP编译产物运行到虚拟机上,还需要以下步骤

确认产物

编译完成后会输出对应的img产物,路径为:
  • 目录下重要的编译产物说明:
文件/目录名
说明
system.img
系统分区镜像(包含 framework、系统 app 等)
ramdisk.img
ramdisk 镜像(内核初始化后加载的 init 脚本)
userdata.img
数据分区镜像(模拟 /data 分区)
boot.img
启动镜像(内核 + ramdisk)
vendor.img
Vendor 分区(如果有的话)
kernel-ranchu
Ranchu 模拟器用的内核(x86_64 模拟器专用)
system 目录
编译输出的 system 分区根目录(未打包成镜像时可读写)
root 目录
rootfs 根文件系统内容(ramdisk 展开内容)
obj
中间产物(.o 文件等)
symbols
带调试符号的可执行文件,可用于 gdb 调试

创建虚拟机

这里还是使用Android studio的虚拟机管理器(AVDManager)进行创建,不过需要注意的是,创建虚拟机的时候,需要记住选择的API,Services,如这里的API 33和Google APIs
notion image

替换镜像产物

由于通过Android Studio的AVDManager创建的虚拟机,都是用的默认的Android镜像。所以,需要在运行之前,将我们的产物img文件,替换掉原先的img镜像
这里展示通过脚本替换产物
  • 将上面的脚本保存到sh文件,如:run_aosp_amulator.sh
  • 设置执行权限: chmod +x run_aosp_amulator.sh
  • 执行脚本启动虚拟机: ./run_aosp_amulator.sh
EasiNote重构之UI模块读书笔记——《新摄影笔记》:取景常见问题
Loading...