AOSP的“lunch”组合的含义是什么,我需要选择哪些?

20

我是一个新手,对于Android设备ROM开发并不熟悉。不管怎样,我现在正在将AOSP构建到一台配备64位处理器的中国设备上。我遵循源自source.android.com的菜单,并在执行“lunch”命令时,终端显示:“Lunch menu... pick a combo:”。

我有两个选项正在考虑:aosp_arm-eng和aosp_arm64_eng。

如我所述,我正在为一台64位处理器的设备进行构建。这是否意味着我需要选择aosp_arm64-eng?因为我尝试过这样做,但是仿真器由于某种原因无法正常工作...

2个回答

11
那些名称是由构建系统即兴构建的。它们反映了目录中特定设备构建的情况(具体而言,通过在子目录中运行文件)。
连字符(“-”)之前的部分是目标硬件。连字符之后的部分是、和中的一个。这些关键字控制添加到构建中的调试工具以及adbd是否以root身份运行。 aosp_arm-engaosp_arm64_eng都应该产生有用的模拟器。然而,两者都无法在您的设备上使用。对于您的设备,您需要一个特定的、定制的构建。如果没有已经可用的构建,创建它可能会非常耗时。

4
$AOSP/device 目录值得重复提及。除了 $AOSP/vendor 和 $AOSP/product,任何在这三个目录下找到的 vendorsetup.sh 文件都会填充 lunch 菜单。对于一个干净的 master 拉取,只有 $AOSP/device 目录具有这些文件。请注意,不要更改原意。 - Les

7

(两年后)

此答案是为了进一步更新先前的答案。"午餐" 菜单组合由两个或三个字段组成。前两个字段如上所述,重复如下:

  1. 第一个字段(到第一个连字符'-'之间的部分)是目标硬件(作为TARGET_PRODUCT导出)。
  2. 第二个字段(在第一个连字符后面的部分,到可选的第二个连字符或行尾)是关键字之一:eng, userdebug, release(作为TARGET_BUILD_VARIANT导出)。
  3. 第三个(可选)字段(在可选的第二个连字符后面的部分)是版本(如果存在,则作为TARGET_PLATFORM_VERSION导出)。

并非列出了所有可能的午餐组合。最值得注意的是sdk-eng和变体。这个设置构建系统,以便您可以构建不同的SDK,例如:

    lunch sdk-eng
    make -j8 win_sdk

1
你知道在aosp项目中我能找到完整的TARGET_PRODUCT列表吗?我已经搜索了很多地方,但仍然找不到。而且分析aosp的构建系统对我来说也是一项巨大的任务!提前感谢你! - Clock ZHONG
@ClockZHONG 在AOSP 13中,可通过搜索 PRODUCT_MAKEFILE 查找可用产品列表:find -name *.mk | xargs grep PRODUCT_MAKEFILE - ForeverLearning

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接