Makefile 定义了如何为构建创建(连接)构建号。
用户构建
对于用户构建(构建目标,与午餐指定),构建号将简单地为“ $(BUILD_ID) $(BUILD_KEYS)
”,除非DISPLAY_BUILD_NUMBER
参数设置为“true”。
eng/userdebug 构建
对于其他构建(即 eng/userdebug),包括更多信息:
build_desc := $(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT) $(PLATFORM_VERSION) $(BUILD_ID) $(BUILD_NUMBER) $(BUILD_VERSION_TAGS)
Makefile 源代码可在此处获得:https ://android.googlesource.com/platform/build/+/android-4.4.2_r1/core/Makefile#106
在 make 文件中设置构建参数
正如@eldarerathis 所提到的, in的BUILD_ID
值build/core/build_id.mk
是定义部分构建字符串的位置,但是这可能会在另一个 make ( *.mk
) 文件中被覆盖。
运行时,将打印lunch
的值以供验证。BUILD_ID
如果此值与build_id.mk
文件中的值不同,则搜索设置它的位置,然后重新配置它。例如,如果作为 的一部分lunch
,输出包括“4.4.2_1.0.0-ga”:
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=4.4.2
...
HOST_BUILD_TYPE=release
BUILD_ID=4.4.2_1.0.0-ga
OUT_DIR=out
============================================
...然后搜索“4.4.2_1.0.0-ga”找到它:
me@mybox:~/AOSP$find . -name "*.mk" | xargs grep "4.4.2_1.0.0-ga"
然后,更新.mk
包含BUILD_ID
. 相应地设置其他构建参数。
BUILD_NUMBER
,PLATFORM_VERSION
并且BUILD_ID
位于:build/core/version_defaults.mk
。只有在没有设置它们的情况下启动构建时才会设置这些值。
在构建时将构建参数设置为参数
或者(在我看来最好),这些参数可以设置为构建命令行的一部分,如下所示:
me@mybox:~/AOSP$ time m BUILD_ID="MyBuildv1.2" BUILD_NUMBER=12345 2>&1 | tee build.out