I am trying to reverse engineer the firmware for my JBL Flip 3 speaker. I have obtained a DFU file for the device online but am unsure as to how much of the firmware is included. My first question would be, normally do DFU files include the full device firmware or just a portion of it and the device knows how to update the specific portion?
Assuming for now that the file contains the full firmware, does anyone know anything about firmware images for CSR Bluetooth SOC's? I know that the speaker is using a CSR SOC because the DFU starts with CSR-dfu2
.
Opening the DFU file in Audacity and playing it, we can see that it contains all the sound effects the speaker plays as well as some sections of static that I assume are code:
I am fairly confident that these sections are code/data because they contains strings like tts/0.raw
and tts/1.raw
. However, there is a null byte in between each character of the strings which suggests that they are UTF-16 strings. Does anyone know of an embedded filesystem that uses UTF-16 filenames?
Unfortunately binwalk
does not provide any useful information. However, I found what I believe to be the full JBL Flip 4 firmware image image and binwalk
reveals several sections:
0 0x0 CSR (XAP2) DFU firmware update header
1380 0x564 CSR Bluecore firmware segment
1931310 0x1D782E YAFFS filesystem, big endian
Does anyone have any experience with CSR or JBL firmware and could provide guidance or a suggestion of how to extract code from the DFU? Thank you.