zoukankan      html  css  js  c++  java
  • android 系统属性 build.prop

    /system/build.prop 是一个属性文件,在Android系统中.prop文件很重要,记录了系统的设置和改变。这个文件是如何生成的呢?

    build/tools/buildinfo.sh 脚本就是专门用于生成build.prop文件,
    build/core/Makefile中使用build/tools/buildinfo.sh 脚本生成build.prop文件
    并把系统默认的system.prop以及定制的system.prop中的设定追加到build.prop文件中
    后面还有一些设备相关的配置追加到build.prop


    在android手机:设置--关于手机, 以 Android版本 4.0.1 为例:

    在/build/tools/buildinfo.sh中定义 环境变量
    echo "ro.build.version.release=$PLATFORM_VERSION"

    /build/core/version_defaults.mk指定
    PLATFORM_VERSION := 4.0.1

    build.prop的生成是由make系统解析build/core/Makefile完成

    Makefile中首先定义各种变量,其中就有
    PLATFORM_VERSION="$(PLATFORM_VERSION)" \
    这在下一步执行时会用到

    Makefile中调用build/tools/buildinfo.sh执行脚本,并输出到build.prop

    如此在编译工程的时候会生成系统属性文件 /out/target/product/msm7627a/system/build.prop 烧写img后,系统属性文件存在于/system/build.prop中。

    最后在 /packages/apps/Settings/src/com/android/settins/DeviceInfoSettings.java 中读取system/build.prop并最终显示在手机屏幕上


    ---------------------------------------- 分割线 --------------------------------------------

    为了做个验证,我们在系统属性里添加一条 COMMUNICATION_VERSION
    步骤如下:

    1.在/build/core/version_defaults.mk中添加
    ifeq "" "$(COMMUNICATION_VERSION)"
      COMMUNICATION_VERSION := write into /build/core/version_defaults.mk
    endif


    2.在/build/tools/buildinfo.sh中添加
    echo "ro.version.communication=$COMMUNICATION_VERSION"


    3.在/build/core/Makefile中 相应的 位置 添加    
    COMMUNICATION_VERSION="$(COMMUNICATION_VERSION)"\


    4.在src-code/packages/app/Settings/res/xml/device_info_settings.xml中 添加
    <Preference android:key="communication_module_version"
                    style="?android:preferenceInformationStyle"
                    android:title="@string/Communication_module_version"
                    android:summary="@string/device_info_default"/>

    4.在/packages/apps/Settings/src/com/android/settins/DeviceInfoSettings.java的 onCreate函数中 添加
    setValueSummary(KEY_COMMUNICATION_MODULE_VERSION, "ro.version.communication");

    5.编译rootfs和打包

    6.查看/out/target/product/msm7627a/system/build.prop
    中会多了一条
    ro.version.communication=write into /build/core/version_defaults.mk

    6.烧写img到手机

    就会显示新添加的属性
    ------------------------------
    Communication module version

    write into /build/core/version_defaults.mk

    ------------------------------------

    注意:KEY_COMMUNICATION_MODULE_VERSIONcommunication_module_version就是XML中的key



  • 相关阅读:
    解析Javascript事件冒泡机制
    LeetCode——Flatten Binary Tree to Linked List
    流动python
    HDU2586
    Cannot find ActionMappings or ActionFormBeans collection
    reactor设计模式
    简单的Ajax应用实例
    CString——Left、Right、Find、ReverseFind
    MATLAB新手教程
    八大排序算法总结
  • 原文地址:https://www.cnblogs.com/liulaolaiu/p/11744855.html
Copyright © 2011-2022 走看看