我正在尝试对 JBL Flip 3 扬声器的固件进行逆向工程。我已在线获取该设备的 DFU 文件,但不确定包含多少固件。我的第一个问题是,通常 DFU 文件包含完整的设备固件还是其中的一部分,并且设备知道如何更新特定部分?
假设现在该文件包含完整的固件,有人知道 CSR 蓝牙 SOC 的固件映像吗?我知道演讲者使用的是 CSR SOC,因为 DFU 以CSR-dfu2.
在 Audacity 中打开 DFU 文件并播放它,我们可以看到它包含扬声器播放的所有音效以及我认为是代码的一些静态部分: 
我相当确信这些部分是代码/数据,因为它们包含像tts/0.raw和这样的字符串tts/1.raw。但是,字符串的每个字符之间有一个空字节,这表明它们是 UTF-16 字符串。有谁知道使用 UTF-16 文件名的嵌入式文件系统?
不幸的binwalk是没有提供任何有用的信息。但是,我发现了我认为是完整的 JBL Flip 4固件映像图像并binwalk揭示了几个部分:
0 0x0 CSR (XAP2) DFU firmware update header
1380 0x564 CSR Bluecore firmware segment
1931310 0x1D782E YAFFS filesystem, big endian
有没有人对 CSR 或 JBL 固件有任何经验,并且可以提供如何从 DFU 中提取代码的指导或建议?谢谢你。