我正在构建AOSP 4.4.2。我想指定“内部版本号”字符串的一部分(按照设置->关于平板电脑)。
我知道可以使用CONFIG_LOCALVERSION
defconfig值为内核完成此操作。但是我想更改“内部版本号”,而不是“内核版本”(我能够成功完成此操作)。
当前,我的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
我应该更改什么来指定内部版本号?
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)
可在以下位置获取Makefile源:https : //android.googlesource.com/platform/build/+/android-4.4.2_r1/core/Makefile#106
如@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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句