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§
- Header
V0 - Android boot image header versions 0, 1 and 2
- Header
V3 - Android boot image header versions 3 and 4
- OsPatch
- OS patch level
- OsVersion
- OS version
- OsVersion
Patch - OS version and patch level
- Vendor
Header - Android vendor boot image header version 3 and 4
- Vendor
Header V4 - V4-specific fields of the Android vendor boot image header
Enums§
- Header
- Android boot image header for versions 0 through 4
- Header
V0Versioned - Version-specific part of boot image headers v0-v2