mirror of
https://github.com/WerWolv/ImHex-Patterns.git
synced 2026-03-28 15:57:02 -05:00
This is used by Apple for Xcode .xip files (cpio in pbzx in xar), OTA updates of iOS, and other files.
31 lines
564 B
Rust
31 lines
564 B
Rust
// pbzx compression stream
|
|
// Used by Apple on .xip files and OTA updates.
|
|
//
|
|
// Copyright (c) 2022 Nicolás Alvarez <nicolas.alvarez@gmail.com>
|
|
//
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
#include <std/mem.pat>
|
|
|
|
#pragma endian big
|
|
|
|
#define SHOW_DATA 0
|
|
|
|
struct Chunk {
|
|
u64 uncompressed_size;
|
|
u64 compressed_size;
|
|
if (SHOW_DATA) {
|
|
u8 data[compressed_size] [[sealed]];
|
|
} else {
|
|
padding[compressed_size];
|
|
}
|
|
};
|
|
|
|
struct PBZX {
|
|
char magic[4];
|
|
u64 chunk_size;
|
|
Chunk chunks[while(!std::mem::eof())];
|
|
};
|
|
|
|
PBZX pbzx @ 0;
|