GitFlowLink/ironpride-display

GitHub: GitFlowLink/ironpride-display

通过对机箱屏幕 USB/H.264 协议的逆向工程,为 Iron Pride Invader Q9MX 提供了 Linux 原生的可视化显示与编辑方案。

Stars: 1 | Forks: 0

# Iron Pride 显示 **Iron Pride Invader Q9MX** 机箱自带 IPS 屏幕的原生 Linux 客户端和可视化编辑器。其原厂软件 (APEXSTORM) 仅限 Windows 使用 —— 这是一个通过对该软件 USB 串口协议进行逆向工程,从零开始重新实现的版本。 ![status](https://img.shields.io/badge/platform-Linux-blue) ![python](https://img.shields.io/badge/python-3.11%2B-green) ![license](https://img.shields.io/badge/license-MIT-lightgrey) ## 下载 **[→ 最新版本 (v1.1)](https://github.com/GitFlowLink/ironpride-display/releases/tag/v1.1)** 适用于 Linux x86-64 的预编译二进制文件 —— 无需 Python,只需在系统中安装 `ffmpeg` 即可。 ## 功能 - **图层**:图片、GIF、循环视频、动画文本、系统传感器仪表 - **操作**:移动、从边缘/角落调整大小(类似 Photoshop 风格)、对每个图层进行自由旋转 - **文本**:自定义颜色或动画流动彩虹渐变 - **特效**:针对图层的透明度、带有速度控制的自动旋转、GIF/视频播放速度 - **传感器**:CPU / GPU / RAM 负载以及 CPU / GPU 温度环形仪表(实时刷新,1 秒间隔) - 针对整个画面的**色彩滤镜**(单色 / 红色 / 粉色 / 绿色 / 蓝色调) - **主题**:保存命名的布局并在它们之间切换 - **托盘 + 自启动**:最小化到系统托盘,可设置为登录时启动并自动恢复上次的布局 - 直接从文件管理器中将文件**拖放**到画布上 ## 工作原理 —— 逆向工程的协议 显示器在 `/dev/ttyACM0` 上显示为 CDC ACM 串行设备 (`33c3:8001`)。 命令使用简单的帧格式: ``` 5A A5 | CMD 00 | SIZE (uint32 LE) | PAYLOAD ``` | CMD | 含义 | Payload | |------|-------------|-------------------| | 0x90 | Hello | `01` | | 0x80 | Brightness | 一个字节 `00..FF` | | 0x81 | Orientation | 一个字节 | | 0x85 | Frame | H.264 Annex B NAL | 该面板包含一个硬件 H.264 解码器。帧以 **462×1920** 分辨率(Constrained Baseline,level 3.1)编码,面板随后将其旋转至原生的横屏方向。一个持久运行的 `ffmpeg` 管道负责对合成的画布进行编码,并且每个发出的关键帧都被包装在 `0x85` 命令中 —— 如果数据流停止,固件将使屏幕变黑。 该协议是通过对在带有 USB 直通的 Windows 虚拟机中运行的官方软件进行 USB 抓包 (`usbmon` + `tcpdump`) 提取出来的。 ## 环境要求 ``` # Fedora / RHEL sudo dnf install ffmpeg sudo usermod -aG dialout "$USER" # re-login afterwards ``` ## 从源码运行 ``` pip install -r requirements.txt python3 ironpride_editor.py # headless / 登录模式(仅托盘,自动开始 streaming): python3 ironpride_editor.py --background ``` ## 构建独立二进制文件 ``` pip install pyinstaller pyinstaller --onefile --windowed --name ironpride-display \ --collect-all PyQt6 ironpride_editor.py # 结果:dist/ironpride-display ``` ## 注意事项 - 已在 Fedora 44、KDE Plasma 6 (Wayland)、AMD Ryzen 7 8700G / Radeon 780M 上测试。 - GPU 负载/温度从 `amdgpu` sysfs 读取;在其他 GPU 上传感器路径可能会有所不同。 - 这是一个非官方项目,与 Iron Pride 或 APEXSTORM 没有任何关联。 ## 许可证 MIT —— 详见 [LICENSE](LICENSE)。 ## 桌面集成(应用程序菜单图标) 创建一个 `.desktop` 启动器,以便该应用出现在您的应用程序菜单中: ``` cat > ~/.local/share/applications/ironpride.desktop << 'DESKTOP' [Desktop Entry] Type=Application Name=Iron Pride Display Comment=Case display editor for Iron Pride Invader Q9MX Exec=/home/YOUR_USERNAME/ironpride-display/dist/ironpride-display Icon=video-display Categories=Utility; Terminal=false DESKTOP update-desktop-database ~/.local/share/applications/ ``` 将 `YOUR_USERNAME` 替换为您实际的 Linux 用户名(可以使用 `whoami` 命令查看)。 要在登录时启用自启动,请启动该应用程序并在设置面板中勾选 **"Launch on startup"** —— 它会自动写入正确的路径。
标签:H.264, PyQt6, USB串口通信, 云资产清单, 可视化编辑器, 漏洞挖掘, 硬件客户端, 逆向工具, 逆向工程