gpt4 book ai didi

android - 更新安卓时区数据

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:27:45 27 4
gpt4 key购买 nike

我在我的设备上运行 Android 4.4.3,当然它有过时的时区,我正在尝试更新/system/usr/share/zoneinfo 中的 tzdata .但是,立即替换文件不会更新时区。

由于 ICU 保留了自己的时区数据副本,我们也必须替换它(根据 Google AOSP 团队的说法)。更新后的数据文件为 Update for ICUUpdate for bionic

但是,当我构建和替换 icu4c 库(libicui18n.so 和 libicuuc.so)并将 icudt51l.dat 替换为 icudt53l.dat 时,系统无法初始化 ICU。

我尝试解压 icudt53l.dat 并将其 *.res 文件推送到旧的 icudt51l.dat 中,但这也失败了,因为 ICUPKG 工具在打包之前检查了 res 文件的校验和。

我关注了XDA link to update tzdata但这种方法失败了,因为他们使用 tzdata 创建了 zoneinfo.dat、zoneinfo.idx、zoneinfo.version 文件。但是系统会在/system/usr/share/zoneinfo 中查找 tzdata 本身

我不是时区或 ICU 专家,如果看错了方向,请指点我并提供帮助。

最佳答案

无需更新 ICU 或 Bionic,您只需将 tzdata 文件更改为更新后的文件即可。此外,您不需要从 IANA 时区数据手动生成文件 tzdata。您可以从 bionic repo 中获取已经构建的 tzdata .您可以找到更新文件到最新版本的 Time Zone Data v. 2015g here .

下载文件后,将其复制到您的设备上(例如 /sdcard/Download/tzdata),然后打开一个 shell:

shell@maguro:/ $ su
shell@maguro:/ $ setprop persist.sys.timezone Europe/Istanbul
shell@maguro:/ $ date -s 20151106.130000
Fri Nov 6 13:00:00 EET 2015
root@maguro:/ # mount -o rw,remount /system
root@maguro:/ # cd /system/usr/share/zoneinfo/
root@maguro:/system/usr/share/zoneinfo # cp tzdata tzdata.bak
root@maguro:/system/usr/share/zoneinfo # cp /sdcard/Download/tzdata tzdata
root@maguro:/system/usr/share/zoneinfo # chmod 644 tzdata
root@maguro:/system/usr/share/zoneinfo # date
Fri Nov 6 14:00:47 EEST 2015

如果在这之后它仍然不起作用:

root@maguro:/ # cd /data/misc/zoneinfo/
root@maguro:/data/misc/zoneinfo # cp tzdata tzdata.bak
root@maguro:/data/misc/zoneinfo # cp /sdcard/Download/tzdata tzdata
root@maguro:/data/misc/zoneinfo # chmod 644 tzdata

正如您在更新后的 tzdata 中看到的那样,欧洲/ Istanbul 尔的时区在 11 月 6 日从 EET 更改为 EEST,因为在 v . 2015g 土耳其的 DST 从 10 月 25 日回退到 11 月 8 日。

关于android - 更新安卓时区数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33439071/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com