BirdDog PLAY Flasher
A factory image onto a decoder, from a browser

What it does
The PLAY Patcher builds a firmware package and hands it to you to upload through the decoder's own web page, which assumes the decoder still answers. This is for when it doesn't: a unit in recovery mode, over USB, with the factory image written to it from a browser tab.
It can also do something the upload route can't. Instead of flashing the factory image and then installing a package on top, it writes the package into the image as it goes and adds a one-shot service that installs it on first boot, so the unit comes up already patched. That works because the factory filesystem is unusually simple and the partition holding it is far bigger than the image inside it, which leaves room to put the package where nothing else will ever touch it.
One thing it doesn't do is push a package to a unit over the network. A page served over HTTPS can't open a plain connection to a device on the local network, so I dropped that half rather than half-build it, and wrote up the manual procedure instead.
- Flashes a factory image over WebUSB — no driver on macOS, and a driver swap on Windows
- Optionally injects a firmware package so the unit self-installs on first boot
- Writes only the handful of filesystem blocks the injection needs, on a 2.4 GB image
- Checks the image and the write plan before touching the device
Where it stands
Published as a beta and hosted, since there's nothing to install and nothing gets uploaded: the factory image is read off your own disk. It's checked offline against real vendor files: the parsers, the partition table, the write plan, and a filesystem check that accepts the patched image and reads the injected files back. The USB half met a real PLAY on 15 August 2026, and the loader push, the re-enumeration wait after it and the read-back check were each corrected to match what the device actually did. What's still unproven is the first-boot install of an injected package. Nothing has yet been watched booting and applying one, and the page says so above the controls.