Android 9 MTK 更改系统的版本号

系统的内部版本号是固定的,想在版本号加入时间

1 Setting 应用层调用

在这里插入图片描述

2 framework层定义

获得ro.build.version.incremental属性为系统内部版本号,接下来找在哪里set这个属性

frameworks\base\core\java\android\os\Build.java
在这里插入图片描述

3

所有的系统属性都是在buildinfo.sh中

build/make/tools/buildinfo.sh
在这里插入图片描述

4 BUILD_NUMBER 属性定义

\build\make\core\version_defaults.mk
在这里插入图片描述

到这里就可以将系统内部版本号修改成任何形式了,可还是没找到在哪里将内部版本号定义死的地方

5 问题

这里绕了以下弯路,没有去找 BUILD_NUMBER 在哪里去赋值的,而是从系统编译文件找 BUILD_NUMBER 在哪里赋值的

5.1

\build\core\Makefile 在这里插入图片描述

可以看到BUILD_NUMBER 是通过 BUILD_NUMBER_FROM_FILE 属性获得的,之后找 BUILD_NUMBER_FROM_FILE 在哪里定义

5.2

BUILD_NUMBER_FROM_FILE 属性通过读取out文件下的build_number.txt 文件内容得到

\build\make\core\config.mk
在这里插入图片描述
在这里插入图片描述

5.3

找 build_number.txt 在哪里生成的

\build\make\core\main.mk
在这里插入图片描述

到这里心想不就矛盾了吗,BUILD_NUMBER 通过 build_number.txt 中的内容获得,但 build_number.txt 中的内容又是根据BUILD_NUMBER 属性生成的

其实是顺序没搞对,应该是从根目录的Makefile看起,而不是从 build/make 目录下看起

根目录下的Makefile文件
在这里插入图片描述

可以看到是先执行的main.mk 生成build_number.txt 文件,在通过这个文件获取内部系统的版本号

5.4 解决

没头绪了,我就在根目录搜索哪里对BUILD_NUMBER 属性赋值,其实没必要,在device 目录下搜索即可,不同的厂家可能位置不同,最后发现

\device\mediatek\版型名称\BoardConfigCommon.mk
在这里插入图片描述

其实在编译的时候也可以看到
在这里插入图片描述
注释掉\device\mediatek\版型名称\BoardConfigCommon.mk 文件中的 BUILD_NUMBER ,在\build\make\core\version_defaults.mk 文件中更改BUILD_NUMBER 定义,就可以更改成任何自己想要显示的内部系统版本号了

By the way

在ota包上也增加系统版本号名称
执行make otapackage 会运行到 \build\core\Makefile 中的ota模块
在这里插入图片描述
更改name即可

  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值