数据库 uwp 如何做网络营销推广 管理后台框架 jquery绑定change事件 matlab根号怎么打出来 grep不是内部命令 vim跳到文件末尾 centos查看python版本 java取绝对值 python3下载安装 python内置库 python配置 python中str函数 python入门指南 python学习方法 java新特性 java重载和重写 java类型 java实现多线程 java结束线程 java异常 linuxtail命令 linux简介 python源码下载 飞猪ip 免费脚本 html5下载 自动答题软件 说话不算数的经典语句 上传附件 程序卸载 tomcat修改端口 comsol下载 pdf密码移除 vue引入第三方js r330不能识别墨盒 pro换肤 变声器电脑版 linux格式化硬盘
当前位置: 首页 > 学习教程  > 编程语言

雄迈二次开发(转载)

2020/12/5 10:36:29 文章标签:

首先,你的在某宝买一个别人家量产的产品或者开发模组,然后你的有一定的硬件基础或者如果你不懂可以先叫人家硬件工程师帮你接出来。然后用串口,如果能中断进入Uboot,那么恭喜你,有戏在后头,看flash的块大小…

首先,你的在某宝买一个别人家量产的产品或者开发模组,然后你的有一定的硬件基础或者如果你不懂可以先叫人家硬件工程师帮你接出来。然后用串口,如果能中断进入Uboot,那么恭喜你,有戏在后头,看flash的块大小,一般有如Block:64KB(说明这块flash块大小为64kb),看rootfstype

    在uboot里输入printenv查看下启动参数:

    如一家公司的:
     bootargs=mem=160M console=ttyAMA0,115200 root=1f01 rootfstype=cramfs                 mtdparts=hi_sfc:512K(boot),4M(romfs),5632K(usr),1536K(web),3M(custom),256K(logo),1280K(mtd)
     可以看到rootfstype=cramfs整个根文件系统是cramfs的,cramfs制作的根文件系统可以挂载到本地的

     如另外一家公司的:

      bootargs=mem=58M console=ttyAMA0,115200 root=/dev/mtdblock3 noinitrd rootfstype=squashfs mtdparts=hi_sfc:256K(boot),2048K(kernel),512K(userdata),13568K(rootfs)

      可以看到rootfstype=squashfs 整个根文件系统是squashfs 的,squashfs 制作的根文件系统可以挂载到本地的

下面针对两种文件系统的解密:

     依据bootargs显示的各个分区大小可以计算出各自在flash的烧录地址,以解读下一家公司的文件系统为例:

      rootfs大小为13568K即0xD40000,起始地址为0x2c0000,起始地址如果你幸运的话可以在串口打印中看到,如果别人加密了看不到也不要紧,自己计算起始地址。





   依据以上计算,打开tftp,匹配好uboot的ipaddr以及serverip。然后将rootfs上传到PC端tftp目录下。具体如下:

mw.b 0x81000000 0xff 0xD40000
sf probe 0
sf read 0x81000000 0x2c0000 0xD40000
tftp 0x81000000 rootfs 0xD40000

至此,已经将flash上的rootfs拷贝到你的PC端tftp目录下,然后复制到你的虚拟机上,下面针对两种文件系统解密:

1)squashfs 文件系统

 如果你的虚拟机没有unsquashfs命令,请安装squashfs-tools工具,如Ubuntu下安装apt-get install squashfs-tools

 然后执行unsquashfs -i rootfs,这样就已经解压了rootfs,就会看到生成一个目录,为方便讲解,假设生成了目录squashfs-root。想要修改成自己的调试版,那就要修改etc/password里面的信息,改为

  root:$1$$qRPK7m23GJusamGpoGLby/:0:0::/root:/bin/sh

即将串口密码设置为空,然后执行

 mksquashfs ./squashfs-root rootfs.squashfs.img -b 64K -comp xz

 64K即为前面说的flash的块大小,xz即为压缩格式,rootfs.squashfs.img为压缩生成的可烧录文件

2)cramfs文件系统

 如果你的虚拟机没有cramfsck  命令,请安装cramfsprogs工具,如Ubuntu下安装apt-get install cramfsprogs

 然后执行cramfsck  rootfs  -x  cramfs-boot,这样就已经解压了rootfs,就会看到生成一个目录cramfs-boot。想要修改成自己的调试版,那就要修改etc/password里面的信息,改为

  root:$1$$qRPK7m23GJusamGpoGLby/:0:0::/root:/bin/sh

即将串口密码设置为空,然后执行以下命令制作cramfs的文件系统

 mkcramfs cramfs-boot   cramfs.img

 cramfs.img为压缩生成的可烧录文件

最后就是烧录了,以rootfs.squashfs.img 为例:

mw.b 0x81000000 0xff 0xD40000
tftp 0x81000000 rootfs.squashfs.img
sf probe 0;sf erase 0x2c0000 0xD40000;sf write 0x81000000 0x2c0000 0xD40000

至此reset启动,如果一切正常你就能进入串口开启自己的调试之路了


本文链接: http://www.dtmao.cc/news_show_450280.shtml

附件下载

上一篇:字符串轮转

下一篇:day01-canvas标签

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?