一、下载Android源码
Android源码通过repo工具获取,编译Android源码需要设置相关的环境。(Android Source网站)
$repo init -u https://android.googlesource.com/platform/manifest -b master
如需签出 master 之外的其他分支,需要-b
指定分支。分支参考网站:源代码标记和 build
比如我们想获取android-12.1.0_r27
的源码,可以通过下面的命令。
$repo init -u https://android.googlesource.com/platform/manifest -b android-12.1.0_r27
$repo sync -j8
如果连接谷歌源有问题(谷歌一般都需要翻墙),也可以从国内镜像源下载源代码:
二、编译
模拟器镜像是通过qemu运行的。源码中定义的product为sdk_phone_xx(xx为arm,arm64,x86,x86_64等)。我们需要通过下面的命令设置环境,选择要编译的目标product并启动编译过程。
$source ./build/envsetup.sh
$lunch sdk_phone_x86
$make -j32
如果想构建 x86_64 位Android虚拟机运行镜像,则需针对 64 位目标运行 lunch
。编译完成后会生成镜像文件。通过命令emulator
可以直接启动模拟器。
$lunch sdk_phone_x86_64
$make -j32
[ 99% 36747/36947] Target empty super fs image: out/target/product/emulator_x86_64/super_empty.img
2022-11-01 15:43:06 - build_super_image.py - INFO