UKIBOOTCTL(1)

NAME
ukibootctl - query and update the active UKIBoot boot slot

SYNOPSIS
ukibootctl [OPTIONS] COMMAND [...]

DESCRIPTION
ukibootctl queries and manipulates the UKIBoot A/B boot control data stored in the ukibootctl partition. It is used to inspect the current slot state and to drive the A/B update workflow: preparing a switch to the inactive slot before an update, finalizing the switch afterwards, and marking a slot as successfully booted.

The boot control protocol is modelled on Android Verified Boot v2. Each of the two slots (A and B) carries a priority, a count of remaining boot tries and a successful-boot flag.

OPTIONS

--verbose
    Show verbose output.

--help
    Show a brief help message and exit.

--version
    Show the program version and exit.

--partition=PATH
    Path to the ukibootctl partition. Default: /dev/disk/by-partlabel/ukibootctl.

COMMANDS

init
    Initialize the boot control data with default values.

dump
    Dump the current boot options for both slots.

get-active
    Show the current active slot as recorded on disk.

get-booted
    Show the slot the running system was booted from, as determined from the androidboot.slot_suffix kernel command line key.

prepare-switch SLOT
    Prepare to switch to SLOT. Run this before writing an update to the inactive slot. The other slot is kept bootable and the new slot is marked non-bootable until finalized.

finalize-switch SLOT
    Finalize the switch to SLOT. Run this after the update has been written. The new slot is given the highest priority and a fixed number of boot tries.

mark-successful [SLOT]
    Mark a boot as successful, clearing the remaining boot tries. If SLOT is omitted the currently booted slot is used. Run this once the system has booted and is known to be healthy.

SLOT NAMING
Slots are identified as 0 (slot A, ukiboot_a) and 1 (slot B, ukiboot_b).

EXIT STATUS
ukibootctl exits 0 on success and non-zero on failure.

SEE ALSO
ukibootimg(1)

AUTHOR
UKIBoot was written by Alexander Larsson <alexl@redhat.com>.

This manual page was written by Christopher Obbard <obbardc@debian.org> for the Debian GNU/Linux project.