V380固件自动升级失败修复过程

此次的问题是固件升级过程中断电(猜测),导致升级失败,flash中有一个分区被擦除了,所以导致不能用。

折腾了两天,至于怎么折腾的不写了

 

如何获取更新包下载地址:

首先通过tcpdump抓包:

         把tcpdump拷贝到sd卡,之后用串口进入shell,这个操作是在其它的V380摄像头上实现的,执行如下命令:

         tcpdump –w info.cap

         之后到手机里V380软件里,点击一下固件版本更新,好,至此包已经被抓下来了。

         把sd卡插到电脑上,用Wireshark打开info.cap,其中有一个http请求,这就是我们关注的重点了:

红框中,上面的是请求,下面的是响应。

         这是请求地址:http://ipcupdate.av380.net/?param=eyJzb2Z0X2lkIjoiVjM4MEUyX0NBIiwiZGV2X2lkIjoxNDU2ODcyOCwidmVyc2lvbiI6MjA1MDkwNSwidGltZXN0YW1wIjoxNjExNDI2OTg2IH0=

         这是响应内容:

        

哈哈,固件下载地址已经出来了。当然这个只是其它的V380的固件下载地址,并不适合我们已经挂掉的V380。

 

下载适合我们的更新包:

观察这个请求地址:http://ipcupdate.av380.net/?param=eyJzb2Z0X2lkIjoiVjM4MEUyX0NBIiwiZGV2X2lkIjoxNDU2ODcyOCwidmVyc2lvbiI6MjA1MDkwNSwidGltZXN0YW1wIjoxNjExNDI2OTg2IH0=

不难发现param参数使用base64编码,我们把它解码一下,如下:

至此就一目了然,现在就是根据监控里的/mnt/mtd/mvconf/patchmanage.conf来改参数了:

dev_id在监控上贴着有,就在那个二维码旁边(其实写其它的没关系)

改好后把json数据重新编码成base64,替换上边链接的param参数,再次请求即可:

哈哈,把这个链接的文件下载下来,按这个命名:

也就是命名为:12918a546632de6e1a7c06db23aeaa87.patch

 

如何修复:

首先逆向看了一下ELF文件hu_updater,如下是他的升级核心代码:

所以我们把12918a546632de6e1a7c06db23aeaa87.patch拷贝到/tmp/updatepatch下。

另外,我们还需要改动/mnt/mtd/mvconf/patchmanage.conf文件:

执行命令:

         ./hu_updater

串口会出现擦除分区等等进度显示,稍等一会儿升级完成会自动重启,完成修复。

跟着我写的教程来即可,至于折腾过程涉及一些Linux嵌入式、网络、逆向等等步骤我就不写了,感兴趣可以自己找资料看。

V380的串口有密码的,关于如何去掉密码,看我另外一篇文章:https://blog.csdn.net/qq_28824733/article/details/113091446

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值