Build polished OpenWrt x86_64 release images with the official ImageBuilder.
This repository automates a small, opinionated OpenWrt build pipeline for x86/64 UEFI systems. It tracks the latest upstream release, applies local customizations, bundles optional packages, and publishes ready-to-use images through GitHub Actions.
.github/workflows/build.yml
config/build.conf
config/packages.list
files/
packages/
README.mdconfig/build.conf: target, image, and download settingsconfig/packages.list: extra packages and explicit package replacementsfiles/: first-boot files and UCI defaults copied into the imagepackages/: local.apkfiles injected into ImageBuilder before packaging.github/workflows/build.yml: the end-to-end GitHub Actions workflow
- Resolve the latest official OpenWrt release.
- Download the matching ImageBuilder.
- Fetch the latest upstream
sing-boxAPK whensing-boxis listed inconfig/packages.list. - Copy the
files/overlay and local packages into ImageBuilder. - Build the
combined-efi.img.gzimage. - Publish diagnostics, manifests, and release assets.
Run Actions -> build -> Run workflow in GitHub.
There are no manual workflow inputs. Build behavior is fully driven by config/build.conf, config/packages.list, files/, and packages/.
OPENWRT_TARGET=x86
OPENWRT_SUBTARGET=64
OPENWRT_PROFILE=generic
OPENWRT_FS=squashfs
OPENWRT_IMAGES="combined-efi.img.gz"
ROOTFS_PARTSIZE=600
BUILD_BASE=https://downloads.openwrt.org
PACKAGES_FILE=config/packages.list
- Uses the official OpenWrt release ImageBuilder rather than a full source build
- Produces the
combined-efi.img.gzimage for UEFI deployments - Preserves diagnostics even when the build fails
- Enables
ADD_LOCAL_KEY=1automatically when local packages are present - Keeps x86/64 generic profile defaults implicit in
config/packages.list, including common NIC drivers files/etc/uci-defaults/97-system-cn: sets timezone toAsia/Shanghaiand switches to domestic NTP serversfiles/etc/uci-defaults/98-apk-mirror: rewrites APK repositories to the USTC mirrorfiles/etc/uci-defaults/99-lan-ip: changes the LAN address to10.0.0.1/24files/etc/rc.local: updates/tmp/sysinfo/modelon every boot when DMIproduct_namematchesDefault string- Local
.apkfiles can be dropped directly intopackages/