#android #manifest #manifest-file #ota #dump #update #package

app ota-dump

一个用于转储Android OTA包清单的工具

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中的定义解析格式。

安装

  1. 通过https://www.rust-lang.net.cn/learn/get-started安装rust
  2. 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