fwupd/plugins/wacom-usb
Richard Hughes 5308ea4fae Never use memcpy() in a possibly unsafe way
There are several subtle bugs in various places in fwupd caused by not treating
user-provided offsets into buffers as unsafe. As fwupd runs as root we have to
assume that all user firmware is evil, and also that devices cannot be trusted.

Make a helper to put all the logic into one place and convert all users.
2019-08-12 09:22:09 -05:00
..
data trivial: Add some debugging data to wacom-usb 2019-01-02 09:50:39 +00:00
fu-plugin-wacom-usb.c Allow handling FORCE for devices that subclass FuDevice 2019-05-05 15:29:00 -05:00
fu-self-test.c Use FuFirmware as a container for firmware images 2019-08-08 13:10:57 +01:00
fu-wac-common.c wacom-usb: Make updating less verbose 2019-02-12 10:16:42 -06:00
fu-wac-common.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-wac-device.c Never use memcpy() in a possibly unsafe way 2019-08-12 09:22:09 -05:00
fu-wac-device.h wacom-usb: Make updating less verbose 2019-02-12 10:16:42 -06:00
fu-wac-firmware.c Use FuFirmware as a container for firmware images 2019-08-08 13:10:57 +01:00
fu-wac-firmware.h Use FuFirmware as a container for firmware images 2019-08-08 13:10:57 +01:00
fu-wac-module-bluetooth.c Never use memcpy() in a possibly unsafe way 2019-08-12 09:22:09 -05:00
fu-wac-module-bluetooth.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-wac-module-touch.c Use FuFirmware as a container for firmware images 2019-08-08 13:10:57 +01:00
fu-wac-module-touch.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
fu-wac-module.c Use FuFirmware as a container for firmware images 2019-08-08 13:10:57 +01:00
fu-wac-module.h Use '#pragma once' to avoid a lot of boilerplate 2019-02-09 08:42:30 -06:00
meson.build Use FuFirmware as a container for firmware images 2019-08-08 13:10:57 +01:00
README.md Fix some typos spotted using codespell 2019-04-08 12:47:53 +01:00
wacom-usb.quirk remove those PIDs with Bluetooth interface, Wacom updater doesn't support updating from Bluetooth interface 2019-07-15 09:09:29 +01: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+ licence.

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