6

我正在构建 AOSP,v4.4.2。我想指定“内部版本号”字符串的一部分(根据设置-> 关于平板电脑)。

关于平板电脑页面

我知道这可以通过使用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

我应该更改什么来指定内部版本号?

4

2 回答 2

11

in的BUILD_IDbuild/core/build_id.mk是定义 this 的地方:

# 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

该值被写入您的构建属性,设置从那里读取它,因此您只需将该值更改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
于 2015-01-27T21:47:34.497 回答
11

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 所提到的, inBUILD_IDbuild/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_NUMBERPLATFORM_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 
于 2015-01-28T01:03:54.457 回答