我需要构建一个Android模拟器的自定义版本,并开始重建模拟器而不对AOSP 6.0.1 R62进行任何更改 .
令我惊讶的是,仿真器源代码不再包含在AOSP中 . 仿真器似乎预先构建在AOSP存储库中 . 经过一些研究,我设法 Build 了qemu(ranchu)本身:
- 我下载了qemu来源:
git clone -b qemu-android-2.2.0 \
https://android.googlesource.com/platform/external/qemu-android
- 我下载了qemu的Android构建脚本,这些脚本位于不同的存储库中:
git clone https://qemu-android.googlesource.com/qemu-ranchu
- 我跑了
qemu-ranchu/scripts/rebuild.sh
该脚本构建了qemu并在 qemu-ranchu/binaries/linux-x86_64/
中生成了二进制 qemu-system-aarch64
. 在AOSP中, $aosp/prebuilts/android-emulator/linux-x86_64/qemu/linux-x86_64/
中有一个具有相同名称的文件,但这不是最终用户将执行的文件 . 一个Android开发人员会在 $aosp/prebuilts/android-emulator/linux-x86_64/
中运行名为 emulator
的可执行文件,这显然是某种包围裸qemu二进制文件的包装器 .
所以实际的问题是:
-
是否有关于ranchu构建的文档及其涉及的所有内容?我找不到任何:(
-
emulator*
可执行文件中是否包含qemu或者它们是否执行外部qemu二进制文件? -
如果我用自定义二进制文件覆盖
aosp/prebuilts/android-emulator/linux-x86_64/qemu/linux-x86_64/
中的qemu二进制文件,运行emulator
会实际调用我的自定义qemu吗? -
我可以绕过
emulator
并直接运行我的qemu-system-aarch64
来启动AOSP图像吗?或者尝试配置它是疯了吗? -
所有
emulator*
二进制文件的来源在哪里?