Android源码层修改默认时区

首先确认一点修改默认时区是通过修改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 东澳大利亚标准时间

猜你喜欢

转载自blog.csdn.net/xy_kok/article/details/81297046