fwupd/plugins/wacom-usb
Jason Gerecke 99b4475777 wacom_usb: Fail parsing if wac firmware sections are not in sorted order
The code currently assumes that the firmware sections are in sorted
order (e.g. using images_cnt as the current index). This seems to
be the case with real firmware images, but is not actually guaranteed
by anything. Rewriting the code to use the actual index from the WA
header is a little difficult so just assert this condition for now.
2021-04-30 20:42:28 +01:00
..
data trivial: Add some debugging data to wacom-usb 2019-01-02 09:50:39 +00:00
fu-plugin-wacom-usb.c Show a warning if the device has no GType and the plugin has no default 2021-04-15 16:52:56 +01:00
fu-self-test.c trivial: fix some trailing whitespace problems across the project 2021-04-09 16:02:20 +01:00
fu-wac-common.c Check the return values of g_return_val_if_fail() in CI 2021-01-12 20:31:47 +00:00
fu-wac-common.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-wac-device.c wacom_usb: Read current firmware index before finding image to write 2021-04-30 20:42:28 +01:00
fu-wac-device.h wacom-usb: Use a per-device cleanup function 2020-04-08 16:30:15 +01:00
fu-wac-firmware.c wacom_usb: Fail parsing if wac firmware sections are not in sorted order 2021-04-30 20:42:28 +01:00
fu-wac-firmware.h Only include the start year in the copyright header 2021-01-07 14:48:16 +00:00
fu-wac-module-bluetooth.c Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
fu-wac-module-bluetooth.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-wac-module-touch.c Remove FuFirmwareImage and just use FuFirmware instead 2021-03-09 21:14:12 +00:00
fu-wac-module-touch.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
fu-wac-module.c wacom_usb: Firmware versions are packed BCD, not "decimal" 2021-04-30 20:42:28 +01:00
fu-wac-module.h trivial: Remove G_BEGIN_DECLS from all private headers 2019-10-09 20:02:16 +01:00
meson.build Move the plugin build logic to the plugins themselves 2021-02-18 14:46:20 +00:00
README.md Add a new internal flag to opt-in to GUID matching 2021-02-25 15:47:25 +00:00
wacom-usb.quirk Simplify the quirk file format 2021-03-03 08:30:34 +00:00

Wacom USB Support

Introduction

Wacom provides interactive pen displays, pen tablets, and styluses to equip and inspire everyone make the world a more creative place.

From 2016 Wacom has been using a HID-based proprietary flashing algorithm which has been documented by support team at Wacom and provided under NDA under the understanding it would be used to build a plugin under a LGPLv2+ license.

Wacom devices are actually composite devices, with the main ARM CPU being programmed using a more complicated erase, write, verify algorithm based on a historical update protocol. The "sub-module" devices use a newer protocol, again based on HID, but are handled differently depending on their type.

Firmware Format

The daemon will decompress the cabinet archive and extract a firmware blob in the following formats:

  • Touch module: Intel HEX file format
  • Bluetooth module: Unknown airoflash file format
  • EMR module: Plain SREC file format
  • Main module: SREC file format, with a custom WACOM vendor header

This plugin supports the following protocol ID:

  • com.wacom.usb

GUID Generation

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

  • USB\VID_056A&PID_0378&REV_0001
  • USB\VID_056A&PID_0378
  • USB\VID_056A

Update Behavior

The firmware is deployed when the device is in normal runtime mode, and the device will reset when the new firmware has been written.

Vendor ID Security

The vendor ID is set from the USB vendor, for example set to USB:0x056A

External interface access

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