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
  1. ...  
  2. PRODUCT_DEFAULT_LANGUAGE="$(calldefault-locale-language,$(PRODUCT_LOCALES))" \  
  3. PRODUCT_DEFAULT_REGION="$(calldefault-locale-region,$(PRODUCT_LOCALES))" \  
  4. ...  
2)      Makefile中调用build/tools/ buildinfo.sh 执行脚本,并输出到build.prop

Buildinfo.sh很简单,只是echo一些属性,比如:

[plain]  view plain  copy
  1. ...  
  2. echo"ro.product.locale.language=$PRODUCT_DEFAULT_LANGUAGE"  
  3. echo"ro.product.locale.region=$PRODUCT_DEFAULT_REGION"  
  4. ...  
而,ro.product.locale.language/ ro.product.locale.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
  1. ADDITIONAL_BUILD_PROPERTIES:= \  
  2.         $(ADDITIONAL_BUILD_PROPERTIES)\  
  3.         $(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 Time                W.非洲时间                    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'sk                       Ural'sk                       Asia/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、其他属性待续


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值