定制系统多,又不想发出的固件被随意切换,想来想去,还是加个只读属性判断。
1、打开/build/tools/buildinfo.sh
增加一个ro.build.firmware.custom.version,只读属性,注意
"ro.build.firmware.custom.version=$FIRMWARE_CUSTOM_VERSION"不能有空格
if [ -n "$BOARD_BUILD_SYSTEM_ROOT_IMAGE" ] ; then
echo "ro.build.system_root_image=$BOARD_BUILD_SYSTEM_ROOT_IMAGE"
fi
# add here 增加ro属性
echo "ro.build.firmware.custom.version=$FIRMWARE_CUSTOM_VERSION"
#add end
# These values are deprecated, use "ro.product.cpu.abilist"
# instead (see below).
echo "# ro.product.cpu.abi and ro.product.cpu.abi2 are obsolete,"
echo "# use ro.product.cpu.abilist instead."
echo "ro.product.cpu.abi=$TARGET_CPU_ABI"
if [ -n "$TARGET_CPU_ABI2" ] ; then
echo "ro.product.cpu.abi2=$TARGET_CPU_ABI2"
fi
if [ -n "$PRODUCT_DEFAULT_LOCALE" ] ; then
echo "ro.product.locale=$PRODUCT_DEFAULT_LOCALE"
fi
2、打开/build/make/core/sysprop.mk,在gen_from_buildinfo_sh增加FIRMWARE_CUSTOM_VERSION
gen_from_buildinfo_sh := $(call intermediates-dir-for,PACKAGING,system_build_prop)/buildinfo.prop
$(gen_from_buildinfo_sh): $(INTERNAL_BUILD_ID_MAKEFILE) $(API_FINGERPRINT) | $(BUILD_DATETIME_FILE) $(BUILD_NUMBER_FILE)
$(hide) TARGET_BUILD_TYPE="$(TARGET_BUILD_VARIANT)" \
TARGET_BUILD_FLAVOR="$(TARGET_BUILD_FLAVOR)" \
TARGET_DEVICE="$(TARGET_DEVICE)" \
PRODUCT_DEFAULT_LOCALE="$(call get-default-product-locale,$(PRODUCT_LOCALES))" \
PRODUCT_DEFAULT_WIFI_CHANNELS="$(PRODUCT_DEFAULT_WIFI_CHANNELS)" \
PRIVATE_BUILD_DESC="$(BUILD_DESC)" \
QUECTEL_VERSION="$(QUECTEL_VERSION)" \
QUECTEL_BVERSION="$(QUECTEL_BVERSION)" \
QUECTEL_SVERSION="$(QUECTEL_SVERSION)" \
BUILD_ID="$(BUILD_ID)" \
BUILD_DISPLAY_ID="$(BUILD_DISPLAY_ID)" \
FIRMWARE_CUSTOM_VERSION="$(FIRMWARE_CUSTOM_VERSION)" \
DATE="$(DATE_FROM_FILE)" \
BUILD_USERNAME="$(BUILD_USERNAME)" \
3、打开/build/core/version_defaults.mk ,在mk文件最后增加
............................................
#add
ifndef FIRMWARE_CUSTOM_VERSION
FIRMWARE_CUSTOM_NAME := CUSTNAME
FIRMWARE_CUSTOM_VERSION := $(FIRMWARE_CUSTOM_NAME)_$(shell date +%Y%m%d%H%M)
endif
# add end
include $(BUILD_SYSTEM)/version_util.mk
重新编译系统,adb 模式下输入
adb shell getprop ro.build.firmware.custom.version,获取属性值。
4、如果需要显示,找到一个显示位置,比如“设置”---“关于”---“版本号”,加上一行。
打开
/packages/apps/Settings/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
修改getSummary()的代码:
@Override
public CharSequence getSummary() {
//return BidiFormatter.getInstance().unicodeWrap(Build.DISPLAY);
String customVer=BidiFormatter.getInstance().unicodeWrap(Build.DISPLAY)+"\n("+custromname+")";
return customVer;
}