我想为某些ARMv7设备修改现有固件。可以将其想象为“我想在我的家用路由器中添加室外温度监控器功能和其他相应的网页”。因此,我需要在固件中嵌入其他软件并修改-扩展cgi Web服务器代码。
固件通常以二进制文件firmware_filename.bin
的形式存储,然后在执行$nandwrite -p /dev/mtd8 firmware_filename.bin
期间在设备内部的一个nand上刷新。
简而言之,我的问题是:如何轻松“煮熟” firmware_filename.bin
文件,并稍作修改(添加了其他网页及其提供的二进制文件)?
到目前为止,我调查的是mtd-utils软件包中有适用于Linux的NAND模拟器-您可以使用命令modprobe nandsim
创建虚拟芯片,然后将其刷新。
可能存在一些字节偏移或分区,它们可能与引导加载程序相关或与引导过程有关-需要“不动”以重用现有的工作方案。我最好的方法-我想“完全不知道”该分区-不对设备进行砌块,并在文件级别使用最小的必要子集。
所以我想要的-不是 lowwest级别的访问权限,而是检查并稍微在文件级别修改其文件系统。我不太了解/ dev / mtd0是什么,以及如何像使用/ dev / sda0一样使用它?如何“挂载” / dev / mtd0设备,或以其他方式编辑其文件系统内容?