zoukankan      html  css  js  c++  java
  • android“设置”里的版本号

    在文件 packages/apps/Settings/src/com/android/settings/DeviceInfoSettings.java 中

    setStringSummary("build_number", Build.DISPLAY);

    指定了设置--关于设备--版本号。


    Build.DISPLAY即Build类中的 DISPLAY 变量,在文件frameworks/base/core/java/android/os/Build.java 中:

    public static final String DISPLAY = getString("ro.build.display.id");

    当 android 系统跑起来 之后,会读取 /system/build.prop 文件里 对应的 字符串; 


    ro.build.display.id在文件build/tools/buildinfo.sh中:

    echo "ro.build.display.id=$BUILD_DISPLAY_ID"

     build/tools/buildinfo.sh 文件 会把 内容 写到 /system/build.prop 文件里,供 java文件 读取


     而BUILD_DISPLAY_ID在文件build/core/Makefile中: 

     BUILD_DISPLAY_ID := $(BUILD_ID).$(BUILD_NUMBER)

    其中 BUILD_ID在build/core/build_id.mk中赋值

    BUILD_ID := OPENMASTER

     

    BUILD_NUMBER 在 build/core/version_defaults.mk中赋值: 

    BUILD_NUMBER := eng.$(USER).$(shell date +%Y%m%d.%H%M%S)

    所以在版本号中会出现编译时间的字段。

    ro.build.display.id编译后保持在system下的build.prop文件。

    总结:想要 修改 版本号,可以通过 两个 部分 修改1. 修改 java文件,这样是 直接写死;2.修改 编译系统;

    ============================

    跟踪方法

    1、首先 打开 MID 在English 下,查看 Setting --> About tablet --> Build number

    2、到 source/packages/apps/Settings/res/ 下,grep -Rn "Build number" ./      找到 如下 信息

    ./values/strings.xml:1798:    <string name="build_number">Build number</string>

    3、然后再 grep -Rn "build_number" ./      找到 如下 信息

    ./xml/device_info_settings.xml:117:        <Preference android:key="build_number"
    ./xml/device_info_settings.xml:119:                android:title="@string/build_number"

    4、vim ./xml/device_info_settings.xml ,找到 如下 信息

    <!-- Detailed build version -->
    <Preference android:key="build_number" //这个 key 指定的是 java文件里的 build_number
            style="?android:preferenceInformationStyle"
            android:title="@string/build_number"
            android:summary="@string/device_info_default"/>

    解释:以上 title部分 是在 MID里 显示 出来的 标题名,而key 是 标题的内容,接下来 到 java文件里 找 对应 key的 build_number

    5、当前目录packages/apps/Settings/src/ 下, 执行 grep -Rn "build_number" ./   找到 如下 信息

    ./com/android/settings/DeviceInfoSettings.java:57:    private static final String KEY_BUILD_NUMBER = "build_number";

    6、vim  ./com/android/settings/DeviceInfoSettings.java ,通过 KEY_BUILD_NUMBER 找到 当前文件里的 如下 信息:

    setStringSummary(KEY_BUILD_NUMBER, Build.DISPLAY);


    接着 看 最上边 的解释

  • 相关阅读:
    20200722T1 【NOIP2015模拟10.29A组】三色树
    【NOIP2015模拟10.29B组】抓知了
    20200721T2 【NOIP2015模拟10.22】最大子矩阵
    20200721T1 【NOIP2015模拟10.22】矩形
    20200720T4 五子棋
    [JZOJ3809] 设备塔
    注册了!
    Python之元组和集合
    Python中列表详解
    python 字符串
  • 原文地址:https://www.cnblogs.com/LoongEmbedded/p/5298190.html
Copyright © 2011-2022 走看看