Crate abootimg_oxide

Source
Expand description

A parser for Android boot image headers (e.g. boot.img or vendor_boot.img).

This can be used to extract or patch e.g. the kernel or ramdisk.

Byte array fields ([u8; N]) can be used as null-terminated strings.

§Examples

use std::fs::File;
use abootimg_oxide::{BufReader, Header};

let mut r = BufReader::new(File::open("boot_a.img").unwrap());
let hdr = Header::parse(&mut r).unwrap();
println!("{hdr:#?}");

// Extract the kernel
use std::io::{self, BufWriter, Read, Seek, SeekFrom};

let mut w = BufWriter::new(File::create("boot_a_kernel").unwrap());
let r = r.get_mut();
r.seek(SeekFrom::Start(hdr.kernel_position() as u64))
    .unwrap();
io::copy(&mut r.take(hdr.kernel_size() as u64), w.get_mut()).unwrap();

Re-exports§

pub use binrw::io::BufReader;

Structs§

HeaderV0
Android boot image header versions 0, 1 and 2
HeaderV3
Android boot image header versions 3 and 4
OsPatch
OS patch level
OsVersion
OS version
OsVersionPatch
OS version and patch level
VendorHeader
Android vendor boot image header version 3 and 4
VendorHeaderV4
V4-specific fields of the Android vendor boot image header

Enums§

Header
Android boot image header for versions 0 through 4
HeaderV0Versioned
Version-specific part of boot image headers v0-v2