Android build.prop生成过程分析
来源:互联网 发布:淘宝买东西不用验证码 编辑:程序博客网 时间:2024/06/06 02:35
build.prop的是build/core/Makefile生成的。
ifdef TARGET_SYSTEM_PROPsystem_prop_file := $(TARGET_SYSTEM_PROP)elsesystem_prop_file := $(wildcard $(TARGET_DEVICE_DIR)/system.prop)endif先加载项目的system.prop,变量TARGET_DEVICE_DIR赋值代码如下:
TARGET_DEVICE_DIR := $(patsubst %/,%,$(dir $(board_config_mk)))board_config_mk := \$(strip $(wildcard \$(SRC_TARGET_DIR)/board/$(TARGET_DEVICE)/BoardConfig.mk \$(shell test -d device && find device -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \$(shell test -d vendor && find vendor -maxdepth 4 -path '*/$(TARGET_DEVICE)/BoardConfig.mk') \))
代码先查找device和vendor目录下面有BoardConfig.mk的文件夹赋值给变量board_config_mk,board_config_mk里面的目录在去掉末尾的“/”后赋值给TARGET_DEVICE_DIR。
下面就到了生成build.prop了,
$(INSTALLED_BUILD_PROP_TARGET): $(BUILDINFO_SH) $(INTERNAL_BUILD_ID_MAKEFILE) $(BUILD_SYSTEM)/version_defaults.mk $(system_prop_file)@echo Target buildinfo: $@@mkdir -p $(dir $@)$(hide) TARGET_BUILD_TYPE="$(TARGET_BUILD_VARIANT)" \TARGET_DEVICE="$(TARGET_DEVICE)" \PRODUCT_NAME="$(TARGET_PRODUCT)" \PRODUCT_BRAND="$(PRODUCT_BRAND)" \PRODUCT_DEFAULT_LANGUAGE="$(call default-locale-language,$(PRODUCT_LOCALES))" \PRODUCT_DEFAULT_REGION="$(call default-locale-region,$(PRODUCT_LOCALES))" \PRODUCT_DEFAULT_WIFI_CHANNELS="$(PRODUCT_DEFAULT_WIFI_CHANNELS)" \PRODUCT_MODEL="$(PRODUCT_MODEL)" \PRODUCT_MANUFACTURER="$(PRODUCT_MANUFACTURER)" \PRIVATE_BUILD_DESC="$(PRIVATE_BUILD_DESC)" \BUILD_ID="$(BUILD_ID)" \BUILD_DISPLAY_ID="$(BUILD_DISPLAY_ID)" \BUILD_NUMBER="$(BUILD_NUMBER)" \PLATFORM_VERSION="$(PLATFORM_VERSION)" \PLATFORM_SDK_VERSION="$(PLATFORM_SDK_VERSION)" \PLATFORM_VERSION_CODENAME="$(PLATFORM_VERSION_CODENAME)" \BUILD_VERSION_TAGS="$(BUILD_VERSION_TAGS)" \TARGET_BOOTLOADER_BOARD_NAME="$(TARGET_BOOTLOADER_BOARD_NAME)" \BUILD_FINGERPRINT="$(BUILD_FINGERPRINT)" \TARGET_BOARD_PLATFORM="$(TARGET_BOARD_PLATFORM)" \TARGET_CPU_ABI="$(TARGET_CPU_ABI)" \TARGET_CPU_ABI2="$(TARGET_CPU_ABI2)" \TARGET_AAPT_CHARACTERISTICS="$(TARGET_AAPT_CHARACTERISTICS)" \ bash $(BUILDINFO_SH) > $@$(hide) $(foreach file,$(system_prop_file), \if [ -f "$(file)" ]; then \echo "#" >> $@; \echo Target buildinfo from: "$(file)"; \echo "# from $(file)" >> $@; \echo "#" >> $@; \cat $(file) >> $@; \fi;)$(if $(ADDITIONAL_BUILD_PROPERTIES), \$(hide) echo >> $@; \ echo "#" >> $@; \ echo "# ADDITIONAL_BUILD_PROPERTIES" >> $@; \ echo "#" >> $@; )$(hide) $(foreach line,$(ADDITIONAL_BUILD_PROPERTIES), \echo "$(line)" >> $@;)$(hide) build/tools/post_process_props.py $@生成总共分三部分。
第一部分是通过build/tools/buildinfo.sh生成一部分,关键代码是bash $(BUILDINFO_SH) > $@,这句代码之前的部分都是为这个shell脚本的执行要用的变量赋值。
第二部分是我们项目的system.prop,直接是把system.prop追加到build.prop.代码很简单就不分析了。
第三部分是变量ADDITIONAL_BUILD_PROPERTIES的值,也是把值都追加到build.prop。
0 0
- Android属性build.prop生成过程分析
- Android build.prop生成过程分析
- Android build.prop生成过程
- Android build.prop生成过程
- Android build.prop生成过程
- Android build.prop生成分析
- Android属性之build.prop生成过程分析
- Android属性之build.prop生成过程分析
- Android属性之build.prop生成过程分析
- Android属性之build.prop生成过程分析
- Android属性之build.prop生成过程分析
- Android属性之build.prop生成过程分析
- Android属性之build.prop生成过程分析
- Android属性之build.prop生成过程分析
- Android属性之build.prop生成过程分析
- Android属性之build.prop生成过程分析
- Android属性之build.prop生成过程分析
- Android属性之build.prop生成过程分析
- Windows安装和使用zookeeper
- lua和c/c++互相调用实例分析
- HTML中<link rel="next".../> start next prev 属性值
- 提高Java架构师和程序员效率的10个工具
- Android 4.4 Graphic系统详解(1) SurfaceFlinger的启动过程
- Android build.prop生成过程分析
- API 19即android4.4以上,设置一体化状态栏背景颜色的方法
- POJ题目分类(以此为大纲好好学acm!)
- Win8.1系统下 VS2010等版本中输入中文变问号的解决办法
- easyui中combotree循环获取父节点至根节点并输出路径
- Java:单例模式的七种写法
- [Leetcode] 41 - First Missing Positive
- linux 删除查找到的文件
- 以《天天炫斗》的兴衰看动作类手游运营策略