fwupd/plugins/steelseries
Richard Hughes 0c51630991 Check firmware magic in a more standard way
Some parsers are ignoring the magic when using _FLAG_IGNORE_CHECKSUM
(which is wrong; fuzzers have no problem with enforcing a static prefix)
and other either disregard the offset or check the magic in an unsafe
way. Also, use FWUPD_ERROR_INVALID_FILE consistently for magic failure.

Add a vfunc, and move all the clever code into one place.
2022-07-14 14:48:15 +01:00
..
fu-plugin-steelseries.c steelseries: Add hid support to detect Bluetooth devices 2022-06-10 10:07:28 -04:00
fu-steelseries-device.c Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
fu-steelseries-device.h steelseries: Add datasz to fu_steelseries_device_cmd() 2022-06-09 10:57:26 -04:00
fu-steelseries-firmware.c Make the FuFirmware->parse() vfunc more helpful 2022-06-27 15:40:11 -05:00
fu-steelseries-firmware.h steelseries: Add support for Aerox 3 Wireless 2022-05-20 12:54:00 -04:00
fu-steelseries-fizz-hid.c Split out the dump helpers to a new source file 2022-06-14 14:36:52 -05:00
fu-steelseries-fizz-hid.h steelseries: Add hid support to detect Bluetooth devices 2022-06-10 10:07:28 -04:00
fu-steelseries-fizz-tunnel.c Remove the 'common' prefix when parsing version numbers 2022-06-14 14:36:52 -05:00
fu-steelseries-fizz-tunnel.h steelseries: fizz: Add support for 2.4G connection 2022-05-30 10:24:52 -04:00
fu-steelseries-fizz.c Check firmware magic in a more standard way 2022-07-14 14:48:15 +01:00
fu-steelseries-fizz.h steelseries: fizz: Rename command functions 2022-05-30 10:24:52 -04:00
fu-steelseries-gamepad.c Remove the 'common' prefix when parsing version numbers 2022-06-14 14:36:52 -05:00
fu-steelseries-gamepad.h steelseries: Add FuSteelseriesDevice as a shared baseclass 2022-05-22 10:43:34 +01:00
fu-steelseries-mouse.c steelseries: Rename FuSteelseriesDevice to FuSteelseriesMouse 2022-05-22 10:43:34 +01:00
fu-steelseries-mouse.h steelseries: Rename FuSteelseriesDevice to FuSteelseriesMouse 2022-05-22 10:43:34 +01:00
fu-steelseries-sonic.c Split out the dump helpers to a new source file 2022-06-14 14:36:52 -05:00
fu-steelseries-sonic.h steelseries: Add FuSteelseriesDevice as a shared baseclass 2022-05-22 10:43:34 +01:00
meson.build Build the quirk files into the daemon as a GResource 2022-06-30 18:52:24 +01:00
README.md steelseries: fizz: Add support for 2.4G connection 2022-05-30 10:24:52 -04:00
steelseries.quirk steelseries: Add hid support to detect Bluetooth devices 2022-06-10 10:07:28 -04:00

SteelSeries

Introduction

This plugin allows to update firmware on SteelSeries gamepads:

  • Stratus Duo
  • Stratus Duo USB wireless adapter
  • Stratus+
  • Aerox 3 Wireless
  • Rival 3 Wireless

SteelSeries Rival 100 gaming mice support is limited by getting the correct version number. These mice have updatable firmware but so far no updates are available from the vendor.

This plugin supports the following protocol IDs:

  • com.steelseries.fizz
  • com.steelseries.gamepad
  • com.steelseries.sonic

GUID Generation

These devices use the standard USB DeviceInstanceId values, e.g.

  • USB\VID_1038&PID_1702&REV_0001
  • USB\VID_1038&PID_1702
  • USB\VID_1038

Quirk Use

This plugin uses the following plugin-specific quirks:

Flags:is-receiver

The device is a USB receiver.

Since 1.8.1

Update Behavior

Gamepad

Gamepad and/or its wireless adapter must be connected to host via USB cable to apply an update. The device is switched to bootloader mode to flash updates, and is reset automatically to new firmware after flashing.

Mice

The device is not upgradable and thus requires no vendor ID set.

Wireless Mice

Rival 3 Wireless

The mouse switch button underneath must be set to 2.4G, and its 2.4G USB Wireless adapter must be connected to host.

Aerox 3 Wireless

The mouse switch button underneath must be set to 2.4G, and its 2.4G USB Wireless adapter must be connected to host; or the mouse must be connected to host via the USB-A to USB-C cable.

Vendor ID Security

The vendor ID is set from the USB vendor, in this instance set to USB:0x1038

External Interface Access

This plugin requires read/write access to /dev/bus/usb.