7个版本
0.1.6 | 2022年9月2日 |
---|---|
0.1.5 | 2022年8月16日 |
0.1.4 | 2021年11月11日 |
0.1.2 | 2021年9月26日 |
#2167 in 解析实现
26KB
452 行
Rust学习项目
update_metadata.proto是从aosp复制的
Android的OTA文件是一个简单的.zip存档。大部分信息都存储在其内的payload.bin
条目中。payload.bin
的格式在system/update_engine/update_metadata.proto中定义。
该工具在OTA的zip文件中定位payload.bin
,并根据update_metadata.proto中的定义解析格式。
安装
- 通过https://www.rust-lang.net.cn/learn/get-started安装rust
cargo安装ota-dump
用法
ota-dump<android路径OTA.zip>
示例
-
ota-dump coral_ota.zip
Dump the entire OTA manifest in json format. Dumped object has type DeltaArchiveManifest. This object is huge so it's best to save it to a file or pipe to other CLI tools such as jq
-
ota-dump cf_x86_dm_verity.zip|jq'.partitions[].partition_name'
将列出此更新中包含的分区。
-
ota-dump cf_x86_dm_verity.zip|jq'{name: .partitions[].partition_name,size: .partitions[].new_partition_info.size}'
列出包含的分区和OTA更新后分区的大小。
-
ota-dump cf_x86_dm_verity.zip|jq'del(.partitions[].操作)|del(.partitions[].merge_operations)'
Dump the manifest without operation list without list of operations. The output will be much smaller.
依赖关系
~7–19MB
~299K SLoC