首先确认一点修改默认时区是通过修改persist.sys.timezone的属性值实现的。所以要想成功修改默认时区,需要找到所有可能修改该值的地方,一般而言都是在device目录下。
其次确定当前源码对应的设备,比如笔者此次使用的是hisilicon的板子,那么其设备自然是hisilicon的。
在对应的设备的目录下找到device.mk或者customer.mk文件,使用find命令即可。
然后在其中添加如下两行:
PRODUCT_PROPERTY_OVERRIDES += \
persist.sys.timezone=Asia/Shanghai
注意要根据实际情况添加,笔者的源码中,customer.mk中并没有对该属性值的修改,虽然device.mk中修改了默认时区,但是源码仅针对中国移动做了修改。
非Google提供的原生源码可能会对不用的运营商做不同的适配,笔者将全部的默认时区,因此不关心运营商是谁,所以笔者仅需要将修改的部分从判断条件中移除出来即可。
最终编译烧机测试试通过。
以下是时区对应表:
Asia/Shanghai 北京/中国
Asia/Hong_Kong 香港/中国
Asia/Taipei 台北时间 (台北)
Asia/Seoul 首尔
Asia/Tokyo 东京/日本
America/Denver 丹佛/美国山区
America/Costa_Rica 哥斯达黎加/美国中部
America/Chicago 芝加哥/美国中部
America/Mexico_City 墨西哥城/美国中部
America/Regina 里贾纳/美国中部
Pacific/Majuro" 马朱罗
Pacific/Midway" 中途岛
Pacific/Honolulu" 檀香山
America/Anchorage" 安克雷奇
America/Los_Angeles 洛杉矶/美国太平洋
America/Tijuana 提华纳/美国太平洋
America/Phoenix 凤凰城美国山区
America/Chihuahua 奇瓦瓦
America/Bogota 波哥大/哥伦比亚
America/New_York 纽约/美国东部
America/Caracas 加拉加斯/委内瑞拉
America/Barbados 巴巴多斯/大西洋
America/Manaus 马瑙斯/亚马逊
America/Santiago 圣地亚哥
America/St_Johns 圣约翰/纽芬兰
America/Sao_Paulo 圣保罗
America/Argentina/Buenos_Aires 布宜诺斯艾利斯
America/Godthab 戈特霍布
America/Montevideo 蒙得维的亚/乌拉圭
Atlantic/South_Georgia 南乔治亚
Atlantic/Azores 亚述尔群岛
Atlantic/Cape_Verde 佛得角
Africa/Casablanca 卡萨布兰卡
Europe/London 伦敦/格林尼治
Europe/Amsterdam 阿姆斯特丹/中欧
Europe/Belgrade" 贝尔格莱德/中欧
Europe/Brussels 布鲁塞尔/中欧
Europe/Sarajevo 萨拉热窝/中欧
Africa/Windhoek 温得和克
Africa/Brazzaville 布拉扎维/西部非洲
Asia/Amman 安曼/东欧
Europe/Athens 雅典/东欧
Asia/Beirut 贝鲁特/东欧
Africa/Cairo 开罗/东欧
Europe/Helsinki 赫尔辛基/东欧
Asia/Jerusalem 耶路撒冷/以色列
Europe/Minsk 明斯克
Africa/Harare 哈拉雷/中部非洲
Asia/Baghdad 巴格达
Europe/Moscow 莫斯科
Asia/Kuwait 科威特
Africa/Nairobi 内罗毕/东部非洲
Asia/Tehran 德黑兰/伊朗
Asia/Baku 巴库
Asia/Tbilisi 第比利斯
Asia/Yerevan 埃里温
Asia/Dubai 迪拜
Asia/Kabul 喀布尔/阿富汗
Asia/Karachi 卡拉奇
Asia/Oral 乌拉尔
Asia/Yekaterinburg 叶卡捷林堡
Asia/Calcutta 加尔各答
Asia/Colombo 科伦坡
Asia/Katmandu 加德满都/尼泊尔
Asia/Almaty 阿拉木图
Asia/Rangoon 仰光/缅甸
Asia/Krasnoyarsk 克拉斯诺亚尔斯克
Asia/Bangkok 曼谷
Asia/Irkutsk 伊尔库茨克
Asia/Kuala_Lumpur 吉隆坡
Australia/Perth 佩思
Asia/Yakutsk 雅库茨克
Australia/Adelaide 阿德莱德
Australia/Darwin 达尔文
Australia/Brisbane 布里斯班
Australia/Hobart 霍巴特
Australia/Sydney 悉尼
Asia/Vladivostok 符拉迪沃斯托克/海参崴
Pacific/Guam 关岛
Asia/Magadan 马加丹
Pacific/Auckland 奥克兰
Pacific/Fiji 斐济
Pacific/Tongatapu 东加塔布
时区与 UTC 的偏移量描述:
KLT +14:00 基里巴斯线岛时间
NZDT +13:00 新西兰夏时制
IDLW +12:00 国际日期变更线,西边
NZST +12:00 新西兰标准时间
NZT +12:00 新西兰时间
AESST +11:00 澳大利亚东部标准夏时制 (俄罗斯马加丹时区) 东边(俄罗斯彼得罗巴甫洛夫斯克时区)
ACSST +10:30 中澳大利亚标准夏时制
CADT +10:30 中澳大利亚夏时制
SADT +10:30 南澳大利亚夏时制
AEST +10:00 澳大利亚东部标准时间
EAST +10:00 东澳大利亚标准时间
GST +10:00 关岛标准时间,(俄罗斯符拉迪沃斯托克时区)
LIGT +10:00 澳大利亚墨尔本
SAST +09:30 南澳大利亚标准时间
CAST +09:30 中澳大利亚标准时间
MHT +09:00马绍尔群岛瓜加林岛时间
JST +09:00 日本标准时间,(俄罗斯雅库茨克时区)
KST +09:00韩国标准时间
KST +09:00朝鲜标准时间
AWST +08:00 澳大利亚西部标准时间
CCT +08:00 中国北京时间(俄罗斯伊尔库茨克时区)
WST +08:00 西澳大利亚标准时间
JT +07:30 爪哇时间
ALMST +07:00 阿拉木图 夏令时(俄罗斯泰梅尔半岛时区)
CXT +07:00 澳大利亚圣诞岛时间
MMT +06:30 缅甸时间
ALMT +06:00 哈萨克斯坦阿拉木图 时间(俄罗斯鄂木斯克时区)
IOT +05:00 英属印度洋领地时间(俄罗斯彼尔姆时区)
MVT +05:00 马尔代夫时间
TFT +05:00 法属凯尔盖朗岛时间
AFT +04:30 阿富汗时间
EAST +04:00 马达加斯加塔那那利佛时间 (俄罗斯萨马拉时区)
MUT +04:00 毛里求斯时间
RET +04:00 法属留尼汪岛时间
SCT +04:00 塞舌尔马埃岛时间
IRT,IT +03:30 伊朗时间
EAT +03:00 科摩罗时间
BT +03:00 巴格达时间
EETDST +03:00 东欧夏时制(俄罗斯莫斯科时区)
HMT +03:00 希腊地中海时间
BDST +02:00 英国双重标准时间
CEST +02:00 中欧夏令时
CETDST +02:00 中欧夏时制
EET +02:00 东欧(俄罗斯加里宁格勒时区)
FWT +02:00 法国冬时制
IST +02:00 以色列标准时间
MEST +02:00 中欧夏时制
METDST +02:00 中欧白昼时间
SST +02:00 瑞典夏时制
BST +01:00 英国夏时制
CET +01:00 中欧时间
DNT +01:00 丹麦正规时间
FST +01:00 法国夏时制
MET +01:00 中欧时间
NOR +01:00 挪威标准时间
SWT +01:00 瑞典冬时制
WETDST +01:00 西欧光照利用时间(夏时制)
GMT 0:00 格林尼治标准时间
UT +00:00 全球时间
UTC +00:00 校准的全球时间
ZULU +00:00 和 UTC 相同
WET +00:00 西欧
WAT -01:00 西非时间
FNST -01:00 巴西费尔南多·迪诺罗尼亚岛 夏令时
FNT -02:00 巴西费尔南多·迪诺罗尼亚岛时间
BRST -02:00 巴西利亚夏令时
NDT -02:30 纽芬兰夏时制
ADT -03:00 大西洋夏时制
BRT -03:00 巴西利亚时间
NST,NFT -03:30 纽芬兰(Newfoundland)标准时间
AST -04:00 大西洋标准时间(加拿大)
ACST -04:00 大西洋阿雷格里港夏令时
ACT -05:00 大西洋阿雷格里港 标准时间
EDT -04:00 东部夏时制
CDT -05:00 中部夏时制
EST -05:00 东部标准时间
CST -06:00 中部标准时间
MDT -06:00 山地夏时制
MST -07:00 山地标准时间
PDT -07:00 太平洋夏时制
AKDT -08:00 阿拉斯加白昼时间
PST -08:00 太平洋标准时间
YST -08:00 育空地区标准时
AKST -09:00 阿拉斯加标准时间
HDT -09:00 夏威夷/阿拉斯加夏时制
MART -09:30 马克萨斯群岛时间
AHST -10:00 夏威夷-阿拉斯加标准时间
HST -10:00 夏威夷标准时间
CAT -10:00 中阿拉斯加时间
NT -11:00 阿拉斯加诺姆时间(Nome Time)
IDLE -12:00 国际日期变更线,东边
澳大利亚时区. 澳大利亚时区名和南北美常用的时区名之间有三个冲突:ACST,CST,和 EST。
澳大利亚时区缩写,时区与UTC的偏移量描述:
ACST +09:30 中澳大利亚标准时间
CST +10:30 澳大利亚中部标准时间
EST +10:00 澳大利亚东部标准时间
SAT +09:30 南澳大利亚标准时间
澳大利亚时区. 澳大利亚时区名和马达加斯加塔那那利佛时间冲突:EAST。
澳大利亚时区缩写,时区与UTC的偏移量描述:
EAST +10:00 东澳大利亚标准时间