生成的system.img未在模拟器上运行

问题描述 投票:0回答:1

我想为 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 或 AOSP_X86_64 定制 ROM 的步骤列表,那么它将很有用。

android linux android-emulator android-source android-tv
1个回答
0
投票

如果您在模拟器上运行生成的

system.img
时遇到问题,您可以尝试以下一些步骤:

检查您的构建过程:确保您按照正确的步骤构建系统映像。这包括使用正确的 Android 版本1初始化存储库、设置环境以及使用正确的命令构建系统映像。

在另一个模拟器上测试:尝试在另一个模拟器上运行系统映像,看看问题是否特定于某个模拟器。您可以通过转到

Tools -> AVD Manager -> Create Virtual Device
在 Android Studio 中执行此操作。

创建AVD系统映像:您可以创建可以在Android模拟器上运行的AVD映像。为此,您可以使用 make

-j32 sdk sdk_repo command
。这将为您创建一个 SDK,该 SDK 位于
aosp-master/out/host/linux-x86/sdk/sdk_phone_x86/sdk-repo-linux-system-images-eng.[username].zip
。您可以使用此 zip 来创建模拟器并测试您的功能。

检查错误消息:如果您的模拟器未启动并且仍然是黑屏,则可能会出现错误消息,可以帮助诊断问题。例如,“分段错误(核心转储)”错误可能表示系统内存存在问题。

请记住,在模拟器上构建和运行自定义 ROM 可能是一个复杂的过程,仔细遵循所有必要的步骤非常重要。

© www.soinside.com 2019 - 2024. All rights reserved.