uboot分析

查看emmc和内存大小,参考https://whycan.com/t_4145.html

破解linux登录密码

参考https://blog.csdn.net/coderwuqiang/article/details/50354270

分析启动过程和固件内容

跑sample程序

报错,更新内核,由于有双分区,这里先更新B分区,A分区作为保险措施,搞挂了从A分区恢复,自己编译个内核和拷贝对应的ko文件到板子上,用原来的加载脚本进行加载。640M,不合法。

重启问题

没跑应用时,总是会隔一段时间重启一次,然而lsmod查看,却没发现有加载看门狗,而且奇怪的时,在uboot命令上也会重启,说明可能用了外部硬件看门狗,或是外接了MCU进行保活复位之类的。

考虑到这个板子软硬件水平确实一般,还是先排除掉外部看门狗。

先统计重启间隔,发现很有规律,总是5分钟重启一次,不管是uboot下还是正常运行,reboot复位一次,重启时间不累加,会重新开始5分钟计时,从这里可以排除掉外部硬件看门狗。

于是猜测是祼写了看门狗寄存器,查看Hi3516DV300芯片手册,找到看门狗寄存器描述,用挂载的himd.l查看0x12050000和0x12051000这两段寄存器,发现寄存器果然是有值的,这就清楚了,是uboot的应用程序直接操作的看门狗寄存器。怪不得板子上有个himm应用程序,但是却没有himd,估计应用也是直接调的himm来操作寄存器吧。

总结:

  1. 整体开发水平一般,软硬件猜测是100%照搬官方DEMO来做的,海思SDK直接一行代码都不用改,甚至连默认sensor都是一样的,编译出来的sample都能运行,这点就很离谱。(IRCUT管脚不一样)
  2. BOM成本严重超出了设备性能需求,单个摄像头配了1G内存和8G emmc,但只出一路码流,帧率10fps,就算加上要运行的人脸检测算法,估计都可以降低配置。
  3. 设备加密水平一般,uboot未设置密码,启动全程带打印,文件系统虽然有双分区,但配置文件都是明文的,里面甚至还可以看到用户名和登录密码。
  4. 反破解只靠一招看门狗,有点太low了。
  5. 应用程序用了多进程,看名字有的是用来板级管理的,有的是负责IOT通信的,有的是免责码流的,有的人负责人脸检测的,猜测码流是通过管道的方式进行发送。
  6. 固件里还能找到产测包和PQTool,离谱。产测手段就是起一个脚本,里面先跑一个thttp服务器,然后每5秒跑一个sample_venc程序,这个samle_venc会抓一张jpg图像并放到http服务器的根目录下,用浏览器可以查看这张图片是否正常。
  7. 板子自带了简单异常恢复手段,基本就是跑后台脚本,定时用ps查看各个进程是否存在,不存在时再拉起对应的进程。
  8. IR-CUT只能固件,不能动态切,但考虑到没有红外灯,不切也正常。
  • 无标签