swupdate 是一个比较著名的用于嵌入式的OTA解决方案。常见OTA 解决方案有OTA recovery 方案 和 OTA A/B系统解决方案。
通过对swupdate 的源码进行研究,得出一下结论:
- swupdate 似乎更倾向于使用者将其用于OTA A/B系统解决方案。
- swupdate 除了web GUI 外,没有成熟的本地GUI用于显示OTA update 的信息(尽管有lua写的gui,但感觉可移植性不是很好,跑起来一直有错误)。
- 本地系统更新,更倾向于从U盘更新系统,如果本地已经存在了OTA包,对OTA 包的更新将会很浪费系统空间。
- swupdate 不支持recovery 模式的系统更新。
- 显示进度的client 程序和server 发布进度的逻辑存在一些bug,导致进度显示存在异常。
作者正是基于以上原因,对原有的swupdate存在的以上问题做了一些改进和修正,现将源码开源于GitHub。