• 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即可

  • 相关阅读:
    MySQL 连接驱动器包 下载教程
    手把手教你用VMware安装Centos7.9镜像(史上最详细)
    Redis(四)——Jedis操作Redis6、Redis6与SpringBoot整合
    锂热电池检测设备 你一定没见过这种检测方式!
    虹科案例 | 2016年 Komatsu 138US负载下发动机抖动
    在MAUI中使用Masa Blazor
    包管理机制、变量声明方式的区别
    为什么不用刻意去学一门编程语言
    shell脚本编程之循环
    PaddleNLP基于ERNIR3.0文本分类:WOS数据集为例(层次分类)
  • 原文地址:https://blog.csdn.net/weixin_44128558/article/details/125487953