【Android】时区规则库tzdata更新

1 背景:

最近我遇到墨西哥城时区,会出现夏令时,而墨西哥城在2022年底都已经取消夏令时了。

看起来是要更新RK3588上的时区库,我的还是2021a,而现在都已经2024年了

这样能看版本号:

cat /system/usr/share/zoneinfo/tz\_version

比如当前的看是:

005.001|2021a|001

另外下面也有tzdata文件,是实际的规则文件

2. 更新

(1) 下载最新的文件,在iana下载

我下载的 2024b (Released 2024-09-04), 下载Data类型的即可

时区库

(2) 放入ROM编译
  1. 首先: copy到system/timezone/input_data/iana,并删除旧的文件, 这里就把下载好的 tzdata2024b.tar.gz放进去,把原来老的其他文件全删了就是

  2. 修改下

system/timezone/input_data/android/countryzones.txt中的版本号,修改为对应的版本;比如我这里2024b

  1. 编译

首先source build/envsetup.sh 和 lunch这些执行完后,

到system/timezone/ 下

执行:

./update-tzdata.py

如果遇到文件校验的报错:

E: Stopping due to fatal condition
com.android.libcore.timezone.util.Errors$HaltExecutionException: One or more countries failed
        at com.android.libcore.timezone.util.Errors.throwIfError(Errors.java:123)
        at com.android.libcore.timezone.tzlookup.TzLookupGenerator.createOutputData(TzLookupGenerator.java:309)
        at com.android.libcore.timezone.tzlookup.TzLookupGenerator.execute(TzLookupGenerator.java:163)
        at com.android.libcore.timezone.tzlookup.TzLookupGenerator.main(TzLookupGenerator.java:98)
I: Issues:
[country=aq, id=Antarctica/Casey, offset=11:00, shownInPicker=true]: Offset mismatch: You will want to confirm the ordering for aq still makes sense. Raw offset for Antarctica/Casey is 08:00 and not 11:00 at 2025年7月2日 UTC 下午12:00:00
[country=aq, id=Antarctica/Vostok, offset=6:00, shownInPicker=true]: Offset mismatch: You will want to confirm the ordering for aq still makes sense. Raw offset for Antarctica/Vostok is 05:00 and not 06:00 at 2025年7月2日 UTC 下午12:00:00

Traceback (most recent call last):
  File "./update-tzdata.py", line 292, in <module>
    main()
  File "./update-tzdata.py", line 275, in main
    BuildTzlookupAndTzIds(iana_data_dir)
  File "./update-tzdata.py", line 206, in BuildTzlookupAndTzIds
    tzlookup_dest_file, tzids_dest_file])
  File "/usr/lib/python2.7/subprocess.py", line 541, in check_call
    raise CalledProcessError(retcode, cmd)

就再修改下 update-tzdata.py , 把后面文件的校验数据的给注释掉即可

我这就能编译过了,然后呢,在回到ROM根目录下,完整再编译一次ROM,最终把生成的super.img烧录就能验证了.

注意:在py脚本执行后,是会在 system/timezone/output_data/iana下生成tzdata的,但是直接push效果验证不了,要烧录对应的img哈。低版本可能是system.img,我是android 12,烧的super.img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/910098.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

网络初始:TCP/IP 五层协议模型 网络通信基本流程

目录 1. 名词解释 1.1 局域网 1.2 广域网 1.3 交换机 1.4 IP 地址 1.5 端口号 2. 协议 2.1 认识协议 2.2 五元组 3. 协议分层 3.1 分层的作用 3.2 OSI 七层网络模型 & TCP/IP 五层(四层)协议模型 4. TCP/IP 五层(四层)网络模型 4.1 物理层 4.2 数据链路层 4…

小新学习k8s第六天之pod详解

一、资源限制 Pod是k8s中的最小的资源管理组件&#xff0c;pod也是最小化运行容器化应用的资源对象。一个Pod代表着集群中运行的一个进程。k8s中其他大多数组件都是围绕着Pod来进行支撑和扩展Pod功能的&#xff0c;例如&#xff0c;用于管理Pod运行的StatefulSet和Deployment等…

安利一款超6K+ star的可拖放响应式灵活的网格布局Gridstack.js

Gridstack.js是一个现代JavaScript&#xff08;或Typescript&#xff09;库&#xff0c;旨在帮助开发人员快速构建交互式和响应式的布局。以下是对Gridstack.js的详细介绍&#xff1a; 一、主要特点 灵活的网格布局&#xff1a;Gridstack.js允许开发者轻松地创建和管理网格布局…

接口测试基础 --- 什么是接口测试及其测试流程?

接口测试是指针对软件系统的接口进行测试的过程&#xff0c;主要是验证系统之间的数据传输和通信是否正常、功能是否正确。接口测试主要关注接口的输入、输出以及相应的逻辑关系&#xff0c;而不关注底层实现细节。接口测试可以帮助开发团队发现和解决与接口相关的问题&#xf…

1分钟解决Excel打开CSV文件出现乱码问题

一、编码问题 1、不同编码格式 CSV 文件有多种编码格式&#xff0c;如 UTF - 8、UTF - 16、ANSI 等。如果 CSV 文件是 UTF - 8 编码&#xff0c;而 Excel 默认使用的是 ANSI 编码打开&#xff0c;就可能出现乱码。例如&#xff0c;许多从网络应用程序或非 Windows 系统生成的 …

python基础(1)

声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址&#xff1a;初识python&#xff0c;环境配置&#xff0c;编程基础以及数据类型_哔哩哔哩_bilibili 一、什么是python Python 是一种高级、解释型、通用编程语…

USB 设备数据安全管理解决方案

在当今数字化的办公环境中&#xff0c;USB 设备的广泛使用为企业和组织带来了便捷&#xff0c;但同时也隐藏着巨大的数据泄露风险。许多企业和机构都曾因 USB 设备使用不当而遭受严重损失。 一方面&#xff0c;员工可能会无意或有意地使用未经授权的 USB 设备接入公司网络。这…

【UE5】一种老派的假反射做法,可以用于移动端,或对反射的速度、清晰度有需求的地方

没想到大家这篇文章呼声还挺高 这篇文章是对它的详细实现&#xff0c;建议在阅读本篇之前&#xff0c;先浏览一下前面的文章&#xff0c;以便更好地理解和掌握内容。 这种老派的假反射技术&#xff0c;适合用于移动端或对反射效果的速度和清晰度有较高要求的场合。该技术通过一…

Flink滑动窗口(Sliding)中window和windowAll的区别

滑动窗口的使用&#xff0c;主要是计算&#xff0c;在reduce之前添加滑动窗口&#xff0c;设置好间隔和所统计的时间&#xff0c;然后再进行reduce计算数据即可。 窗口设置好时间间隔&#xff0c;和处理时间窗口的时间&#xff0c;比如将滑动窗口的时间间隔都设置为5s,处理时间…

基于YOLO11/v10/v8/v5深度学习的煤矿传送带异物检测系统设计与实现【python源码+Pyqt5界面+数据集+训练代码】

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

Golang--文件操作

1、文件 文件&#xff1a;文件用于保存数据&#xff0c;是数据源的一种 os包下的File结构体封装了对文件的操作&#xff08;记得包os包&#xff09; 2、File结构体--打开文件和关闭文件 2.1 打开文件 打开文件&#xff0c;用于读取&#xff08;函数&#xff09;&#xff1a; 传…

BSAchongsds、

一、 ## 统计基因组整体信息 srun -A 2022099 -p Debug -n 2 -N 1 seqkit stats ~/yiyaoran/workspace/06.BSRseq/guo_BSR_pipline/ref/genome.fasta > genome.allstatcat genome.allstat 文件名 格式 类型 序列数量 总长度 最小长度 平均长…

聊一聊Elasticsearch的基本原理与形成机制

1、搜索引擎的基本原理 通常搜索引擎包括&#xff1a;数据采集、文本分析、索引存储、搜索等模块&#xff0c;它们之间的协作流程如下图&#xff1a; 数据采集模块负责采集需要搜索的数据源。 文本分析模块是将结构化数据中的长文本切分成有实际意义的词&#xff0c;这样用户…

**AI的三大支柱:神经网络、大数据与GPU计算的崛起之路**

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Python | Leetcode Python题解之第542题01矩阵

题目&#xff1a; 题解&#xff1a; class Solution:def updateMatrix(self, matrix: List[List[int]]) -> List[List[int]]:m, n len(matrix), len(matrix[0])# 初始化动态规划的数组&#xff0c;所有的距离值都设置为一个很大的数dist [[10**9] * n for _ in range(m)]…

RabbitMQ 管理平台(控制中心)的介绍

文章目录 一、RabbitMQ 管理平台整体介绍二、Overview 总览三、Connections 连接四、Channels 通道五、Exchanges 交换机六、Queues 队列查看队列详细信息查看队列的消息内容 七、Admin 用户给用户分配虚拟主机 一、RabbitMQ 管理平台整体介绍 RabbitMQ 管理平台内有六个模块&…

【机器学习】聚类算法分类与探讨

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

易语言模拟真人动态生成鼠标滑动路径

一.简介 鼠标轨迹算法是一种模拟人类鼠标操作的程序&#xff0c;它能够模拟出自然而真实的鼠标移动路径。 鼠标轨迹算法的底层实现采用C/C语言&#xff0c;原因在于C/C提供了高性能的执行能力和直接访问操作系统底层资源的能力。 鼠标轨迹算法具有以下优势&#xff1a; 模拟…

Linux:防火墙和selinux对服务的影响

1-1selinux 1-1 SELinux是对程序、文件等权限设置依据的一个内核模块。由于启动网络服务的也是程序&#xff0c;因此刚好也 是能够控制网络服务能否访问系统资源的一道关卡。 1-2 SELinux是通过MAC的方式来控制管理进程&#xff0c;它控制的主体是进程&#xff0c;而目标则是…

华为eNSP:QinQ

一、什么是QinQ&#xff1f; QinQ是一种网络技术&#xff0c;全称为"Quantum Insertion"&#xff0c;也被称为"Q-in-Q"、"Double Tagging"或"VLAN stacking"。它是一种在现有的VLAN&#xff08;Virtual Local Area Network&#xff0…