一、修改tzdata
a. 修改system\timezone\input_data\iana\tzdata2018e.tar.gz:把tzdata2018e.tar.gz解开,添加对应需要的时区
如Europe/Saint_Petersburg,city名不能有空格
Zone Europe/Saint_Petersburg 2:30:17 - LMT 1880
2:30:17 - MMT 1916 Jul 3 # Moscow Mean Time
2:31:19 Russia %s 1919 Jul 1 0:00u
3:00 Russia %s 1921 Oct
3:00 Russia MSK/MSD 1922 Oct
2:00 - EET 1930 Jun 21
3:00 Russia MSK/MSD 1991 Mar 31 2:00s
2:00 Russia EE%sT 1992 Jan 19 2:00s
3:00 Russia MSK/MSD 2011 Mar 27 2:00s
4:00 - MSK 2014 Oct 26 2:00s
3:00 - MSK
修改后,重新打包成tzdata2018e.tar.gz,注意不要有文件夹。
b.进入system\timezone,执行python update-tzdata.py
执行脚本完成后,会在
system/timezone/output_data/iana/生成新的tzdata文件,
system\timezone\output_data\distro 生成新的distro.zip
external\icu\icu4c\source\data\misc\zoneinfo64.txt 生成新的zoneinfo64.txt
c. 手动修改system\timezone\output_data\android\tzlookup.xml,手动增加对应的city
<country code="ru" default="Europe/Moscow" everutc="n">
<id>Asia/Kamchatka</id>
<id>Asia/Anadyr</id>
<id>Asia/Magadan</id>
<id>Asia/Sakhalin</id>
<id>Asia/Srednekolymsk</id>
<id>Asia/Vladivostok</id>
<id>Asia/Ust-Nera</id>
<id>Asia/Yakutsk</id>
<id>Asia/Chita</id>
<id>Asia/Khandyga</id>
<id>Asia/Irkutsk</id>
<id>Asia/Krasnoyarsk</id>
<id>Asia/Novosibirsk</id>
<id>Asia/Barnaul</id>
<id>Asia/Novokuznetsk</id>
<id>Asia/Tomsk</id>
<id>Asia/Omsk</id>
<id>Asia/Yekaterinburg</id>
<id>Europe/Samara</id>
<id>Europe/Astrakhan</id>
<id>Europe/Ulyanovsk</id>
<id>Europe/Saratov</id>
<id>Europe/Moscow</id>
<id>Europe/Volgograd</id>
<id>Europe/Kirov</id>
<id>Europe/Simferopol</id>
<id>Europe/Kaliningrad</id>
<id>Europe/Saint_Petersburg</id>
<id>Europe/Lzhevsk</id>
<id>Asia/Ufa</id>
<id>Asia/Chelyabinsk</id>
<id>Asia/Ulan-Ude</id>
<id>Asia/Khabarovsk</id>
<id>Asia/Severo-Kurilsk</id>
</country>
二、 更新icudata文件
上个步骤已经自动update过了zoneinfo64.txt 文件,直接更新icudata即可。
1.进入到$AOSP/external/icu/icu4c/source/目录下的
2.在该目录下执行 ./runConfigureICU Linux命令生成MAKE文件
3.执行make INCLUDE_UNI_CORE_DATA=1
4:cp external/icu/icu4c/source/data/out/tmp/icudt60l.dat $AOSP/external/icu/icu4c/source/stubdata
三、 修改Setting配置。
vendor\mediatek\proprietary\packages\apps\SettingsLib\res\xml\timezones.xml
<timezone id="Europe/Saint_Petersburg"></timezone>
<timezone id="Europe/Lzhevsk"></timezone>
<timezone id="Asia/Ufa"></timezone>
<timezone id="Asia/Chelyabinsk"></timezone>
<timezone id="Asia/Ulan-Ude"></timezone>
<timezone id="Asia/Khabarovsk"></timezone>
<timezone id="Asia/Severo-Kurilsk"></timezone>