Fir*_*his 8 qemu android-emulator android-source
我需要构建一个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
Run Code Online (Sandbox Code Playgroud)我下载了位于不同存储库中的qemu的Android构建脚本:
git clone https://qemu-android.googlesource.com/qemu-ranchu
Run Code Online (Sandbox Code Playgroud)我跑了 qemu-ranchu/scripts/rebuild.sh
该脚本构建QEMU和生成的二进制qemu-system-aarch64在qemu-ranchu/binaries/linux-x86_64/.在AOSP中,有一个具有相同名称$aosp/prebuilts/android-emulator/linux-x86_64/qemu/linux-x86_64/的文件,但这不是最终用户将执行的文件.一个Android开发人员会运行一个名为emulatorin 的可执行文件$aosp/prebuilts/android-emulator/linux-x86_64/,它显然是某种基于qemu二进制文件的包装器.
所以实际的问题是:
emulator*可执行文件里面包含他们QEMU还是他们执行外部QEMU的二进制?aosp/prebuilts/android-emulator/linux-x86_64/qemu/linux-x86_64/用我的自定义二进制文件覆盖qemu二进制文件,运行emulator实际上是否会调用我的自定义qemu?emulator并qemu-system-aarch64直接运行我的AOSP映像吗?或者尝试配置它是疯了吗?emulator*二进制文件的来源在哪里?“ranchu”模型是“goldfish”平台的下一代版本。这是对带有一些 VirtIO 设备(块、网络、控制台)以及自定义半虚拟化“管道”设备的“virt”板的轻量级调整。这允许来宾的用户空间与主机通信,主机既可用于与主机上的 adb 通信等功能,也可用于加速 OpenGL 命令的直通接口。
“模拟器”命令是您正确推测主(大量分叉)QEMU 二进制文件的包装器。它在 QEMU 本身和模拟手机的皮肤显示屏之间提供了粘合剂。除了 adb、console 和 GL 之外,它还执行一些跟踪和内存监控。
现在有一个更现代的模拟器,称为 Cuttlefish,它消除了一些 NIH 谷歌添加的内容,并使用 VirtIO 来实现更标准化的设备模型。该模拟器本身基于CrosVM,设计为可在KVM下运行,这使其更适合在云中进行大规模测试。
总结一下您的问题的答案:
我的(非常旧的)笔记如下:
repo init -u https://android.googlesource.com/platform/manifest -b emu-master-dev
cd ${REPO_ROOT}external/qemu
./android-configure.sh --no-strip --debug
make -j4
#The actual "QEMU2" emulator will be in ../qemu-android but the qemu
#directory includes all the wrapper programs you need. The emulator
##configure script overrides and replaces the upstream configure script
#and ensures it is properly linked in with the OpenGL wrappers.
export ANDROID_PRODUCT_OUT=/home/alex/lsrc/qemu/android/hackbox.generic
./objs/emulator -verbose -show-kernel -logcat '*:s' -selinux permissive -kernel ~/lsrc/qemu/linux.git/arch/arm/boot/zImage -sysdir /home/alex/lsrc/qemu/android/hackbox.generic -data userdata.img -ranchu -memory 2548 -qemu -d unimp,guest_errors
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1474 次 |
| 最近记录: |