Makefile定义了如何为构建创建(连接)构建号.
用户构建
对于user builds(构建目标,如午餐所指定),构建号将只是“$(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)
在make文件中设置构建参数
在mentioned by @eldarerathis中,build / core / build_id.mk中的BUILD_ID值是定义构建字符串的一部分的位置,但是这可能会在另一个make(* .mk)文件中被覆盖.
运行午餐时,将打印BUILD_ID的值以进行验证.如果此值与build_id.mk文件中的值不同,则搜索其设置位置,然后重新配置它.例如,如果作为午餐的一部分,输出包括“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"
然后,更新包含BUILD_ID的.mk文件.相应地设置其他构建参数.
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