Skip to content

Update blocklist rules for pointing devices and keyboards #126

@nondebug

Description

@nondebug

The blocklist currently has these rules for blocking access to standard HID pointing devices and keyboards:

  {usagePage:0x0001, usage:0x0002},  // Generic Desktop / Mouse
  {usagePage:0x0001, usage:0x0006},  // Generic Desktop / Keyboard
  {usagePage:0x0001, usage:0x0007},  // Generic Desktop / Keypad

These rules block access to any reports defined inside a top-level collection with mouse, keyboard, or keypad usage. The Chromium blocklist implementation has diverged from this behavior in order to support devices that define a feature report in the same top-level collection as the standard input and output reports. This has been observed in devices that expose a vendor-defined interface to customize LED effects.

The reasoning for this change is that the HID specification defines the set of reports that make up a standard HID mouse or keyboard, which does not include any feature reports. We can therefore assume that if the device exposes a feature report, the report has vendor-defined behavior and will be ignored by any standard HID driver.

To fix this, modify the above rules to block only input and output reports:

  // Generic Desktop / Mouse
  {usagePage:0x0001, usage:0x0002, reportType:"input"},
  {usagePage:0x0001, usage:0x0002, reportType:"output"},

  // Generic Desktop / Keyboard
  {usagePage:0x0001, usage:0x0006, reportType:"input"},
  {usagePage:0x0001, usage:0x0006, reportType:"output"},

  // Generic Desktop / Keypad
  {usagePage:0x0001, usage:0x0007, reportType:"input"},
  {usagePage:0x0001, usage:0x0007, reportType:"output"},

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions