Skip to content

Instantly share code, notes, and snippets.

@ticky
Last active December 12, 2024 20:03
Show Gist options
  • Save ticky/c797dae377f24c2b1f753d9e3ab0f078 to your computer and use it in GitHub Desktop.
Save ticky/c797dae377f24c2b1f753d9e3ab0f078 to your computer and use it in GitHub Desktop.

Bose Updater

URL Scheme

http://localhost:49312/updater/{action}?[parameters]

Responses are always in JSONP, responding to the function BoseUpdater.remoteCallback, which has either two or three parameters (depending upon whether token is supplied). The last parameter appears to be a "status code," whilst the penultimate parameter is the data.

Global Parameters

  • callback, appears to change nothing
  • token, if supplied, the first parameter to the JSONP callback will be this token, but apparently not mandatory???

Methods

getUpdaterVersion

Returns an object with a single key of version containing the current updater version on the system. For some reason this is called both before and after isUpdaterReady returns true in the official updater.

startUpdaterSession

isUpdaterReady

Appears to need to be polled to ask if the updater can currently manage devices.

Returns an object with a single key of updaterReady with String "true" or "false" possible values.

getCurrentDevicesConnected

Returns an array of device objects.

Device objects have both an UUID ID key and numeric(?) pid (product id?) key.

getCurrentDeviceInformation

Returns device information when given a device UUID in the deviceID query parameter.

Device information includes;

  • ID (same UUID as above)
  • name
  • serial
  • version, firmware version
  • isLatestVersion boolean
  • pid

getUpdateProgress

Retrieves the update status of a particular device when given a device UUID in the deviceID query parameter.

Update progress information includes;

  • state;
    • "idle"
    • "updating"
    • "finished"
  • percentage, string numeric percentage completed
  • deviceID
  • estimatedTime, string, apparently time remaining in minutes

getFirmwareAvailableLanguages

Retrieves the language settings available for a given deviceID UUID and version query parameter.

Returns an array of string language codes (e.g. "en-us", "fr")

readCurrentSettingValue

Retrieves the current value of a configuration setting on a given deviceID and settingNumber.

Known settingNumbers;

  • 1, the currently selected language

Responses are given in an object with key settingValue.

getAvailableVersions

Retrieves which firmware versions are available for a given deviceID.

Returns an array of firmware version strings.

updateToSpecificVersion

Updates a deviceID device's firmware to a specified version string. Also able to update the language setting using the language parameter.

Returns nothing (getUpdateProgress output changes, though! official updater polls this periodically)

updateLanguage

Updates the device's language setting to language for a particular deviceID running version firmware.

Returns nothing.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment