CJB*_*JBS 6 versioning android build-process android-source build-numbers
我正在建设AOSP,v4.4.2.我想指定"Build number"字符串的一部分(根据设置 - >关于平板电脑).

我知道可以使用CONFIG_LOCALVERSIONdefconfig值为内核完成此操作.但我想改变"内部版本号",而不是"内核版本"(我能够成功完成).
目前,我的AOSP构建的相关部分是这样的:
# Source build variables
. build/envsetup.sh
# Specify the build target:
# * user -> limited access; suited for production (no ADB)
# * userdebug -> like "user" but with root access and debuggability; preferred for debugging
# * eng -> development configuration with additional debugging tools (with ADB)
lunch mydevice-eng
# Build it!
time m 2>&1 | tee build.out
Run Code Online (Sandbox Code Playgroud)
我应该更改什么来指定内部版本号?
的BUILD_ID在值build/core/build_id.mk是其中这定义为:
# BUILD_ID is usually used to specify the branch name
# (like "MAIN") or a branch name and a release candidate
# (like "CRB01"). It must be a single word, and is
# capitalized by convention.
export BUILD_ID=KOT49H
Run Code Online (Sandbox Code Playgroud)
该值将写入您的构建属性,而Settings会从那里读取它,因此您只需将该值更改export为您想要的任何值.评论仅供参考,您无需遵循其中列出的惯例.在主分支中,它们将其定义为AOSP当前.
另一个可用的标志是DISPLAY_BUILD_NUMBER(示例).它是可选的,在您的情况下可能不需要,但这里有一个如何工作的描述,以防它可能有用:
# DISPLAY_BUILD_NUMBER should only be set for development branches,
# If set, the BUILD_NUMBER (cl) is appended to the BUILD_ID for
# a more descriptive BUILD_ID_DISPLAY, otherwise BUILD_ID_DISPLAY
# is the same as BUILD_ID
DISPLAY_BUILD_NUMBER := true
Run Code Online (Sandbox Code Playgroud)
Makefile定义了如何为构建创建(连接)构建号.
对于用户构建(构建目标,如午餐所指定),构建号将只是" $(BUILD_ID) $(BUILD_KEYS)",除非DISPLAY_BUILD_NUMBER参数设置为"true".
对于其他构建(即eng/userdebug),包含更多信息:
build_desc := $(TARGET_PRODUCT)-$(TARGET_BUILD_VARIANT) $(PLATFORM_VERSION) $(BUILD_ID) $(BUILD_NUMBER) $(BUILD_VERSION_TAGS)
Run Code Online (Sandbox Code Playgroud)
Makefile源代码可在此处获取:https://android.googlesource.com/platform/build/+/android-4.4.2_r1/core/Makefile#106
如@eldarerathis所述,BUILD_ID值in 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
============================================
Run Code Online (Sandbox Code Playgroud)
...然后搜索"4.4.2_1.0.0-ga"找到它:
me@mybox:~/AOSP$find . -name "*.mk" | xargs grep "4.4.2_1.0.0-ga"
Run Code Online (Sandbox Code Playgroud)
然后,更新.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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5878 次 |
| 最近记录: |