Skip to content

RFE: Implementing a Bootloader Abstraction Layer for Greenboot #175

Description

@say-paul

Objective
Transition Greenboot from a GRUB2-coupled logic to a pluggable backend architecture. This will enable native support for modern and diverse boot environments (ukiboot, systemd-boot, and Android) while keeping the core health-checking logic lightweight.

The Problem
Greenboot currently relies on grubenv for state management (boot counting/marking success). This "hard-coding" prevents Greenboot from running on:

Modern EFI Systems: Utilizing UKIs (Unified Kernel Images) or systemd-boot.

Mobile/Edge Hardware: Utilizing Android A/B Boot logic (where state lives in misc partitions or GPT attributes).

Proposed High-Level Architecture
Introduce a Backend Provider Interface. The Greenboot core will call a generic wrapper, which delegates the hardware-specific "state writing" to a specialized module.

Target Bootloaders
ukiboot,android boot,systemd-boot,grub2(legacy, backward compatibility)

Why This Matters
Universal Portability: One health-check framework that works identically on a Raspberry Pi (U-Boot/UKI), an Android-based Edge Gateway, or a standard Fedora Server.

Modernization: Aligns Greenboot with the industry shift toward UKIs and systemd-native boot management.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions