Skip to content

How Automotive Image Builder works

How Automotive Image Builder works

Automotive Image Builder (AIB) takes a YAML manifest and a set of build options as input and produces a deployable OS image as output.

The build process resolves package dependencies, fetches content from configured repositories, and assembles the final image in the requested format.

Input: manifests and options

Every build starts with a manifest file that defines what goes into the image. The manifest specifies packages, container images, configuration files, and other content to include. For details on the manifest format, see Automotive Image Builder manifests.

In addition to the manifest, the build command accepts options that control the target hardware platform, distribution, architecture, and output format. For a full list of options, see Options and mechanics.

Build paths

AIB provides two build paths for producing OS images:

Package-based disk images with aib-dev build

The aib-dev build command creates a traditional, package-based disk image directly from a manifest. The output is a bootable disk image file in the format you specify (for example, qcow2 or raw). Package-based images are useful for development and testing because they use conventional package management and produce a mutable filesystem.

$ aib-dev build \
    --target qemu \
    <path-to-manifest>.aib.yml \
    <my-image-name>.qcow2

Bootc container images with aib build

The aib build command creates a bootc container image from a manifest. Bootc images are immutable and atomically updatable, making them suitable for production deployments. You can push the resulting container image to a OCI-compliant container registry and update running systems with bootc switch or bootc update without re-flashing a disk image.

The following sample command shows how to create a bootc container image from a YML manifest:

$ aib build \
    --target qemu \
    <path-to-manifest>.aib.yml \
    localhost/<my-image-name>:latest

To convert a bootc container image to a bootable disk image, use the aib to-disk-image command:

$ aib to-disk-image \
    localhost/<my-image-name>:latest \
    <my-image-name>.qcow2

To produce a bootc container image and disk image with a single command, add the disk image path as a second output argument:

$ aib build \
    --target <target> \
    <path-to-manifest>.aib.yml \
    localhost/<my-image-name>:latest \
    <my-image-name>.qcow2
The builder image

Automotive images are intentionally minimal and lack many build-time tools such as dnf, mkfs, and other utilities.

To help work around this limitation, AIB uses a builder image, a container that provides all the tools required to assemble an OS image. The builder image acts as a self-contained build environment, ensuring reproducible builds regardless of the host system configuration.