提问人:krupal.agile 提问时间:7/16/2018 最后编辑:Alain C. Jiménezkrupal.agile 更新时间:9/16/2023 访问量:1786
生成的 system.img 未在模拟器上运行
Generated system.img not running on emulator
问:
我想为 Android TV 构建一个自定义 ROM。
我已按照 Android 源代码 - AOSP 网站上给出的步骤操作,并使用以下命令下载了源代码:
repo init -u https://android.googlesource.com/platform/manifest -b master
repo sync -j16 -c
source build/envsetup.sh
lunch aosp_x86-eng
为了构建系统映像,我使用以下命令:
make -j16
它使用最新的 Q 版本来构建:
PLATFORM_VERSION_CODENAME=Q
PLATFORM_VERSION=Q
TARGET_PRODUCT=aosp_x86
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=LiveTv
TARGET_ARCH=x86
TARGET_ARCH_VARIANT=x86
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.4.0-130-generic-x86_64-Ubuntu-16.04.4-LTS
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=OC-MR1
OUT_DIR=out
生成始终成功。 并且也会生成。system.img
ramdisk.img
我想在模拟器上测试系统映像。我使用了以下命令:
./emulator -avd tvrom -sysdir out/target/product/generic_x86/ -system out/target/product/generic_x86/system.img -ramdisk out/target/product/generic_x86/ramdisk.img -data out/target/product/generic_x86/userdata.img -kernel prebuilts/qemu-kernel/x86/kernel-qemu
名称是,其他参数是我构建的系统映像的路径。avd
tvrom
但是,执行此操作后,没有在模拟器中启动,并且在那里仍然是黑屏。system.img
此外,终端中出现打印错误:
Segmentation fault (core dumped)
我搜索了它,但没有找到任何解决方案。谁能帮忙?
编辑
如果有人提供了在 Android 模拟器上刷新和启动最新 AOSP_X86 或自定义 ROM AOSP_X86_64步骤列表,那么它将很有用。
答:
master 分支不是一个稳定的分支。始终同步官方标记的分支。
仿真器的正确午餐目标是 32 位sdk_phone_x86 位或 64 位的 sdk_phone_x86_64。
验证生成配置: 仔细检查您的生成配置,尤其是 lunch 命令。确保您为 Android TV x86 选择了正确的目标。您可以利用午餐来选择正确的目标:
午餐 aosp_x86-eng
使用预构建的内核: 您可以尝试使用模拟器本身提供的内核,而不是使用预构建目录中的内核。使用 -kernel-qemu 选项而不指定路径:
./emulator -avd tvrom -sysdir out/target/product/generic_x86/ -system out/target/product/generic_x86/system.img -ramdisk out/target/product/generic_x86/ramdisk.img -data out/target/product/generic_x86/userdata.img -kernel prebuilts/qemu-kernel/x86/kernel-qemu
使用 Android TV AVD: 创建专门用于 Android TV 的 AVD。您可以使用 AVD 管理器执行此操作:
avdmanager 创建 avd -n tvrom -k “系统映像;安卓-29;google_apis_playstore;x86英寸
然后,使用 AVD 名称启动模拟器:
模拟器 -AVD TVROM
重建并重试: 如果上述步骤都不能解决问题,您可能需要清理构建并尝试重建 ROM。有时,问题可能是由不完整或损坏的构建引起的。
清洁 制造 -j16
评论
repo sync
repo init