ophub/flippy-openwrt-actions

OpenWrt packaging Actions. Support Amlogic, Rockchip and Allwinner boxes.

290

stars

408

commits

Shell

primary language

Aug 29, 2026

updated

allwinner
amlogic
beikeyun
l1pro
n1
openwrt
rockchip
s905x3
s922x
vplus
Browse cluster: ARM SoC firmware and OS distribution

README

Function description

English Instructions | 中文说明

unifreq/openwrt_packit is an OpenWrt packaging script repository developed by Flippy. It supports Allwinner (VPlus), Rockchip (BeikeYun, Chainedbox-L1-Pro, FastRhino R66S/R68S, Radxa 5B/E25, Watermelon-Pi, etc.), and Amlogic S9xxx series models such as S905x3, S905x2, S922x, S905x, S905d, S905, S912, etc.

This Action uses the original packaging scripts without any modification, and has been developed into an intelligent GitHub Action wrapper, making firmware packaging via GitHub Actions simpler and more customizable.

Default Information for OpenWrt Firmware

System NameDefault UsernameDefault PasswordSSH PortIP Address
🛜 OpenWrt.OSrootpassword22192.168.1.1
🐋 OpenWrt.Dockerrootpassword22192.168.1.1

Usage

This Action can be used by referencing it in your .github/workflows/*.yml workflow file, for example package-openwrt-image.yml. The code is as follows:

- name: Package OpenWrt Firmware
  uses: ophub/flippy-openwrt-actions@main
  env:
    OPENWRT_ARMSR: openwrt/bin/targets/*/*/*.tar.gz
    PACKAGE_SOC: all
    KERNEL_VERSION_NAME: 6.12.y_6.18.y
    KERNEL_AUTO_LATEST: true
    OPENWRT_IP: 192.168.1.1

Optional Parameters

Based on the latest kernel packaging scripts released by Flippy, optional parameters are provided for configuring Packaging Files, make.env, Kernel Version Selection, Target Device SoC, and more.

ParameterDefaultDescription
OPENWRT_ARMSRNoneRequired. Set the file path for openwrt-armsr-armv8-generic-rootfs.tar.gz. You can use a relative path (e.g., openwrt/bin/targets/*/*/*.tar.gz) or a download URL (e.g., https://github.com/*/releases/*/*.tar.gz)
SCRIPT_REPO_URLunifreq/openwrt_packitSet <owner>/<repo> of the packaging script source repository
SCRIPT_REPO_BRANCHmasterSet the branch of the packaging script source repository
KERNEL_REPO_URLbreakingbadboy/OpenWrtSet <owner>/<repo> of the kernel download repository. By default, kernels are downloaded from the kernel Releases maintained by breakingbadboy.
KERNEL_VERSION_NAME6.12.y_6.18.ySet the kernel version. You can specify a single kernel (e.g., 6.12.y) or select multiple kernels connected with _ (e.g., 6.12.y_6.18.y)
KERNEL_AUTO_LATESTtrueSet whether to automatically use the latest kernel version within the same series. When set to true, the system will check the kernel repository for a newer version of the kernel specified in KERNEL_VERSION_NAME (e.g., 6.12.y) and automatically replace it with the latest available version. When set to false, the specified kernel version will be used as-is.
PACKAGE_SOCallSet the target device SOC for packaging. The default all packages all supported devices. You can specify a single device (e.g., s905x3) or select multiple devices connected with _ (e.g., s905x3_s905d). The SoC codes for each device are: 100ask-dshanpi-a1, vplus, cm3, jp-tvbox, beikeyun, l1pro, rock5b, rock5c, e52c, e54c, r66s, r68s, e25, photonicat, watermelon-pi, xylink-xr3528, yixun-rs6pro, zcube1-max, ht2, e20c, e24c, h28k, h66k, h68k, h69k, h69k-max, h88k, h88k-v3, rk3399, s905, s905d, s905x2, s905x3, s912, s922x, s922x-n2, qemu, diy. Note: s922x-n2 is s922x-odroid-n2, diy is a custom device.
OPENWRT_IP192.168.1.1Set the default IP address for OpenWrt
GZIP_IMGSautoSet the firmware compression format after packaging. Available options: .gz (default) / .xz / .zip / .zst / .7z
SELECT_PACKITPATHopenwrt_packitSet the name of the packaging directory under /opt
SELECT_OUTPUTPATHoutputSet the name of the firmware output directory in the ${SELECT_PACKITPATH} directory
SAVE_OPENWRT_ROOTFStrueSet whether to save the *-rootfs.tar.gz file after packaging
SCRIPT_100ASKDSHANPIA1mk_rk3576_100ask-dshanpi-a1.shSet the script filename for packaging rk3576 100ask-dshanpi-a1
SCRIPT_VPLUSmk_h6_vplus.shSet the script filename for packaging h6 vplus
SCRIPT_CM3mk_rk3566_radxa-cm3-rpi-cm4-io.shSet the script filename for packaging rk3566 radxa-cm3-rpi-cm4-io
SCRIPT_HT2mk_rk3528_ht2.shSet the script filename for packaging rk3528 ht2
SCRIPT_E20Cmk_rk3528_e20c.shSet the script filename for packaging rk3528 e20c
SCRIPT_E24Cmk_rk3528_e24c.shSet the script filename for packaging rk3528 e24c
SCRIPT_H28Kmk_rk3528_h28k.shSet the script filename for packaging rk3528 h28k
SCRIPT_H66Kmk_rk3568_h66k.shSet the script filename for packaging rk3568 h66k
SCRIPT_H68Kmk_rk3568_h68k.shSet the script filename for packaging rk3568 h68k
SCRIPT_H69Kmk_rk3568_h69k.shSet the script filename for packaging rk3568 h69k
SCRIPT_H88Kmk_rk3588_h88k.shSet the script filename for packaging rk3588 h88k/ak88
SCRIPT_H88KV3mk_rk3588_h88k-v3.shSet the script filename for packaging rk3588 h88k-v3
SCRIPT_JPTVBOXmk_rk3566_jp-tvbox.shSet the script filename for packaging rk3566 jp-tvbox
SCRIPT_BEIKEYUNmk_rk3328_beikeyun.shSet the script filename for packaging rk3328 beikeyun
SCRIPT_L1PROmk_rk3328_l1pro.shSet the script filename for packaging rk3328 l1pro
SCRIPT_ZCUBE1MAXmk_rk3399_zcube1-max.shSet the script filename for packaging rk3399 zcube1-max
SCRIPT_ROCK5Bmk_rk3588_rock5b.shSet the script filename for packaging rk3588 rock5b
SCRIPT_ROCK5Cmk_rk3588s_rock5c.shSet the script filename for packaging rk3588s rock5c
SCRIPT_E52Cmk_rk3588s_e52c.shSet the script filename for packaging rk3588s e52c
SCRIPT_E54Cmk_rk3588s_e54c.shSet the script filename for packaging rk3588s e54c
SCRIPT_R66Smk_rk3568_r66s.shSet the script filename for packaging rk3568 r66s
SCRIPT_R68Smk_rk3568_r68s.shSet the script filename for packaging rk3568 r68s
SCRIPT_E25mk_rk3568_e25.shSet the script filename for packaging rk3568 e25
SCRIPT_PHOTONICATmk_rk3568_photonicat.shSet the script filename for packaging rk3568 photonicat
SCRIPT_RS6PROmk_rk3528_rs6pro.shSet the script filename for packaging rk3528 yixun-rs6pro
SCRIPT_WATERMELONPImk_rk3568_watermelon-pi.shSet the script filename for packaging rk3568 watermelon-pi
SCRIPT_S905mk_s905_mxqpro+.shSet the script filename for packaging s905 mxqpro+
SCRIPT_S905Dmk_s905d_n1.shSet the script filename for packaging s905d n1
SCRIPT_S905X2mk_s905x2_x96max.shSet the script filename for packaging s905x2 x96max
SCRIPT_S905X3mk_s905x3_multi.shSet the script filename for packaging s905x3 multi
SCRIPT_S912mk_s912_zyxq.shSet the script filename for packaging s912 zyxq
SCRIPT_S922Xmk_s922x_gtking.shSet the script filename for packaging s922x gtking
SCRIPT_S922X_N2mk_s922x_odroid-n2.shSet the script filename for packaging s922x odroid-n2
SCRIPT_XYLINK_XR3528mk_rk3528_xylink-xr3528.shSet the script filename for packaging xylink xr3528
SCRIPT_QEMUmk_qemu-aarch64_img.shSet the script filename for packaging qemu
SCRIPT_DIYmk_diy.shSet the script filename for packaging diy custom
SCRIPT_DIY_PATHNoneSet the source path for SCRIPT_DIY. You can use a URL (e.g., https://weburl/mydiyfile) or a relative path in your repository (e.g., script/mk_s905w.sh)
CUSTOMIZE_RK3399NoneSet a custom rk3399 device list in the format board1:dtb1/board2:dtb2. Set to none to ignore this option.
WHOAMIflippySet the value for WHOAMI in make.env
OPENWRT_VERautoSet the value for OPENWRT_VER in make.env. The default auto inherits the value from the file. When set to another value, it overrides the original with the custom value.
SW_FLOWOFFLOAD1Set the value for SW_FLOWOFFLOAD in make.env
HW_FLOWOFFLOAD0Set the value for HW_FLOWOFFLOAD in make.env
SFE_FLOW1Set the value for SFE_FLOW in make.env
ENABLE_WIFI_K5041Set the value for ENABLE_WIFI_K504 in make.env
ENABLE_WIFI_K5101Set the value for ENABLE_WIFI_K510 in make.env
DISTRIB_REVISIONR$(date +%m.%d)Set the value for DISTRIB_REVISION in make.env
DISTRIB_DESCRIPTIONOpenWrtSet the value for DISTRIB_DESCRIPTION in make.env

💡 In most cases, the default parameters are sufficient, but you can customize them as needed. For example, if Flippy renames a packaging script causing the default script to become unavailable, or if the firmware version number in make.env is not updated, you can use optional parameters to specify values at build time and customize the configuration.

Output Parameters Explanation

Following GitHub Actions standards, 3 environment variables are output for use in subsequent workflow steps. Since GitHub recently changed the default settings for forked repositories, Workflow read-write permissions are disabled by default. Therefore, uploading to Releases requires enabling Workflow read and write permissions. For details, see User Manual.

ParameterDefault ValueDescription
${{ env.PACKAGED_OUTPUTPATH }}/opt/openwrt_packit/outputPackaging output path
${{ env.PACKAGED_OUTPUTDATE }}07.15.1058Packaging date
${{ env.PACKAGED_STATUS }}success / failurePackaging status: success / failure

License

The flippy-openwrt-actions © OPHUB is licensed under GPL-2.0

Contributors

ophub

408 commits

ophub/flippy-openwrt-actions

OpenWrt packaging Actions. Support Amlogic, Rockchip and Allwinner boxes.

290

stars

408

commits

Shell

primary language

Aug 29, 2026

updated

allwinner
amlogic
beikeyun
l1pro
n1
openwrt
rockchip
s905x3
s922x
vplus
Browse cluster: ARM SoC firmware and OS distribution

README

Function description

English Instructions | 中文说明

unifreq/openwrt_packit is an OpenWrt packaging script repository developed by Flippy. It supports Allwinner (VPlus), Rockchip (BeikeYun, Chainedbox-L1-Pro, FastRhino R66S/R68S, Radxa 5B/E25, Watermelon-Pi, etc.), and Amlogic S9xxx series models such as S905x3, S905x2, S922x, S905x, S905d, S905, S912, etc.

This Action uses the original packaging scripts without any modification, and has been developed into an intelligent GitHub Action wrapper, making firmware packaging via GitHub Actions simpler and more customizable.

Default Information for OpenWrt Firmware

System NameDefault UsernameDefault PasswordSSH PortIP Address
🛜 OpenWrt.OSrootpassword22192.168.1.1
🐋 OpenWrt.Dockerrootpassword22192.168.1.1

Usage

This Action can be used by referencing it in your .github/workflows/*.yml workflow file, for example package-openwrt-image.yml. The code is as follows:

- name: Package OpenWrt Firmware
  uses: ophub/flippy-openwrt-actions@main
  env:
    OPENWRT_ARMSR: openwrt/bin/targets/*/*/*.tar.gz
    PACKAGE_SOC: all
    KERNEL_VERSION_NAME: 6.12.y_6.18.y
    KERNEL_AUTO_LATEST: true
    OPENWRT_IP: 192.168.1.1

Optional Parameters

Based on the latest kernel packaging scripts released by Flippy, optional parameters are provided for configuring Packaging Files, make.env, Kernel Version Selection, Target Device SoC, and more.

ParameterDefaultDescription
OPENWRT_ARMSRNoneRequired. Set the file path for openwrt-armsr-armv8-generic-rootfs.tar.gz. You can use a relative path (e.g., openwrt/bin/targets/*/*/*.tar.gz) or a download URL (e.g., https://github.com/*/releases/*/*.tar.gz)
SCRIPT_REPO_URLunifreq/openwrt_packitSet <owner>/<repo> of the packaging script source repository
SCRIPT_REPO_BRANCHmasterSet the branch of the packaging script source repository
KERNEL_REPO_URLbreakingbadboy/OpenWrtSet <owner>/<repo> of the kernel download repository. By default, kernels are downloaded from the kernel Releases maintained by breakingbadboy.
KERNEL_VERSION_NAME6.12.y_6.18.ySet the kernel version. You can specify a single kernel (e.g., 6.12.y) or select multiple kernels connected with _ (e.g., 6.12.y_6.18.y)
KERNEL_AUTO_LATESTtrueSet whether to automatically use the latest kernel version within the same series. When set to true, the system will check the kernel repository for a newer version of the kernel specified in KERNEL_VERSION_NAME (e.g., 6.12.y) and automatically replace it with the latest available version. When set to false, the specified kernel version will be used as-is.
PACKAGE_SOCallSet the target device SOC for packaging. The default all packages all supported devices. You can specify a single device (e.g., s905x3) or select multiple devices connected with _ (e.g., s905x3_s905d). The SoC codes for each device are: 100ask-dshanpi-a1, vplus, cm3, jp-tvbox, beikeyun, l1pro, rock5b, rock5c, e52c, e54c, r66s, r68s, e25, photonicat, watermelon-pi, xylink-xr3528, yixun-rs6pro, zcube1-max, ht2, e20c, e24c, h28k, h66k, h68k, h69k, h69k-max, h88k, h88k-v3, rk3399, s905, s905d, s905x2, s905x3, s912, s922x, s922x-n2, qemu, diy. Note: s922x-n2 is s922x-odroid-n2, diy is a custom device.
OPENWRT_IP192.168.1.1Set the default IP address for OpenWrt
GZIP_IMGSautoSet the firmware compression format after packaging. Available options: .gz (default) / .xz / .zip / .zst / .7z
SELECT_PACKITPATHopenwrt_packitSet the name of the packaging directory under /opt
SELECT_OUTPUTPATHoutputSet the name of the firmware output directory in the ${SELECT_PACKITPATH} directory
SAVE_OPENWRT_ROOTFStrueSet whether to save the *-rootfs.tar.gz file after packaging
SCRIPT_100ASKDSHANPIA1mk_rk3576_100ask-dshanpi-a1.shSet the script filename for packaging rk3576 100ask-dshanpi-a1
SCRIPT_VPLUSmk_h6_vplus.shSet the script filename for packaging h6 vplus
SCRIPT_CM3mk_rk3566_radxa-cm3-rpi-cm4-io.shSet the script filename for packaging rk3566 radxa-cm3-rpi-cm4-io
SCRIPT_HT2mk_rk3528_ht2.shSet the script filename for packaging rk3528 ht2
SCRIPT_E20Cmk_rk3528_e20c.shSet the script filename for packaging rk3528 e20c
SCRIPT_E24Cmk_rk3528_e24c.shSet the script filename for packaging rk3528 e24c
SCRIPT_H28Kmk_rk3528_h28k.shSet the script filename for packaging rk3528 h28k
SCRIPT_H66Kmk_rk3568_h66k.shSet the script filename for packaging rk3568 h66k
SCRIPT_H68Kmk_rk3568_h68k.shSet the script filename for packaging rk3568 h68k
SCRIPT_H69Kmk_rk3568_h69k.shSet the script filename for packaging rk3568 h69k
SCRIPT_H88Kmk_rk3588_h88k.shSet the script filename for packaging rk3588 h88k/ak88
SCRIPT_H88KV3mk_rk3588_h88k-v3.shSet the script filename for packaging rk3588 h88k-v3
SCRIPT_JPTVBOXmk_rk3566_jp-tvbox.shSet the script filename for packaging rk3566 jp-tvbox
SCRIPT_BEIKEYUNmk_rk3328_beikeyun.shSet the script filename for packaging rk3328 beikeyun
SCRIPT_L1PROmk_rk3328_l1pro.shSet the script filename for packaging rk3328 l1pro
SCRIPT_ZCUBE1MAXmk_rk3399_zcube1-max.shSet the script filename for packaging rk3399 zcube1-max
SCRIPT_ROCK5Bmk_rk3588_rock5b.shSet the script filename for packaging rk3588 rock5b
SCRIPT_ROCK5Cmk_rk3588s_rock5c.shSet the script filename for packaging rk3588s rock5c
SCRIPT_E52Cmk_rk3588s_e52c.shSet the script filename for packaging rk3588s e52c
SCRIPT_E54Cmk_rk3588s_e54c.shSet the script filename for packaging rk3588s e54c
SCRIPT_R66Smk_rk3568_r66s.shSet the script filename for packaging rk3568 r66s
SCRIPT_R68Smk_rk3568_r68s.shSet the script filename for packaging rk3568 r68s
SCRIPT_E25mk_rk3568_e25.shSet the script filename for packaging rk3568 e25
SCRIPT_PHOTONICATmk_rk3568_photonicat.shSet the script filename for packaging rk3568 photonicat
SCRIPT_RS6PROmk_rk3528_rs6pro.shSet the script filename for packaging rk3528 yixun-rs6pro
SCRIPT_WATERMELONPImk_rk3568_watermelon-pi.shSet the script filename for packaging rk3568 watermelon-pi
SCRIPT_S905mk_s905_mxqpro+.shSet the script filename for packaging s905 mxqpro+
SCRIPT_S905Dmk_s905d_n1.shSet the script filename for packaging s905d n1
SCRIPT_S905X2mk_s905x2_x96max.shSet the script filename for packaging s905x2 x96max
SCRIPT_S905X3mk_s905x3_multi.shSet the script filename for packaging s905x3 multi
SCRIPT_S912mk_s912_zyxq.shSet the script filename for packaging s912 zyxq
SCRIPT_S922Xmk_s922x_gtking.shSet the script filename for packaging s922x gtking
SCRIPT_S922X_N2mk_s922x_odroid-n2.shSet the script filename for packaging s922x odroid-n2
SCRIPT_XYLINK_XR3528mk_rk3528_xylink-xr3528.shSet the script filename for packaging xylink xr3528
SCRIPT_QEMUmk_qemu-aarch64_img.shSet the script filename for packaging qemu
SCRIPT_DIYmk_diy.shSet the script filename for packaging diy custom
SCRIPT_DIY_PATHNoneSet the source path for SCRIPT_DIY. You can use a URL (e.g., https://weburl/mydiyfile) or a relative path in your repository (e.g., script/mk_s905w.sh)
CUSTOMIZE_RK3399NoneSet a custom rk3399 device list in the format board1:dtb1/board2:dtb2. Set to none to ignore this option.
WHOAMIflippySet the value for WHOAMI in make.env
OPENWRT_VERautoSet the value for OPENWRT_VER in make.env. The default auto inherits the value from the file. When set to another value, it overrides the original with the custom value.
SW_FLOWOFFLOAD1Set the value for SW_FLOWOFFLOAD in make.env
HW_FLOWOFFLOAD0Set the value for HW_FLOWOFFLOAD in make.env
SFE_FLOW1Set the value for SFE_FLOW in make.env
ENABLE_WIFI_K5041Set the value for ENABLE_WIFI_K504 in make.env
ENABLE_WIFI_K5101Set the value for ENABLE_WIFI_K510 in make.env
DISTRIB_REVISIONR$(date +%m.%d)Set the value for DISTRIB_REVISION in make.env
DISTRIB_DESCRIPTIONOpenWrtSet the value for DISTRIB_DESCRIPTION in make.env

💡 In most cases, the default parameters are sufficient, but you can customize them as needed. For example, if Flippy renames a packaging script causing the default script to become unavailable, or if the firmware version number in make.env is not updated, you can use optional parameters to specify values at build time and customize the configuration.

Output Parameters Explanation

Following GitHub Actions standards, 3 environment variables are output for use in subsequent workflow steps. Since GitHub recently changed the default settings for forked repositories, Workflow read-write permissions are disabled by default. Therefore, uploading to Releases requires enabling Workflow read and write permissions. For details, see User Manual.

ParameterDefault ValueDescription
${{ env.PACKAGED_OUTPUTPATH }}/opt/openwrt_packit/outputPackaging output path
${{ env.PACKAGED_OUTPUTDATE }}07.15.1058Packaging date
${{ env.PACKAGED_STATUS }}success / failurePackaging status: success / failure

License

The flippy-openwrt-actions © OPHUB is licensed under GPL-2.0

Contributors

ophub

408 commits

Languages

Shell

100.0%