#### Plugin: Synaptics RMI4

## Introduction

This plugin updates integrated Synaptics RMI4 devices, typically touchpads.

## GUID Generation

The HID DeviceInstanceId values are used, e.g. `HIDRAW\VEN_06CB&DEV_4875`.

These devices also use custom GUID values constructed using the board ID, e.g.

- `SYNAPTICS_RMI\TM3038-002`
- `SYNAPTICS_RMI\TM3038`

## Update Behavior

The device usually presents in HID mode, and the firmware is written to the device by switching to a SERIO mode where the touchpad is nonfunctional. Once complete the device is reset to get out of SERIO mode and to load the new firmware version.

## Vendor ID Security

The vendor ID is set from the udev vendor, in this instance set to `HIDRAW:0x06CB`

## Firmware Format

The daemon will decompress the cabinet archive and extract a firmware blob in a proprietary (but documented) file format.

This plugin supports the following protocol ID:

- `com.synaptics.rmi`

## External Interface Access

This plugin requires ioctl access to `HIDIOCSFEATURE` and `HIDIOCGFEATURE`.

## Version Considerations

This plugin has been available since fwupd version `1.3.3`.

## Owners

Anyone can submit a pull request to modify this plugin, but the following people should be consulted before making major or functional changes:

- David Chiu: `blueue`
- Vincent Huang: `vhuag`