Android属性之build.prop生成过程分析及各系统初始配置修改
一、build.prop生成过程
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中首先定义各种变量,这在下一步执行时会用到。比如:
[plain] view plain copy
- ...
- PRODUCT_DEFAULT_LANGUAGE="$(calldefault-locale-language,$(PRODUCT_LOCALES))"\
- PRODUCT_DEFAULT_REGION="$(calldefault-locale-region,$(PRODUCT_LOCALES))"\
- ...
Buildinfo.sh很简单,只是echo一些属性,比如:
[plain] view plain copy
- ...
- echo"ro.product.locale.language=$PRODUCT_DEFAULT_LANGUAGE"
- echo"ro.product.locale.region=$PRODUCT_DEFAULT_REGION"
- ...
3)Makefile中直接把$(TARGET_DEVICE_DIR)/system.prop的内容追加到build.prop中。
4)收集ADDITIONAL_BUILD_PROPERTIES中的属性,追加到build.prop中。
ADDITIONAL_BUILD_PROPERTIES又会收集PRODUCT_PROPERTY_OVERRIDES中定义的属性
[plain] view plain copy
- ADDITIONAL_BUILD_PROPERTIES:=\
- $(ADDITIONAL_BUILD_PROPERTIES)\
- $(PRODUCT_PROPERTY_OVERRIDES)
通过build.prop生成过程的分析,可知哪里可以修改原有的属性或加入自己定义属性,那就是2) buildinfo.sh; 3) system.prop; 4) ADDITIONAL_BUILD_PROPERTIES或PRODUCT_PROPERTY_OVERRIDES。不过个人建议改在system.prop或PRODUCT_PROPERTY_OVERRIDES,这对应于具体特定平台或产品的修改。
二、具体的配置项目:
1、默认语言和时区:
persist.sys.timezone=Asia/Shanghai
persist.sys.language=zh
persist.sys.country=CN
加入system.prop即可;
persist.sys.timezone值域 • Marshall Islands马绍尔群岛Pacific/Majuro • Midway Island中途岛Pacific/Midway • Hawaii夏威夷Pacific/Honolulu • Alaska阿拉斯加州America/Anchorage • Pacific Time太平洋时间America/Los_Angeles • Tijuana蒂华纳America/Tijuana • Arizona亚利桑那America/Phoenix • Chihuahua吉娃娃America/Chihuahua • Mountain Time山地时间America/Denver • Central America中美洲America/Costa_Rica • Central Time美国中部时间America/Chicago • Mexico City墨西哥城America/Mexico_City • Saskatchewan萨斯喀彻温省America/Regina • Bogota波哥大America/Bogota • Eastern Time东部时间America/New_York •Atlantic Time (Barbados)大西洋时间(巴巴多斯)America/Barbados • Atlantic Time (Canada) 大西洋时间(加拿大) America/Halifax • Manaus 马瑙斯 America/Manaus • Santiago 圣地亚哥 America/Santiago • Newfoundland 纽芬兰 America/St_Johns • Brasilia 巴西利亚 America/Sao_Paulo • Buenos Aires 布宜诺斯艾利斯 America/Argentina/Buenos_Aires • Greenland 格陵兰 America/Godthab • Montevideo 蒙得维的亚 America/Montevideo • Mid-Atlantic 中大西洋 Atlantic/South_Georgia • Azores 亚速尔群岛 Atlantic/Azores • Cape Verde Islands 佛得角群岛 Atlantic/Cape_Verde • Casablanca 卡萨布兰卡 Africa/Casablanca • London, Dublin 伦敦,都柏林 Europe/London • Amsterdam, Berlin 阿姆斯特丹,柏林 Europe/Amsterdam • Belgrade贝尔格莱德Europe/Belgrade • Venezuela委内瑞拉America/Caracas Brussels布鲁塞尔Europe/Brussels • Sarajevo萨拉热窝Europe/Sarajevo • Windhoek温得和克Africa/Windhoek • W. Africa TimeW.非洲时间Africa/Brazzaville • Amman, Jordan约旦安曼,Asia/Amman • Athens, Istanbul雅典,伊斯坦布尔Europe/Athens • Beirut, Lebanon贝鲁特,黎巴嫩Asia/Beirut • Cairo开罗Africa/Cairo • Helsinki赫尔辛基Europe/Helsinki • Jerusalem耶路撒冷Asia/Jerusalem • Minsk明斯克Europe/Minsk • Harare哈拉雷Africa/Harare • Baghdad巴格达Asia/Baghdad • Moscow莫斯科Europe/Moscow • Kuwait科威特Asia/Kuwait • Nairobi内罗毕Africa/Nairobi • Tehran德黑兰Asia/Tehran • Baku巴库Asia/Baku • Tbilisi第比利斯Asia/Tbilisi • Yerevan埃里温Asia/Yerevan • Dubai迪拜Asia/Dubai • Kabul喀布尔Asia/Kabul • Islamabad, Karachi伊斯兰堡,卡拉奇Asia/Karachi • Ural'skUral'skAsia/Oral • Yekaterinburg叶卡捷琳堡Asia/Yekaterinburg • Kolkata加尔各答Asia/Calcutta • Sri Lanka斯里兰卡Asia/Colombo • Kathmandu加德满都Asia/Katmandu • Astana阿斯塔纳Asia/Almaty • Yangon仰光Asia/Rangoon • Krasnoyarsk克拉斯诺亚尔斯克Asia/Krasnoyarsk • Bangkok曼谷Asia/Bangkok • Beijing北京Asia/Shanghai • Hong Kong香港Asia/Hong_Kong • Irkutsk伊尔库次克Asia/Irkutsk • Kuala Lumpur吉隆坡Asia/Kuala_Lumpur • Perth珀斯Australia/Perth • Taipei台北Asia/Taipei • Seoul汉城Asia/Seoul • Tokyo, Osaka东京,大阪Asia/Tokyo • Yakutsk雅库茨克Asia/Yakutsk • Adelaide阿德莱德Australia/Adelaide • Darwin达尔文Australia/Darwin • Brisbane布里斯班Australia/Brisbane • Hobart霍巴特Australia/Hobart • Sydney, Canberra悉尼,堪培拉Australia/Sydney • Vladivostok符拉迪沃斯托克Asia/Vladivostok • Guam关岛Pacific/Guam • Magadan马加丹Asia/Magadan • Auckland奥克兰Pacific/Auckland • Fiji斐济Pacific/Fiji • Tonga汤加Pacific/Tongatapu
persist.sys.language和persist.sys.country值域
LANGUAGE-COUNTRY(在设置时,注意用大写) • 简体中文(中国) zh-cn繁体中文(台湾地区) zh-tw • 繁体中文(香港) zh-hk英语(香港) en-hk • 英语(美国) en-us英语(英国) en-gb • 英语(全球) en-ww英语(加拿大) en-ca • 英语(澳大利亚) en-au英语(爱尔兰) en-ie • 英语(芬兰) en-fi芬兰语(芬兰) fi-fi • 英语(丹麦) en-dk丹麦语(丹麦) da-dk • 英语(以色列) en-il希伯来语(以色列) he-il • 英语(南非) en-za英语(印度) en-in • 英语(挪威) en-no英语(新加坡) en-sg • 英语(新西兰) en-nz英语(印度尼西亚) en-id • 英语(菲律宾) en-ph英语(泰国) en-th • 英语(马来西亚) en-my英语(阿拉伯) en-xa • 韩文(韩国) ko-kr日语(日本) ja-jp • 荷兰语(荷兰) nl-nl荷兰语(比利时) nl-be • 葡萄牙语(葡萄牙) pt-pt葡萄牙语(巴西) pt-br • 法语(法国) fr-fr法语(卢森堡) fr-lu • 法语(瑞士) fr-ch法语(比利时) fr-be • 法语(加拿大) fr-ca西班牙语(拉丁美洲) es-la • 西班牙语(西班牙) es-es西班牙语(阿根廷) es-ar • 西班牙语(美国) es-us西班牙语(墨西哥) es-mx • 西班牙语(哥伦比亚) es-co西班牙语(波多黎各) es-pr • 德语(德国) de-de德语(奥地利) de-at • 德语(瑞士) de-ch俄语(俄罗斯) ru-ru • 意大利语(意大利) it-it希腊语(希腊) el-gr • 挪威语(挪威) no-no匈牙利语(匈牙利) hu-hu • 土耳其语(土耳其) tr-tr捷克语(捷克共和国) cs-cz • 斯洛文尼亚语sl-sl波兰语(波兰) pl-pl • 瑞典语(瑞典) sv-se西班牙语(智利) es-cl
2、其他属性待续
更多相关文章
- Android 开发中常用英语词句
- [Android]美国VOA英语学习软件,无广告
- Android英语单词记忆程序源码
- android英语字典(内含源码哦)
- Python英语 - Issue16
- 预测优秀数据科学家的五个面试问题 | Python英语-Issue15
- Python英语 - Issue14
- Python英语 - Issue13
- Python英语-Issue03