我想为 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 的步骤列表,那么它将很有用。
如果您在模拟器上运行生成的
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 可能是一个复杂的过程,仔细遵循所有必要的步骤非常重要。