factory.bin:
对于一般路由器而言,factory.bin是用于从原厂固件刷为openwrt。
sysupgrade.bin:
而sysupgrade.bin用于从openwrt更新openwrt。
深入对:
以上定义应该是在最广泛的情况下的准备定义。所以如果我们仔细去看某些路由器的固件,就会发现factory固件是加密的,而sysupgrade不是,但是具体到个案,会有一些变化。
360的所谓factory固件,是一个根解密后的360原厂固件格式类似的固件。而sysupgrade固件,是一个从格式上更为精简,但功能不变的固件。具体来说,factory固件多一层文件头和md5验证。
如果要适应前面说的准确定义的话,编出来的360 factory固件应该是加密的,可以直接在360原厂网页界面上传刷机的固件。
但是根据我的另一篇文章的分析结果,这样的固件编不出来。所以factory固件实际上是一个跟解密后的原厂固件格式类似的东西,而不是加密的固件。
说白了,现在编出的factory固件是个两不像的玩意。而且因为openwrt和原厂固件的机制不同,现在factory固件在刷机后正常启动一次之后就会切换到备份flash的原厂固件上去。
hackpascal 显然知道360固件会有这个是否多一层文件头的区别。所以按照这个格式的不同,解密原厂固件的时候可以选择去掉多余验证的文件头,变成一个"sysupgrade固件",做了这么一个选择勾。在我看来这个勾是没什么用处的,当然也没有害处。
360的支持patch是hackpascal提供的。他现在的factory/sysupgrade的区别是因为参照了类似的wd my net n600而形成的。不是从需求角度有意做的。
如果某天我们偷到了360的生成固件私钥,或者官方良心发现公开了,那我们就能编出真正的factory固件了。