码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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即可

  • 相关阅读:
    mysqld_exporter无法连接mysql解决
    服务器日志事件ID4107:从自动更新 cab 中提取第三方的根目录列表失败,错误为: 已处理证书链,但是在不受信任提供程序信任的根证书中终止。
    ssm学术会议管理系统设计与实现毕业设计源码061504
    单片机核心/RTOS必备 (ARM汇编)
    Java基础:方法
    Python顺序结构程序设计(湖南工业大学)
    Spring体系结构详解
    我在Vscode学OpenCV 色彩空间转换
    那些使用CEM系统的企业,都怎么样了?
    ssm+vue基于微信小程序的捷邻生活便利购物超市商城系统#毕业设计
  • 原文地址:https://blog.csdn.net/weixin_44128558/article/details/125487953
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号