This is an old revision of the document!


Notes on the XenceLabs Quick Keys

Bought this off amazon the other day and it's an interesting device, so I'm documenting what I find about it.

Hardware info

USB: VID 0x28bd PID 0x5202 - Manufacturer “HANVON UGEE”, advertises no version or serial number.

USB pcaps pending - currently on a mac machine and capturing USB traffic on a mac requires disabling system integrity protection.

Device has a rotary encoder, 10 buttons, a power slider switch, RGB light ring, green power LED, blue connectivity LED, power slider, internal battery (capacity, chemistry unknown), OLED screen (low pixel density, white phosphor)

Device appears to transmit only signals (ie., button press and rotary wheel moving +/- steps); although it appears to be using HID, it does not present as a regular input device and requires the driver components for actioning anything

Software info

Software seems to be a generic XenceLabs-branded application that works for both the QuickKeys and other products offered by the company.

The software is delivered as a DMG disk image, which contains an `xar` compressed `pkg` (on Mac). Within this, there is a set of preinstall and postinstall scripts (preinstall removes any existing copies of the software, and closes any running instances; postinstall runs a loop waiting for the driver and other software to be installed) and the actual software. The scripts and software are stored in gzipped `cpio` archives.

The software archive contains a `LaunchAgents` plist (`com.xencelabs.xencelabstablet.plist`) which registers a launch agent `com.ugee.XencelabsAgent` to be started during login and during a logged-in session, and launches `XencelabsAgent` with the command-line argument `/mini`. It registers the `com.ugee.Xencelabs` mach service.

The software archive also contains a set of applications in a tree:

  • Xencelabs
    • .guide (contains a copy of LGPLv3, some images, and some plists)
      • Info.plist: `{“Mode”: “0”}`
      • com.xencelabs.config.plist: `{“guide”: 0}`
      • com.xencelabs.config_run.plist: `{“guide”: 1, “KeyBoard”: 0}`
    • Xencelabs.app
    • UninstallXencelabs.app
    • Driver
      • XencelabsAgent.app
      • XencelabsDriver.app
      • XencelabsGuide.app
Navigation
  • Home