vladulus/polylux
GitHub: vladulus/polylux
Polylux 是一个开源轻量级替代方案,用于驱动 ASUS ROG 硬件的显示和控制功能,减少官方 Armoury Crate 的资源占用。
Stars: 1 | Forks: 0
Polylux
开源的 ASUS Armoury Crate 替代方案。
无需700 MB的臃肿软件,即可驱动ROG硬件。
下载 •
更新日志 •
架构文档 •
支持
一款轻量级的原生Windows应用程序,用于驱动ROG硬件——包括AniMe
Matrix、主板LiveDash OLED、Ryujin AIO LCD、Aura RGB、风扇PWM——
且无需700 MB的遥测、自动更新程序和后台服务。
```
Before: Armoury Crate + AsusCertService + Aac3572MbHal + ArmouryCrateService
+ Aura Service + LiveUpdate + LightingService ≈ 700 MB RAM
After: Polylux.exe + PolyluxSensorDaemon.exe ≈ 230 MB RAM
```
## 截图
标签页式界面、实时预览、带径向仪表盘的风扇PWM控制。
(截图将随下次提交一同发布——实际应用已包含在v0.5版本中。)
## 状态
**v0.5 —— 安装程序发布,可日常使用。**
在ROG Maximus Z690 Extreme上端到端运行的功能:
- **AniMe Matrix** —— 时钟(3种位图字体:Bold 7 / Slim 7 / Mini 5),
滚动文本字幕(Arial Bold大写字体,带字体选择器),静态
图像/动态GIF(当图像大于面板时自动滚动),
旋转0/90/180/270度,亮度调节,与物理面板匹配的实时预览。
- **LiveDash OLED** —— 硬件监视器(CPU/GPU温度/负载、风扇转速、
内存),支持单指标或轮播指标模式,自定义文本模式
(长值自动水平滚动),出厂预设GIF模式。
- **Aura RGB** —— 每种OpenRGB模式都呈现为一个场景(静态、
呼吸、光谱循环、彩虹等),HSV色彩选择器,
默认仅控制主板,需手动启用键盘/鼠标/内存的RGB控制。
- **Ryujin LCD** —— 固件驱动的硬件监视器。
- **风扇PWM控制** —— `tools/PolyluxSensorDaemon/`(C# / .NET 8
Windows服务)封装了`LibreHardwareMonitorLib.IControl`,通过
HTTP `POST /control/fan/
` 接口,允许任何客户端为任何Super-IO
风扇接口设置0-100%的PWM。Polylux UI预设模式:AUTO / OFF /
SILENT (30%) / MEDIUM (60%) / FULL (100%) / CURVE(4个锚点,
根据温度源线性插值)。首次运行时自动校准
每个风扇的最大转速,以确保径向仪表盘正确缩放。
- **仪表盘** —— 径向仪表盘(CPU + GPU温度)、风扇转速卡片、内存条、每个设备的状态行。
- **托盘应用程序**,支持安装后自动启动,登录时自动启动,正确最小化到系统托盘。
已测试项目:
- ROG Maximus Z690 Extreme(搭载AniMe Matrix +
LiveDash OLED + 通过Nuvoton NCT6798D控制的7个PWM风扇接口的主板)
- 主板控制器上的Aura RGB功能
- 73个Python单元测试全部通过
尚未测试的项目:
- Ryujin II 360自定义图像上传(协议已解析但未验证)
- 其他ASUS主板型号(目前仅有Z690 Extreme的抓包记录)
- OLED亮度控制 + 按预设选择GIF(USBPcap
研究仍在进行中——详见`docs/PROJECT_STATE.md` §15.9)
## 安装
**一键安装**(PowerShell,下载并运行最新安装程序):
```
irm https://raw.githubusercontent.com/vladulus/polylux/main/scripts/install.ps1 | iex
```
或手动安装:从Releases页面下载
[`Polylux-Setup-.exe`](https://github.com/vladulus/polylux/releases/latest)
并运行。整个安装过程只需一次UAC提示——之后不再需要。
安装程序执行的操作:
1. 干净卸载任何先前的Polylux版本(确保每次安装都生成
干净的 `%PROGRAMFILES%\Polylux\` 目录结构)。
2. *(可选任务,默认启用)* 禁用Armoury Crate
服务栈(`ArmouryCrateService`、`AsusCertService`、
`AsusFanControlService`、`LightingService`等)。完全可逆——
可通过`services.msc`重新启用。
3. 将`PolyluxSensorDaemon`作为Windows服务安装,
以LocalSystem身份运行,开机自动启动。无需更多UAC提示。
4. *(可选任务,默认启用)* 通过`HKCU\…\Run`注册Polylux,
使其在登录时自动启动并出现在系统托盘中。
5. 添加开始菜单和桌面快捷方式。
6. 立即在系统托盘中启动Polylux,无需重启即可开始使用。
从源码构建(面向开发者):
```
git clone https://github.com/vladulus/polylux.git
cd polylux
python -m venv .venv && .venv\Scripts\activate
pip install -r requirements.txt
python -m polylux.service # dev mode, no installer
# -> 安装程序\Output\Polylux-Setup-.exe
.venv\Scripts\pyinstaller installer\polylux.spec --noconfirm
"C:\Program Files (x86)\Inno Setup 6\ISCC.exe" installer\Polylux.iss
# -> →
```
## 架构
两个协作进程:
```
┌────────────────────────────────────────────────────┐
│ Polylux.exe (PyQt6 tray app, user-mode) │
│ ───────────── │
│ - matrix/oled/aura/ryujin/fans drivers │
│ - tabbed UI (Dashboard / per-device / Settings) │
│ - reads sensors via HTTP from the daemon │
│ - writes hardware via libusb / OpenRGB SDK │
└──────────────────────┬─────────────────────────────┘
│ HTTP localhost:8085
▼
┌────────────────────────────────────────────────────┐
│ PolyluxSensorDaemon.exe (Windows service) │
│ ────────────────────────── │
│ - wraps LibreHardwareMonitorLib │
│ - GET /data.json → sensors (LHM-compat tree) │
│ - POST /control/fan/ → IControl write │
│ - runs as LocalSystem (ring-0 access for │
│ SuperIO fan control without UAC at runtime) │
└────────────────────────────────────────────────────┘
```
基于插件的核心。每个设备系列是一个独立的驱动模块:
- `polylux/drivers/anime_matrix/` —— AniMe Matrix USB直接通信、位图时钟字体、图像渲染器
- `polylux/drivers/livedash_oled/` —— OLED硬件监视器场景
- `polylux/drivers/ryujin_lcd/` —— Ryujin II/III LCD (320×240)
- `polylux/drivers/aura_rgb/` —— Aura RGB(委托给OpenRGB SDK)
- `polylux/sensors/` —— LHM树解析器 + 风扇控制HTTP客户端
- `polylux/service/` —— 主入口点、信号处理、运行线程、ASUS服务栈中和
- `polylux/ui/` —— PyQt6前端(标签页窗口 + 系统托盘)
- `tools/PolyluxSensorDaemon/` —— .NET 8传感器守护进程源码
- `installer/` —— PyInstaller规范 + Inno Setup脚本
文档:
- `docs/PROJECT_STATE.md` —— 完整的架构日志、协议解析笔记、每个已交付里程碑(§1 → §19)。
- `docs/NEXT_SESSION.md` —— 下次开发会话的接续文件。
## 更广泛的ASUS生态系统状态
Polylux是一个洁净室逆向工程项目。在ASUS提供驱动/SDK的地方,我们使用它(如OpenRGB、LHM)。在他们没有提供的地方,USB协议是通过捕获AC栈的USBPcap数据解析出来的。
解析出的协议记录在`docs/PROJECT_STATE.md`的§6、§8、§9中。欢迎提交Pull Request将Polylux扩展到其他ROG主板——通常你需要的是使用制造商软件控制新硬件时的USBPcap抓包文件,以及愿意发送单帧测试命令来找到芯片的操作码。
## 支持
如果Polylux让你免去了运行AC的麻烦:
- **Revolut:** [revolut.me/vladrev76](https://revolut.me/vladrev76)
(英国/欧盟,零手续费,即时到账)。Vlad负责运行Z690 Extreme测试
平台并消耗测试周期。
- **为仓库点星** —— 这对你来说毫无成本,但能帮助人们发现
这个项目。
- **报告问题**并附上`polylux.crash.log`(位于
`%APPDATA%\Polylux\`),我们会处理它。
## 许可证
MIT许可证。详见`LICENSE`文件。标签:AniMe Matrix, Aura RGB, LiveDash OLED, RGB灯效, ROG设备, Ryujin LCD, Windows 10/11, Windows工具, 内存优化, 减少臃肿软件, 华硕硬件控制, 原生Windows应用, 替代Armoury Crate, 硬件驱动, 系统工具, 自定义脚本, 轻量级应用, 逆向工具, 风扇PWM控制