电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

openwrt升级功能流程简介VIP免费

openwrt升级功能流程简介_第1页
1/9
openwrt升级功能流程简介_第2页
2/9
openwrt升级功能流程简介_第3页
3/9
文档说明: 本文档简述了openwrt sdk 的升级功能流程,从页面传入升级文件到升级文件检测,再到调用升级脚本进行升级,升级完成后,进行系统重启。最后简述了如何添加升级文件标识,标识包括自己定义的字段,以及升级软件的md5 值。达到防止用户用其他 openwrt sdk 编译出来的固件刷新我们的系统,以及防止升级软件被破坏。 文档需要用到的文件及在 sdk 中的路径(某些文件路径可能随项目的不同而改动): ./package/ralink/ui/luci-mtk/src/modules/admin-full/luasrc/controller/admin/system.lua ./target/linux/ramips/image/ Makefile ./package/base-files/files/lib/upgrade/common.sh ./package/base-files/files/lib/functions.sh ./package/base-files/files/sbin/sysupgrade ./target/linux/ramips/base-files/lib/ramips.sh ./target/linux/ramips/base-files/lib/upgrade/platform.sh 文档正文: 1.从页面接受传过来的升级文件 作为整个流程的开始,功能实现在文件system.lua 中。 这是一个 lua 文件,很容易在 function index 函数中找到系统升级功能的入口函数:action_flashops。在这个函数中首先通过 fp = io.open(image_tmp, "w")打开升级临时文件:/tmp/firmware.img,打开后通过 fp:write(chunk)写入页面传进来的升级文件。到这里,接受升级文件完成 。 2.检测升级文件的合法性 实现同样在文件system.lua 中。 在函数 image_supported()中进行检测,这个函数通过 image magic number 来检测升级文件是否合法。函数 image_supported()会调用platform.sh 脚本中的platform_check_image 函数, platform_check_image 函数调用ramips.sh 脚本中的ramips_board_name 函数,获取 board name,ramips_board_name 函数从文件 /tmp/sysinfo/board_name 中获取 board name,若没有则为 unknown,并返回给调用者,我用的板是 ralink-soc。platform_check_image 函数继续调用common.sh 脚本中的get_magic_long 函数,用以获取升级文件magic,就是升级文件前4 位。get_magic_long 函数调用common.sh 脚本中的get_image 函数用以获取文件/tmp/firmware.img 内容,其实就是 cat /tmp/firmware.img. 获取到的内容,通过 dd bs=4 count=1,来获取前 4 位,最后通过 hexdump -v -n 4 -e '1/1 "%02x"' 处理以十六进制编码返回调用者。获取到的升级文件magic...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

openwrt升级功能流程简介

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部