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);


    接着 看 最上边 的解释








  • 相关阅读:
    Codeforces Round #251 (Div. 2) A
    topcoder SRM 623 DIV2 CatAndRat
    topcoder SRM 623 DIV2 CatchTheBeatEasy
    topcoder SRM 622 DIV2 FibonacciDiv2
    topcoder SRM 622 DIV2 BoxesDiv2
    Leetcode Linked List Cycle II
    leetcode Linked List Cycle
    Leetcode Search Insert Position
    关于vim插件
    Codeforces Round #248 (Div. 2) B. Kuriyama Mirai's Stones
  • 原文地址:https://www.cnblogs.com/liulaolaiu/p/11744736.html
Copyright © 2011-2022 走看看