vladulus/polylux

GitHub: vladulus/polylux

Polylux 是一个开源轻量级替代方案,用于驱动 ASUS ROG 硬件的显示和控制功能,减少官方 Armoury Crate 的资源占用。

Stars: 1 | Forks: 0

Polylux

开源的 ASUS Armoury Crate 替代方案。
无需700 MB的臃肿软件,即可驱动ROG硬件。

Latest Release GitHub Stars MIT License Windows 10/11 Support on Revolut

下载更新日志架构文档支持

一款轻量级的原生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控制