abl-exorcist-assembler 0.0.1

Assemble mainline kernels and initrds for abl-exorcist Android boot payloads
Documentation

abl-exorcist-assembler

abl-exorcist-assembler is the host-side library and command-line tool for constructing payloads consumed by the abl-exorcist AArch64 shim.

The CLI accepts a raw arm64 Image, Image.gz, Image.zst, or Linux EFI zboot kernel and canonicalizes it before assembly.

To append a kernel package to a raw device-appropriate shim:

abl-exorcist-assembler vmlinuz abl-exorcist.bin > prepared-kernel

To construct the ABLXRD1 Android-ramdisk transport used for an external initrd:

abl-exorcist-assembler --ramdisk vmlinuz initramfs.img > ablx-ramdisk.img

With the default std feature, the library exposes kernel normalization followed by assembly, without filesystem policy:

let kernel = abl_exorcist_assembler::canonicalize_kernel(vmlinuz)?;
let ramdisk = abl_exorcist_assembler::assemble_ramdisk(&kernel, initrd)?;

The assembly functions assemble(kernel, shim) and assemble_ramdisk(kernel, initrd) take an already-normalized raw ARM64 Image and return owned payload bytes. Both assembly functions support no_std + alloc with default-features = false. Kernel normalization and the CLI require the default std feature. assemble_ramdisk requires a nonempty initrd.

Assembly compresses the kernel as a raw LZ4 block using the portable Rust lz4_flex encoder. This uses ordinary LZ4 rather than LZ4 HC, so payloads may be larger than with the previous encoder. The initrd bytes pass through unchanged.

Run abl-exorcist-assembler --help for usage or --version for its version. Generate the manual page with cargo build -p abl-exorcist-assembler --features manpage. The build script writes abl-exorcist-assembler.1 to Cargo's OUT_DIR, normally target/debug/build/abl-exorcist-assembler-*/out/.

Device selection, shim provenance, Android boot image geometry, partition writes, and flashing deliberately belong to higher-level consumers.

License

This project is licensed under the GNU General Public License version 3.0 only. See LICENSE for the full license text.