android 系統(tǒng)設(shè)置ro屬性方法:
是在/build/tools/buildinfo.sh中定義 環(huán)境變量
echo "ro.build.version.release=$YOUR_MACRO"
在/build/core/version_defaults.mk中 指定
ifeq "" "$(PLATFOM_HAND_VERSION)"
This is the canonical definition of the platform version,
which is the version that we reveal to the end user.
Update this value when the platform version changes (rather
than overriding it somewhere else). Can be an arbitrary string.
When you add a new PLATFOM_HAND_VERSION,JUST CHANGE THE VERSION NUMBER
HERE.
YOUR_MACRO := YOUR_VALUE
endif
build.prop的生成是由make系統(tǒng)解析build/core/Makefile完成,Makefile中首先定義各種變量,其中就有
PLATFORM_VERSION="$(PLATFORM_VERSION)" \
ifneq ((PRODUCTS.(INTERNAL_PRODUCT).PRODUCT_OEM_PROPERTIES),)
(hide) echo "#" >>@;
echo "# PRODUCT_OEM_PROPERTIES" >> @; \ echo "#" >>@;
(hide)(foreach prop,(PRODUCTS.(INTERNAL_PRODUCT).PRODUCT_OEM_PROPERTIES),
echo "import /oem/oem.prop (prop)" >>@;)
endif
(hide) TARGET_BUILD_TYPE="(TARGET_BUILD_VARIANT)"
TARGET_BUILD_FLAVOR="(TARGET_BUILD_FLAVOR)" \ TARGET_DEVICE="(TARGET_DEVICE)"
PRODUCT_NAME="(TARGET_PRODUCT)" \ PRODUCT_BRAND="(PRODUCT_BRAND)"
PRODUCT_DEFAULT_LOCALE="(call get-default-product-locale,(PRODUCT_LOCALES))"
PRODUCT_DEFAULT_WIFI_CHANNELS="(PRODUCT_DEFAULT_WIFI_CHANNELS)" \ PRODUCT_MODEL="(PRODUCT_MODEL)"
CUSTOM_INTERNAL_ID="(CUSTOM_INTERNAL_ID)" \ PLATFORM_VERSION_ALL_CODENAMES="(PLATFORM_VERSION_ALL_CODENAMES)"
YOUR_MACRO="$(YOUR_MACRO)" ---------------------add here
Makefile中調(diào)用build/tools/buildinfo.sh執(zhí)行腳本,并輸出到build.prop
部分屬性最后在 /packages/apps/Settings/src/com/android/settins/DeviceInfoSettings.java 中讀取system/build.prop并最終顯示在手機屏幕上。