性价比最高的网站建设公司国内哪个搜索引擎最好用
Android 9.0 如何在编译出来system目录下面新增wq.prop文件
一、在如下目录下面创建一个脚本文件wqinfo.sh
代码路径:build/make/tools/wqinfo.sh
#!/bin/bash
echo "persist.sys.custom.test=123"
二、在Makefile文件中添加需要编译的脚本
代码路径:android/build/make/core/Makefile
1、写一个脚本,并且定义一个变量,把该脚本的路径赋值给该变量
BUILDINFO_SH := build/make/tools/buildinfo.sh
WQINFO_SH := build/make/tools/wqinfo.sh
VENDOR_BUILDINFO_SH := build/make/tools/vendor_buildinfo.sh
2、定义一个wq.prop
intermediate_system_build_prop := $(call intermediates-dir-for,ETC,system_build_prop)/build.prop
intermediate_wq_build_prop := $(call intermediates-dir-for,ETC,system_build_prop)/wq.prop
3、定义一个编译出来的wq.prop的目录是system/wq.prop
# build.prop
INSTALLED_BUILD_PROP_TARGET := $(TARGET_OUT)/build.prop
ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_BUILD_PROP_TARGET)
INSTALLED_WQ_PROP_TARGET := $(TARGET_OUT)/wq.prop
ALL_DEFAULT_INSTALLED_MODULES += $(INSTALLED_WQ_PROP_TARGET)
4、把wqinfo.sh脚本中的内容遍历拷贝到wq.prop文件中
$(hide) cat $(INSTALLED_ANDROID_INFO_TXT_TARGET) | grep 'require version-' | sed -e 's/require version-/ro.build.expect./g' >> $@$(hide) build/make/tools/post_process_props.py $@ $(PRODUCTS.$(INTERNAL_PRODUCT).PRODUCT_SYSTEM_PROPERTY_BLACKLIST)wq_prop_file := $(TARGET_WQ_PROP)
$(intermediate_wq_build_prop): $(WQINFO_SH) $(wq_prop_file)@echo Target wqinfo: $@@mkdir -p $(dir $@)$(hide) echo > $@bash $(WQINFO_SH) >> $@
build_desc :=$(INSTALLED_BUILD_PROP_TARGET): $(intermediate_system_build_prop) $(INSTALLED_RECOVERYIMAGE_TARGET)@echo "Target build info: $@"$(hide) grep -v 'ro.product.first_api_level' $(intermediate_system_build_prop) > $@
ifdef INSTALLED_RECOVERYIMAGE_TARGET$(hide) echo ro.expect.recovery_id=`cat $(RECOVERYIMAGE_ID_FILE)` >> $@
endif$(INSTALLED_WQ_PROP_TARGET): $(intermediate_wq_build_prop) $(INSTALLED_RECOVERYIMAGE_TARGET)@echo "Target build info: $@"$(hide) grep -v 'ro.product.first_api_level' $(intermediate_wq_build_prop) > $@
5、添加该变量INSTALLED_WQ_PROP_TARGET
include $(BUILD_SYSTEM)/sdk_font.mkdeps := \$(target_notice_file_txt) \$(tools_notice_file_txt) \$(OUT_DOCS)/offline-sdk-timestamp \$(SYMBOLS_ZIP) \$(COVERAGE_ZIP) \$(INSTALLED_SYSTEMIMAGE) \$(INSTALLED_QEMU_SYSTEMIMAGE) \$(INSTALLED_QEMU_VENDORIMAGE) \$(INSTALLED_USERDATAIMAGE_TARGET) \$(INSTALLED_RAMDISK_TARGET) \$(INSTALLED_SDK_BUILD_PROP_TARGET) \$(INSTALLED_BUILD_PROP_TARGET) \$(INSTALLED_WQ_PROP_TARGET) \$(ATREE_FILES) \$(sdk_atree_files) \$(HOST_OUT_EXECUTABLES)/atree \$(HOST_OUT_EXECUTABLES)/line_endings \$(SDK_FONT_DEPS)
三、在property_service.cpp文件中加载该文件wq.prop
代码路径:android/system/core/init/property_service.cpp
void load_system_props() {load_properties_from_file("/system/build.prop", NULL);load_properties_from_file("/odm/build.prop", NULL);load_properties_from_file("/vendor/build.prop", NULL);load_properties_from_file("/system/wq.prop", NULL);load_properties_from_file("/factory/factory.prop", "ro.*");load_recovery_id_prop();
}
最后编译出来会在system下面产生一个wq.prop文件