【发布时间】:2017-02-07 13:56:16
【问题描述】:
我需要构建 Android 模拟器的自定义版本,并开始重新构建模拟器,而不对 AOSP 6.0.1 R62 进行任何更改。
令我惊讶的是,模拟器源代码不再包含在 AOSP 中。模拟器显示在 AOSP 存储库中预构建。经过一番研究,我设法自己构建了 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*二进制文件的来源在哪里?
【问题讨论】:
标签: android-emulator android-source qemu