如何修改OpenWrt的Firmware Version

首先,找到显示Firmware Version的代码,在/usr/lib/lua/luci/version.lua中:

BusyBox v1.36.0 (2024-04-15 02:10:29 UTC) built-in shell (ash)


        **                                         
       /**                                         
 ******/**       ******  **   ** ***     ** **   **
////** /******  **////**/**  /**//**  * /**/**  /**
   **  /**///**/**   /**/**  /** /** ***/**/**  /**
  **   /**  /**/**   /**/**  /** /****/****/**  /**
 ******/**  /**//****** //****** ***/ ///**//******
////// //   //  //////   ////// ///    ///  ////// 
zhouwu-313@163.com 
-----------------------------------------------------
 OpenWrt SNAPSHOT, unknown
-----------------------------------------------------
root@ZWFM650:~# 
root@ZWFM650:~# 
root@ZWFM650:~# cat /usr/lib/lua/luci/version.lua 
local pcall, dofile, _G = pcall, dofile, _G

module "luci.version"

if pcall(dofile, "/etc/openwrt_release") and _G.DISTRIB_DESCRIPTION then
        distname    = ""
        distversion = _G.DISTRIB_DESCRIPTION
        if _G.DISTRIB_REVISION then
                distrevision = _G.DISTRIB_REVISION
                if not distversion:find(distrevision,1,true) then
                        distversion = distversion .. " " .. distrevision
                end
        end
else
        distname    = "OpenWrt"
        distversion = "Development Snapshot"
end

luciname    = "LuCI Master"
luciversion = "git-24.102.51807-8c6da73"

root@ZWFM650:~# cat /etc/openwrt_release 
DISTRIB_ID='OpenWrt'
DISTRIB_RELEASE='SNAPSHOT'
DISTRIB_TARGET='ramips/mt7621'
DISTRIB_ARCH='mipsel_24kc'
DISTRIB_TAINTS='no-all busybox'
DISTRIB_REVISION='R24.4.4'
DISTRIB_DESCRIPTION='OpenWrt '
root@ZWFM650:~# 

故需要修改/etc/openwrt_release文件,查看其原本内容,可以直接在package/base-files这个package中修改此文件。

但是这样就是每次都需要重新编译base-files这个package。

最好应该是在打包文件系统时修改,这样每次打包rootfs都会重新编译。

根据打包的日志,找到执行打包的地方,在include/image.mk中,做如下修改:

diff --git a/include/image.mk b/include/image.mk
index 096ccb5..83b6ce6 100644
--- a/include/image.mk
+++ b/include/image.mk
@@ -237,6 +237,7 @@ $(eval $(foreach S,$(JFFS2_BLOCKSIZE),$(call Image/mkfs/jffs2/template,$(S))))
 $(eval $(foreach S,$(NAND_BLOCKSIZE),$(call Image/mkfs/jffs2-nand/template,$(S))))
 
 define Image/mkfs/squashfs-common
+       $(STAGING_DIR_HOST)/bin/version_maker.sh $(call mkfs_target_dir,$(1))
        $(STAGING_DIR_HOST)/bin/mksquashfs4 $(call mkfs_target_dir,$(1)) $@ \
                -nopad -noappend -root-owned \
                -comp $(SQUASHFSCOMP) $(SQUASHFSOPT)

 

同时,在staging/host/bin目录下,新增脚本version_maker.sh,具体如下:

#!/bin/sh
main() {
    local file=`find $1 -name openwrt_release`
    # echo "file:$file"
    [ ! -f $file ] && return

    local D=$(TZ=UTC-8 date +%Y%m%d)
    local T=$(TZ=UTC-8 date +%H%M%S)
    sed -i "s/^DISTRIB_RELEASE=.*/DISTRIB_RELEASE='Adam Build $D Rel\. $T'/g" $file
    sed -i "s/^DISTRIB_DESCRIPTION=.*/DISTRIB_DESCRIPTION=\'Adam Build $D Rel\. $T\'/g" $file
}

main $1
 

注意给文件添加可执行权限:

chmod +x version_maker.sh
然后替换对应的行即可。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值