NichtsHsu / usb-regulus

A GUI tool for USB viewing, reading and writing.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

usb-regulus

platform version license 996.icu

A GUI tool for USB viewing, reading and writing.

Note

You are suggested to install an udev rule file for unprivileged users to be able to access USB device.

See: libusb calls without sudo using udev-rules.

Alternatively, simply run this application with root privileges.

Features

  • Support detect and list USB devices
  • Support hotplug
  • Support parse and show following descriptors:
    • Configuration Descriptor
    • Device Descriptor
    • Interface Descriptor
    • Endpoint Descriptor
    • Hub Descriptor
    • BOS Descriptor
    • All Device Capability Descriptors specified at USB Spec 3.2
    • Following extra descriptors of Interface Descriptors
      • HID Descriptor and its Report Descriptor
      • DFU Descriptor
      • All Descriptors specified at Audio Spec v1.0
      • All Descriptors specified at Audio Spec v2.0
      • All Descriptors specified at Audio Spec v3.0
      • All Descriptors specified at Video Spec v1.5
    • Following extra descriptors of Configuration Descriptors
      • Interface Association Descriptor
      • OTG Descriptor
      • Security Descriptor
      • Encryption Type Descriptor
  • Quick Reference for fields of descriptors. Currently UAC descriptors are not covered.
  • Support Endpoint data transfers
  • Display or edit data in hex and ASCII, supported by QHexEdit
  • Support set alternative settings of interfaces
  • Multiple themes supported by GTRONICK/QSS

Screenshots

Mainwindow

Control Transfer

Endpoint Transfer

Download

The release page provides the lastest AppImage files.

Build

Clone with submodules

git clone --recurse-submodules https://github.com/NichtsHsu/usb-regulus.git

Linux

  1. Install Qt and select GCC x64 toolkit (I have only tested Qt 5.15.3 and Qt 6.4.0). Or, if you are working on a release of Linux which contains the qt5/6 package just install it.

  2. Install necessary C++ compiling packages, such as build-essential, g++, make, cmake and so on.

  3. Install libusb-1.0 and libudev. For an example, on Ubuntu:

    sudo apt install libusb-1.0-0-dev libudev-dev
  4. Open Qt Creator, and select this project, then build.

    If you would like to build with terminal:

    cd usb-regulus
    mkdir build
    cd build
    qmake ..
    make

    If your shell complains command not found: qmake, please use {Your Qt Install Path}/gcc_64/bin/qmake instead.

  5. Run with ./usb-regulus command. Or, write a desktop entry file for it.

  6. Remember to copy the assets folder under build directory together if you want to copy the usb-regulus binary file.

MacOS

I have never used MacOS, but it should not be much different from Linux.

Windows

Not Support Yet

Because libusb doesn't seem to work well on Windows, especially it does not support hotplug. I'm looking for the possibility to use WinUsb instead of libusb, but the work will not be started until the basic functions on Linux are done.

Reference

  1. Qt.
  2. QtUsb.
  3. usbutils, especially lsusb.
  4. usbhid-dump.
  5. hidrd.
  6. QHexEdit.
  7. Qt Themes.

About

A GUI tool for USB viewing, reading and writing.

License:GNU General Public License v3.0


Languages

Language:C++ 99.2%Language:QMake 0.7%Language:C 0.1%