[Tool] Universal OpenWrt ImageBuilder workflow (recipes, local build, router↔manifest verify)

Tags: imagebuilder build workflow sysupgrade apk release-candidate

Repo: https://github.com/ooonea/openwrt-imagebuilder-workflow

I’m sharing a small universal (target-agnostic) workflow repo that wraps OpenWrt ImageBuilder with a clean, repeatable process.

It’s meant for people who want local, reproducible sysupgrade images (especially useful for RCs / niche targets / when remote builders don’t support a target).

What it does

  • Downloads the correct ImageBuilder for a given release + target from downloads.openwrt.org
  • Verifies SHA256 checksums before extracting
  • Builds a sysupgrade.bin locally from simple recipes (pkgs.add / pkgs.del)
  • Optional files/ overlay injection into the rootfs
  • Generates artifacts in out/ (.sysupgrade.bin, .manifest, .sha256, build log)
  • verify.sh: read-only sanity check that a running router matches the built image by package names using the image manifest
    (currently implemented for apk-based systems via apk list --manifest)

What it does not do (by design)

  • No flashing / no sysupgrade automation: you run sysupgrade manually
  • No “magic” state: scripts are intentionally boring and predictable

Why ImageBuilder is fast

ImageBuilder doesn’t compile OpenWrt. It downloads prebuilt packages for the selected release/target and assembles an image.

Quick start

git clone https://github.com/ooonea/openwrt-imagebuilder-workflow
cd openwrt-imagebuilder-workflow

cp version.env.example version.env
$EDITOR version.env

./scripts/fetch_ib.sh
./scripts/info.sh

./scripts/build.sh --recipe recipes/minimal
./scripts/build.sh --recipe recipes/luci-openssl

./scripts/verify.sh --img out/<image>.sysupgrade.bin --host 192.168.1.1

Small note: verify.sh is intentionally read-only (SSH + apk list --manifest + compare to image .manifest). No flashing/changes happen from the scripts.

The workflow is target-agnostic: as long as ImageBuilder exists for a given release/target, it should work.

PRs welcome (e.g. optional opkg support in verify for non-apk systems).