`

Android属性之build.prop生成过程

 
阅读更多

Android属性之build.prop生成过程
  此部分网上这篇文章分析的不错:

http://blog.csdn.net/thl789/article/details/7014300 转载过来



       Android的build.prop文件是在Android编译时刻收集的各种property(LCD density/语言/编译时间, etc.),编译完成之后,文件生成在out/target/product/<board>/system/目录下。

在Android运行时刻可以通过property_get()[c/c++域] / SystemProperties_get*()[Java域]读取这些属性值。



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

1) Makefile中首先定义各种变量,这在下一步执行时会用到

  比如:

    PRODUCT_DEFAULT_LANGUAGE="$(calldefault-locale-language,$(PRODUCT_LOCALES))" \

    PRODUCT_DEFAULT_REGION="$(calldefault-locale-region,$(PRODUCT_LOCALES))" \

    ...

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

  Buildinfo.sh很简单,只是echo一些属性,比如:

    echo"ro.product.locale.language=$PRODUCT_DEFAULT_LANGUAGE"

    echo"ro.product.locale.region=$PRODUCT_DEFAULT_REGION"

    ...

而,ro.product.locale.language/ ro.product.locale.region就是些属性,等号后面是值。 PRODUCT_DEFAULT_LANGUAGE这些都在其他.mk文件中定义的





3) Makefile中直接把$(TARGET_DEVICE_DIR)/system.prop的内容追加到build.prop中

       是在很多目录下存在,都会收集追加到build.prop中,例如:

  ./device/samsung/maguro/system.prop

  ./device/samsung/crespo4g/system.prop

  ./device/samsung/crespo/system.prop

  ./device/qcom/msm8660_surf/system.prop

  ./device/qcom/msm7630_surf/system.prop

  ./device/qcom/msm8625/system.prop

  ./device/qcom/msm8960/system.prop

  ./device/qcom/msm7627a/system.prop

  ……



4)收集ADDITIONAL_BUILD_PROPERTIES中的属性,追加到build.prop中。

ADDITIONAL_BUILD_PROPERTIES又会收集PRODUCT_PROPERTY_OVERRIDES中定义的属性

ADDITIONAL_BUILD_PROPERTIES:= \

        $(ADDITIONAL_BUILD_PROPERTIES)\

        $(PRODUCT_PROPERTY_OVERRIDES)



PRODUCT_PROPERTY_OVERRIDES 在build/target/product/core.mk有:

       PRODUCT_PROPERTY_OVERRIDES := \

          ro.config.notification_sound=OnTheHunt.ogg \

          ro.config.alarm_alert=Alarm_Classic.ogg

     

通过build.prop生成过程的分析,可知哪里可以修改原有的属性或加入自己定义属性,那就是

  2) buildinfo.sh;

  3) system.prop;

  4) ADDITIONAL_BUILD_PROPERTIES或PRODUCT_PROPERTY_OVERRIDES。

不过个人建议改在system.prop或PRODUCT_PROPERTY_OVERRIDES,这对应于具体特定平台或产品的修改。
From:http://www.cnblogs.com/bastard/archive/2013/02/28/2937014.html
分享到:
评论

相关推荐

    Android build.prop生成过程y源码分析

    ### Android build.prop生成过程源码分析 #### 一、概览 `build.prop`是Android系统中的一个关键配置文件,它记录了系统构建时的重要属性信息,如屏幕密度(LCD density)、默认语言设置、编译时间等。这些信息对于...

    Android NDK 获取手机部分信息 build.prop

    以下是一些关键的`build.prop`属性及其含义: 1. `ro.build.id`: 这个字段标识了Android系统的版本ID,通常与特定的Android分支或定制ROM相关联。 2. `ro.build.display.id`: 显示设备的完整版本字符串,包括品牌和...

    【转】Android OTA 升级之三:生成recovery.img.doc

    ### Android OTA升级之三:生成recovery.img深入解析 在深入了解如何生成`recovery.img`之前,我们首先简要回顾一下Android OTA(Over-the-Air)升级的基本概念。OTA升级是移动设备上的一种常见更新方式,它允许...

    MTK系统编译架构,让你理解MTK系统编译脚本结构

    首先,我们要明白的是,MTK系统编译的核心在于构建脚本,它们通常是基于Makefile或者自定义的构建系统,如build.mtk或PDK(Platform Development Kit)中的build.prop。这些脚本负责定义编译规则,如编译目标、依赖...

    Android 源码里面添加一个系统app,最简单的app demo实例

    这个过程涉及多个步骤,包括创建应用程序、编译、签名以及打包到Android系统映像中。以下是一个简化的流程,用于在Android源码中添加一个最简单的系统应用DEMO。 1. **创建一个新的Android项目** 首先,你需要使用...

    linux Android基础知识总结.pdf

    - **配置编译目标**:通过`.config`文件或`build.prop`文件定义编译的具体目标。 - **编译过程**:运行`make`命令或相应的脚本进行编译。 - **镜像打包**:编译完成后,将编译出的各种文件打包成最终的镜像文件。 #...

    Android 如何启用user版本的adb源码分析

    在`build/core/Makefile`文件中有提到`default.prop`文件,这个文件包含了系统的默认属性设置。在`main.mk`中有一段代码负责生成这个文件: ```make # build/core/main.mk 示例 ifneq ($(ro.debuggable),0) $(call...

    mprop170119.rar

    首先,`ro.debuggable`是Android系统中的一个属性,存在于系统启动时生成的默认属性文件 `/system/build.prop` 中。`ro` 前缀代表 "read-only",意味着这个属性在系统启动后无法被修改。`debuggable` 属性的值决定了...

    android-19

    `build.prop` 文件是Android系统的配置文件,其中包含了设备的各种属性和设置。在4.2.2版本中,这些设置可能包括系统版本号、默认的语言、屏幕密度等,修改这些属性可以影响系统的运行行为。 `sdk.properties` 和 `...

    基于Android的BSP移植自动适配技术.pdf

    4. **系统配置与适配**:Android的配置文件如build.prop和device.mk等需要根据硬件特性进行修改。自动适配技术可以通过分析硬件规格,生成相应的配置文件,或动态修改现有配置,以确保系统正确运行。 5. **错误检测...

    HTCG13如何自己做rom.doc

    3. 进入解压后的System文件夹,找到`build.prop`文件,用记事本打开。 4. 在`build.prop`中使用查找功能,搜索`ro.product.version=`。 5. 修改等号后面的产品版本信息,例如改为`GFan by CareyLui`,保存更改。 6. ...

    Android4.4真机移植过程笔记

    - 解决方法:参考原生RK的`system.prop`文件(即`build.prop`),根据需要进行调整,并重新编译,以达到预期的显示效果。 #### 其他功能配置 - **开机动画**: - 编写脚本将相应的动画资源复制到指定位置。 - ...

    android windows上解包、打包工具

    你可以使用工具如“build.prop editor”来生成或修改这些信息。 5. 最后,将打包好的ROM文件通过adb或者专门的刷机工具刷入设备,完成整个流程。 需要注意的是,解包和打包Android ROM涉及的风险较高,错误操作...

    关于android7.1 做ota差分升级提示没有install-recovery.sh的方法(看不惯收30分的做法)

    这包括熟悉`build.prop`、`releasetools`目录下的脚本,以及如何使用`mmm`命令等。在解决这个问题时,可能还需要参考Android源码树中的文档,或者在社区论坛寻找类似问题的解决方案。务必谨慎操作,避免对设备造成...

    android_ota_升级包

    6. **build.prop** 和其他配置文件:这些文件可能包含针对特定设备或版本的配置参数,有助于系统识别和处理更新。 7. **resources.arsc** 和 **apk files**:可能包含更新的应用程序或资源文件,用于升级特定的应用...

    tiny6410 android开发指南

    接下来,是构建Android系统映像的过程,这涉及到编译Android源码、配置build.prop文件、选择合适的编译目标等步骤。开发者需要熟悉Android的构建系统,如使用make工具链、编译选项等,以生成适合Tiny6410的系统映像...

    构建嵌入式Android系统,1个积分

    编译过程会生成一个定制的Android镜像,包括系统映像、恢复映像和bootloader。 驱动程序开发是关键部分。对于嵌入式系统,可能需要编写或修改设备驱动以支持特定的硬件特性,如摄像头、触摸屏、无线网络等。这通常...

    Android_ROM

    2. **编辑`build.prop`文件**: - `ro.build.display.id=xxx`:显示内部版本信息。 - `ro.product.model=ME501`:指定机型。 - `ro.product.locale.language=zh`:设置语言为中文。 - `ro.product.locale.region...

    mini2440开发板之andriod使用手册

    开发者需要配置Android源码的build.prop文件,指定目标平台信息,然后执行编译命令生成系统映像。 四、系统调试与优化 移植完成后,需要对系统进行功能测试和性能调试。这包括启动过程的检查、硬件驱动的验证、...

Global site tag (gtag.js) - Google Analytics