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

app ota-dump

A tool to dump manifest of Android's OTA package

7 releases

0.1.6 Sep 2, 2022
0.1.5 Aug 16, 2022
0.1.4 Nov 11, 2021
0.1.2 Sep 26, 2021

#8 in #ota

Custom license

26KB
452 lines

Rust learning project

update_metadata.proto is copied from aosp

Android's OTA file is simply a .zip archive. Most of the information is stored in payload.bin entry inside it. Format of payload.bin is defined at system/update_engine/update_metadata.proto.

This tool locates payload.bin inside OTA's zip file and parses the format according to definition in update_metadata.proto.

Install

  1. Install rust via https://www.rust-lang.org/learn/get-started
  2. cargo install ota-dump

Usage

ota-dump <path to android OTA.zip>

Examples

  • 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'

    will list partitions included in this update.

  • ota-dump cf_x86_dm_verity.zip | jq '{name: .partitions[].partition_name, size: .partitions[].new_partition_info.size}'

    List partitions included and size of partitions after OTA update.

  • ota-dump cf_x86_dm_verity.zip | jq 'del(.partitions[].operations)|del(.partitions[].merge_operations)'

    Dump the manifest without operation list without list of operations. The output will be much smaller.

Dependencies

~7–19MB
~283K SLoC