Skip to main content

Crate udif

Crate udif 

Source
Expand description

DPP - DMG + PKG + PBZX parser

A cross-platform library for working with Apple disk images (DMG files).

§Features

  • List partitions in DMG files
  • Extract raw partition data
  • Create DMG files with various compression methods
  • Cross-platform - works on Windows, Linux, and macOS

§Supported Compression

  • Raw (uncompressed)
  • Zlib
  • Bzip2
  • LZFSE (Apple’s native compression)
  • XZ (LZMA)

§Example

use udif::{DmgArchive, Result};

fn main() -> Result<()> {
    // Open a DMG file
    let mut archive = DmgArchive::open("image.dmg")?;

    // List partitions
    for partition in archive.partitions() {
        println!("{}: {} sectors", partition.name, partition.sectors);
    }

    // Extract main partition
    let data = archive.extract_main_partition()?;
    std::fs::write("partition.raw", &data)?;

    Ok(())
}

Re-exports§

pub use checksum::CHECKSUM_TYPE_CRC32;
pub use checksum::CHECKSUM_TYPE_NONE;
pub use checksum::crc32;
pub use error::DppError;
pub use error::Result;
pub use format::BlockType;
pub use format::KolyHeader;
pub use format::MishHeader;
pub use format::PartitionEntry;
pub use reader::CompressionInfo;
pub use reader::DmgReader;
pub use reader::DmgReaderOptions;
pub use reader::DmgStats;
pub use reader::is_dmg;
pub use reader::open;
pub use writer::CompressionMethod;
pub use writer::DmgWriter;
pub use writer::create;
pub use writer::create_from_data;
pub use writer::create_from_file;

Modules§

checksum
Checksum verification for DMG files
error
Error types for DMG operations
format
Binary format definitions for DMG files
reader
DMG reader implementation
writer
DMG writer implementation

Structs§

DmgArchive
High-level DMG archive interface
DmgBuilder
Builder for creating DMG files
PartitionInfo
Partition information

Enums§

PartitionType
Partition filesystem type detected from the partition name

Functions§

check_dmg
Quick check if a file is a valid DMG
stats
Get statistics about a DMG file