kazuki-vim / bose-qc45-firmware

1 stars 0 forks source link

Disclaimer

TL;DR

There are 2 parts need to be executed:

Part 1: Enable Update Now action

// Append the option to version dropdown list document.getElementById('smartdevice_targetfirmware').appendChild(new Option('4.0.4-4360+de6a887', '4.0.4-4360+de6a887'));

## Part 2: Override firmware and update
- Download desired firmware from this repository, put into `C:\Users\<username>\AppData\Local\Temp` and renamed it to `bose.bin`
- Setup python-venv as you might want, and install dependencies
```bash
pip3 install -r requirements.txt

Background story

1. Why downgrading

2. Why need this manual

3. Steps

Firmware download

Modify Bose btu website

If your Bose QC45 is on latest firmware already, Bose doesn't even allow you to select the latest version This is written in their website source code

n.device.getAvailableVersions(function(e, t) {
    for (var r = device_targetfirmware.options.length, i = r - 1; i >= 0; i--)
        device_targetfirmware.remove(i);
    t.reverse();
}

Python script

To be honest, I tried several methods to detect if firmware is completely downloaded, but it's hard to know, so from experience, I set delay time to 3.5s from when the file is originally created.

Why update is failed

Some notes

Useful resources