storkme/msi-mpg-271qr-control
GitHub: storkme/msi-mpg-271qr-control
通过 USB HID 直接控制 MSI 显示器 OSD 功能的 PowerShell 工具,附带完整的逆向协议文档。
Stars: 0 | Forks: 0
# msi-monitor-control
通过 USB 控制 MSI 电竞显示器的 OSD 功能 —— 无需 Gaming Intelligence
要求 —— 通过直接与显示器的 HID 控制通道通信来实现。
专为 **MSI MPG 271QR QD-OLED X50** 构建并在此设备上验证。其底层通信协议
文档非常完善,足以移植到同系列的 QD-OLED 型号以及
旧版的短指令代(见下文)。
## 为什么需要
Gaming Intelligence 会自动应用特定游戏的配置文件(例如 Battlefield 6 的 AI Vision + AI Smart
Crosshair),但并没有快捷方式可以在正常的桌面使用时关闭它们。本工具为你提供了一键切换的功能。
## 用法
```
.\MonitorMode.ps1 # toggle gaming <-> browsing
.\MonitorMode.ps1 -Mode Gaming # AI Vision level 3 + AI crosshair on
.\MonitorMode.ps1 -Mode Browsing # both off
.\MonitorMode.ps1 -Mode Status # print current state
```
可在原生的 Windows PowerShell 上运行 —— 无需依赖、无需提权。它
可以与 Gaming Intelligence 共存(通过 GI 自身的 mutex),因此两者可以同时运行。你可以通过在你的用户配置文件目录下放置一个快捷方式来绑定快捷键:
`powershell -NoProfile -WindowStyle Hidden -File ...\MonitorMode.ps1`。
## 包含内容
| 路径 | 内容 |
|------|------|
| `MonitorMode.ps1` | 切换工具 |
| `lib/MsiMonitor.ps1` | 可复用的 GET/SET HID 辅助函数(短指令协议) |
| `docs/protocol.md` | 底层通信协议:传输、短指令 + 长指令、状态 blob 布局 |
| `docs/short-commands.md` | 完整的功能码表(所有型号) |
| `docs/reversing-notes.md` | 逆向工程的推导过程以及使用的工具 |
## 兼容性
已确认:**MPG 271QR QD-OLED X50**(固件版本 020)。短指令协议在
大多数当前的 MSI 电竞显示器中是通用的;256 字节的长指令
状态 blob 是 QD-OLED "X" 代(X50 / X36 / X24)特有的,并且其
字节布局因型号而异。如果你使用的是其他型号,`-Mode Status`
和 `docs/` 中的笔记是你的最佳切入点 —— **请务必先阅读 `docs/protocol.md` 中的“危险区”部分。**
## 状态 / 保修
这是一个处于兴趣使然的互操作性项目,未与 MSI 有关联或受其认可。
向显示器写入未经文档记录的值本质上需要风险自负;该
工具仅会修改两个已被充分理解的字节,并且总是会读取验证,
但这依然是在对固件进行操作。不提供任何担保。详见 `LICENSE`。
## 贡献
非常欢迎提供其他型号的协议数据。一条硬性规定:本仓库中不得包含 MSI 的代码或
反编译源码 —— 我们记录的是客观事实,而不是他们的软件。详见
[CONTRIBUTING.md](CONTRIBUTING.md)。
## 先前作品 / 致谢
- [hamishmorgan/msi-mpg-491cqp-control](https://github.com/hamishmorgan/msi-mpg-491cqp-control) — MPG 491CQP 的短指令协议
- [couriersud/msigd](https://github.com/couriersud/msigd) — 较旧版本的 Gaming OSD
标签:AI合规, IPv6, Libemu, PowerShell, USB HID, 云资产清单, 外设驱动, 显示器控制, 硬件控制, 逆向工程