OpenHarmony的allinone.bin固件格式解析 原创
再见南丫岛
发布于 2022-3-22 17:35
1.1w浏览
2收藏
在开发完Hi3861的固件之后,需要对固件进行烧录。官方推荐直接使用allinone.bin固件。通过HiBurn软件加载该固件之后,会解析出三个bin文件。猜测allinone.bin中包含了这三个固件,以及一些配置参数。
带着这个猜测,分析了一下openharmony关于编译部分的代码。在build\scripts目录下发现了packet_create.py文件。
于是与源码对比分析,发现确实该文件是打包的py文件。
allinone.bin文件内容分为两部分,数据头和帧内容。
以上为数据头内容。对比python的代码,可以分析出数据头中包含的内容为
名称 | 类型 | 内容 |
---|---|---|
标志头 | unsigned int | 0xefbeaddf |
CRC | unsigned short | – |
镜头个数 | unsigned short | 3 |
文件大小 | unsigned int | – |
文件名 | 字符串32s | Hi3861_loader_signed.bin |
索引地址 | unsigned int | – |
文件大小 | unsigned int | – |
Burn地址 | unsigned int | – |
xx | unsigned int | – |
xx | unsigned int | – |
文件名 | 字符串32s | Hi3861_wifiiot_app_burn.bin |
索引地址 | unsigned int | – |
文件大小 | unsigned int | – |
Burn地址 | unsigned int | – |
xx | unsigned int | – |
xx | unsigned int | – |
文件名 | 字符串32s | Hi3861_boot_signed_B.bin |
索引地址 | unsigned int | – |
文件大小 | unsigned int | – |
Burn地址 | unsigned int | – |
xx | unsigned int | – |
xx | unsigned int | – |
数据内容既对应文件的内容,然后每个文件后面有16个字节的0x00作为分割。
分析这个文件的原因是希望可以自己开发一个HiBurn工具,这样可以更加灵活的实现固件的烧录。后续会对HiBurn的工作原理,协议交互逻辑进行分析。
©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2022-7-13 18:04:31修改
赞
6
收藏 2
回复
6
2
2
相关推荐
跟着楼主探究了一遍
请问大佬,编译出来的所有文件都有,就是没有 Hi3861_wifiiot_app_allinone.bin 是怎么回事啊,是现在修改为 OHOS_Image.bin 了吗?版本5.0.2