ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

G-Helper:Asus 笔记本轻量级 Armoury Crate 替代工具的功能架构与 ACPI/WMI 实现解析

G-Helper:Asus 笔记本轻量级 Armoury Crate 替代工具的功能架构与 ACPI/WMI 实现解析 G-Helper:Asus 笔记本轻量级 Armoury Crate 替代工具的功能架构与 ACPI/WMI 实现解析【免费下载链接】g-helperLightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expertbook, ROG Ally, and more.项目地址: https://gitcode.com/GitHub_Trending/gh/g-helperG-Helper 是一个用 .NET 编写的轻量级 Asus 笔记本控制工具,以单个可执行文件提供与 Armoury Crate 几乎相同的核心功能(性能模式、GPU 模式、风扇曲线、充电限制、RGB 背光、游戏内指标覆盖层等),而无需安装庞大的后台服务。本文以仓库中的韩文版说明文档 README.ko-KR.md 为主线,结合 GHelper.csproj、AsusACPI.cs、GPUModeControl.cs、Modes.cs 等源码,完整梳理其功能矩阵、快捷键方案与底层 Asus System Control Interface(ATKACPI)驱动调用原理,帮助读者理解每一类功能背后的硬件端点与控制链路。1. 项目定位与适用机型G-Helper 的定位是Asus 笔记本上的小型、轻量级 Armoury Crate 替代方案,以更小的体积提供几乎相同的功能。README.ko-KR.md 明确列出的适用机型包括:ROG Zephyrus G14/G15/G16/M16、Flow X13/X16/Z13、DUO、TUF 系列、Strix 或 Scar 系列、ProArt、Vivobook、Zenbook、Expertbook,以及 ROG Ally / Ally X 掌机。文档归纳的五大优势为:无缝且自动的 GPU 切换;所有性能模式都可以通过功率限制(Power Limits)与风扇曲线(Fan Curves)完全自定义;轻量——只需运行一个 exe,不向系统安装任何组件;简洁干净的本地 UI,所有设置一屏可达;支持 Fn 锁定与自定义快捷键。从工程配置看,项目在 GHelper.csproj 中声明TargetFrameworknet10.0-windows/TargetFramework,即基于 .NET 10 的 Windows 专用构建,与单 exe、不安装的轻量定位一致。2. 完整功能矩阵(16 项核心功能)README.ko-KR.md 的功能章节完整列出了 16 项功能,这里逐项保留并标注其在源码中的落点:#功能主要源码落点1性能模式:Silent - Balanced - Turbo(内建默认风扇曲线)Mode/Modes.cs、ModeControl.cs2GPU 模式:Eco - Standard - Ultimate - OptimizedGpu/GPUModeControl.cs3含显示器超频(Overdrive)控制的屏幕刷新率调节Display/ScreenControl.cs、DisplayNative.cs4每个性能模式独立的自定义风扇曲线编辑器、功率限制与 Turbo Boost 选择AsusACPI.cs(风扇曲线端点)5Anime Matrix / Slash Lighting 控制,支持动态 GIF、时钟、音频可视化AnimeMatrix/、AudioVisualizer.cs6RGB 背光动画模式与颜色USB/Aura.cs7快捷键处理Input/8CPU/GPU 温度、风扇转速、电池状态监控Overlays/、AsusACPI.cs9保护电池健康的充电限制Battery/BatteryControl.cs10NVidia GPU 超频与降压(Undervolting)Gpu/NVidia/11XG Mobile 控制AsusACPI.cs(GPUXG 端点)12AMD CPU 降压与温度限制Pawn/RyzenSmu.cs、CpuInfo.cs13BIOS 与驱动更新Updates.cs、UpdatesController.cs、AutoUpdate/14Asus 鼠标控制Peripherals/Mouse/15Mini-LED 多区域切换AsusACPI.cs(ScreenMiniled1/2 端点)16无频闪调光(Flicker-free dimming)与视觉模式Display/VisualControl.cs2.1 自动化(Automation)能力文档自动化章节列出四条内置自动化规则,均由 ModeControl.cs 的AutoPerformance等逻辑在电源状态变化(电池/接通)时触发:电池使用或接通电源时自动切换性能模式(分别记忆performance_onbattery/performance_ac两个槽位);Optimized GPU 模式:电池时禁用 dGPU(等效 Eco),接通时启用(等效 Standard);自动刷新率:电池 60Hz,接通时恢复最大刷新率;键盘背光超时:电池/接通两种场景可分别配置。3. 性能模式:BIOS 内建,而非软件驱动README.ko-KR.md 特别强调:所有模式连同默认风扇曲线与功率限制都烧录在 BIOS 中,且与 Armoury Crate 的模式是同一套东西。每个默认 BIOS 模式与一个对应的 Windows 电源模式配对,可在风扇 电源面板调整:BIOSSilent最佳能效电源模式;BIOSBalanced(AC 下为 Performance)平衡电源模式;BIOSTurbo最佳性能电源模式。源码印证了这套模型。AsusACPI.cs 定义了模式常量:public const int PerformanceBalanced 0; public const int PerformanceTurbo 1; public const int PerformanceSilent 2; public const int PerformanceFullSpeed 3;模式号通过 ACPI 端点PerformanceMode 0x00120075下发;Vivobook 系机型则走VivoBookMode 0x00110019。SetPerformanceMode 展示了这条降级链:先尝试PerformanceMode端点,不支持或失败时回退到SetVivoMode(该路径还会对模式号做 1/2 互换,因为 Vivobook 的枚举顺序与 ROG 不同)。在模式管理层,Modes.cs 的GetDictionary只登记{2: Silent, 0: Balanced, 1: Turbo}三个内建模式,随后在 3~19 的索引区扫描用户自定义模式(maxModes 20),自定义模式的名称与基座模式分别存于mode_name_X/mode_base_X配置键。这意味着自定义模式本质上是以某个 BIOS 内建模式为基座,再叠加一套独立的功率/风扇参数副本,与文档Custom 1/Custom 2快捷键(第 19/20 号)的语义完全对应。4. GPU 模式:Eco / Standard / Ultimate / Optimized 的实现文档对四种 GPU 模式的定义:Eco:仅启用低功耗核显,iGPU 驱动内置屏幕;Standard(MS Hybrid):iGPU 与 dGPU 均启用,iGPU 驱动内置屏幕;Ultimate:iGPU 与 dGPU 均启用,但由 dGPU 驱动内置屏幕(2022 年及以后机型支持);Optimized:电池时关闭 dGPU(Eco),接通时开启(Standard)。这一节的源码支撑非常直接。GPUModeControl.cs 的InitGPUMode在启动时读取两个 ACPI 标志位决定能力与当前状态:int eco Program.acpi.DeviceGet(AsusACPI.GPUEco); // 0x00090020(ROG)/0x00090120(Vivo) int mux Program.acpi.DeviceGet(AsusACPI.GPUMux); // 0x00090016(ROG)/0x00090026(Vivo)判定逻辑:mux 0表示 dGPU 已直连屏幕 → Ultimate;eco 1→ Eco;否则 Standard。若两个端点均不可用(eco 0 mux 0),则通过探测 GPU 风扇端点(GetFan(AsusFan.GPU))判断是否真的存在 dGPU,不存在就隐藏 GPU 模式 UI。切换路径见 SetGPUMode:切到Ultimate:先确认GPUMux端点存在,弹出确认对话框后调用SetGPUEco(0)关闭 Eco,再DeviceSet(GPUMux, 0)执行 MUX 切换,并标记restart true(MUX 切换需要重启);切到Eco / Standard:仅通过SetGPUEco(1)/SetGPUEco(0)翻转GPUEco端点;AsusACPI.SetGPUEco 内部还会先读回当前标志,只有标志与目标不一致时才真正下发写操作,避免无意义写入。注意 ROG 与 Vivo 系机型的端点 ID 不同,由 GPUEco/GPUMux 属性 根据AppConfig.IsVivoZenPro()动态选择。5. GPU 调优与功率/温度端点文档GPU 调优章节说明:每个模式下都可以对独显做核心/显存频率偏移、GPU 功率、Dynamic Boost、温度限制等调优。这些调优最终都落到 AsusACPI.cs 定义的一组 2022 年款 AMD 平台端点上:端点ID含义PPT_APUA00x001200A0sPPT(慢速加速限制)/ PL2PPT_EDCA10x001200A1CPU EDCPPT_TDCA20x001200A2CPU TDCPPT_APUA30x001200A3SPL(持续功率限制)/ PL1PPT_GPUCPU9C0x0012009CGPU→CPU Dynamic Boost(5W 步进)PPT_TEMP9E0x0012009ECPU 温度限制PPT_CROSS9F0x0012009FCross Loading 处理器功率PPT_GPUC00x001200C0NVIDIA GPU BoostPPT_APUC10x001200C1fPPT(快速加速限制)PPT_GPUC20x001200C2NVIDIA GPU 温度目标(75~87℃)GPU_BASE/GPU_POWER0x00120099 / 0x00120098GPU TGP 的基础部分与附加部分AMD 平台特有的限制则通过 Ryzen SMU 走另一条链路:ModeControl.cs 使用 PawnIO 封装的RyzenSmuService初始化 SMU 会话,并针对 Renoir/Mobile 家族(负载下温度限制会被固件静默重置)启用一个定时重放任务(IsReapplyTempRequired),定期重新写入 CPU 温度限制与 Ryzen 功率设置。这条链路同时支撑文档功能表中的AMD CPU 降压与温度限制。6. 驱动与 BIOS 更新README.ko-KR.md 说明:应用内置一个自动 BIOS/驱动更新检查器,直接针对具体机型从 Asus 官网拉取可用下载项,出现新下载时高亮提示,且Updates区块的所有链接都指向 Asus 官方下载。仓库中该功能由 Updates.cs、UpdatesController.cs 与 AutoUpdateControl.cs 实现,对应 UI 页面为 Updates.resx。7. 游戏内指标覆盖层(Metrics Overlay)文档将其描述为无需额外工具、直接叠加在画面上的内建 OSD,实时显示 FPS、CPU/GPU 温度、占用率与功耗,工作在 DX10 及以上游戏中;由于旧游戏独占全屏模式可能看不到,建议设置为窗口/无边框全屏。操作热键(完整继承):Ctrl Shift Alt O—— 打开/关闭游戏内覆盖层;Ctrl Shift Alt 鼠标拖拽—— 移动覆盖层;Ctrl Shift Alt 鼠标点击—— 切换模式(Light / Default / Full);Ctrl Shift Alt 滚轮—— 缩放覆盖层;Ctrl Shift Alt 滚轮点击—— 重置覆盖层大小。仓库中该模块位于 Overlay/HardwareOverlay.cs,FPS 采集由 EtwFpsMonitor.cs 基于 ETW 事件完成,配置界面为 OverlayConfig.cs。8. Asus 鼠标与键盘外设支持README.ko-KR.md 列出的当前支持鼠标(折叠列表共 26 款,完整继承):ROG Chakram X、Chakram Core、Gladius II / Gladius II Origin、Gladius II Wireless、Gladius III、Gladius III Wireless、Harpe Ace Extreme、Harpe Ace Aim Lab Edition、Harpe Ace Mini、Harpe II Ace、Keris Wireless、Keris II Ace、Keris Wireless Aimpoint、Strix Carry、Strix III Gladius III Aimpoint Wireless、Strix Impact III、Strix Impact III Wireless、Spatha X、Strix Impact II Wireless、Pugio、Pugio II、TUF Gaming M4 Wireless、TUF Gaming M3、TUF Gaming M3 Gen II、TUF Gaming M4 AIR、TUF Gaming M5、TX Gaming Mini。文档特别致谢了 IceStormNG 的贡献与研究。这些型号在源码中一一对应到 Peripherals/Mouse/Models/ 下的独立类(如 ChakramX.cs、GladiusII.cs、HarpeAceMini.cs、MD200.cs、PugioII.cs、SpathaX.cs、TUFM3.cs、TUFM5.cs 等),由 AsusMouse.cs 与 PeripheralsProvider.cs 统一发现并驱动。此外仓库还包含一整套外接键盘支持,型号实现位于 Peripherals/Keyboard/Models/(Azoth、Claymore II、Falchion、Strix Flare II、Strix Scope II、Strix Scope RX、TUF K3 等)。9. 快捷键方案:笔记本键位与 ROG Ally 键位README.ko-KR.md 的键位绑定章节完整列表(此处原样继承):Fn F5/Fn Shift F5—— 性能模式向前/向后切换;Ctrl Shift F5/Ctrl Shift Alt F5—— 性能模式向前/向后切换;Ctrl Shift F12—— 打开 G-Helper 窗口;Ctrl M1 / M2—— 屏幕亮度降低/升高;Shift M1 / M2—— 背光亮度降低/升高;Fn V—— 视觉模式;Fn C/Fn Esc—— Fn 锁定;Fn Ctrl F7 / F8/Ctrl Shift Alt F7 / F8—— 无频闪调光降低/升高;Fn Shift F7 / F8—— Matrix / Slash Lighting 亮度降低/升高;Fn Shift F7 / F8/Ctrl Shift Alt F7 / F8—— ScreenPad 亮度降低/升高;Ctrl Shift F20—— 麦克风静音;Ctrl Shift Alt F13—— 切换显示器刷新率;Ctrl Shift Alt F14—— Eco GPU 模式;Ctrl Shift Alt F15—— Standard GPU 模式;Ctrl Shift Alt F16—— Silent;Ctrl Shift Alt F17—— Balanced;Ctrl Shift Alt F18—— Turbo;Ctrl Shift Alt F19—— Custom 1(如存在);Ctrl Shift Alt F20—— Custom 2(如存在);另有自定义键位绑定/热键扩展能力(见官方 Power User Settings 文档)。文档还单列了 ROG Ally 掌机的键位映射:M 十字键左/右—— 屏幕亮度;M 十字键上—— 触屏键盘;M 十字键下—— 显示桌面;M Y—— 切换 AMD 覆盖层;M X—— 截图;M 右摇杆点击—— 控制器模式。从源码看,这些热键由全局键盘钩子(Input/KeyboardHook.cs)捕获后交给 InputDispatcher.cs 分发,例如 F5 系列触发performance动作,GPU 模式热键最终调用 GPUModeControl.SetGPUMode(前面第 4 节已分析)。Fn 锁定对应 ACPI 端点FnLock 0x00100023(AsusACPI.cs)。10. 重要澄清:G-Helper 不是操作系统、固件或驱动文档末尾有一段被反复强调的重要说明,理解它对正确使用本工具至关重要:G-Helper不是操作系统、固件或驱动,不会以任何方式在实时层面驱动你的硬件。它只是一个让你选择制造商预先定义并存储在 BIOS 中的某个工作模式、并在可选范围内(!)调整设备上已存在设置的应用——方式与 Armoury Crate 相同,使用的是 Armoury Crate 所用的同一个 Asus System Control Interface 驱动。如果你使用的模式/设置与 Armoury Crate 等效,设备性能或行为不会有任何差异。G-Helper 之于笔记本,就像电视遥控器之于电视。仓库源码完整验证了这个遥控器架构。AsusACPI.cs 直接打开 Asus 的系统控制设备并定义调用原语:const string FILE_NAME \\.\\ATKACPI; const uint CONTROL_CODE 0x0022240C; const uint DSTS 0x53545344; // DSTS 查询设备状态 const uint DEVS 0x53564544; // DEVS 设置设备状态 const uint INIT 0x54494E49; // INIT 初始化 const uint WDOG 0x474F4457; // WDOG 看门狗核心调用链是 CallMethod:把方法 ID 与参数长度、参数体拼成小端字节缓冲,经DeviceIoControl(hDevice, 0x0022240C, ...)下发。所有具体操作都是对这一层的薄封装:DeviceGet:调用DSTS,将原始结果减去 65536 得到有符号值(负值表示不支持/无此设备);DeviceSet:调用DEVS写入状态,result 1记为 OK,并写入日志;当 ATKACPI 设备句柄不可用时,存在一条 WMI 回退路径 DeviceSetWmi,直接对root\wmi下的AsusAtkWmi_WMNB类调用DEVS方法。常用端点常量(均可在 AsusACPI.cs 查到)包括:风扇CPU_Fan 0x00110013/GPU_Fan 0x00110014/Mid_Fan 0x00110031,风扇曲线DevsCPUFanCurve 0x00110024等,温度Temp_CPU 0x00120094/Temp_GPU 0x00120097,电池BatteryLimit 0x00120057/BatteryDischarge 0x0012005A,屏幕超频ScreenOverdrive 0x00050019,Mini-LEDScreenMiniled1/2 0x0005001E/0x0005002E,麦克风静音 LEDMicMuteLed 0x00040017等。这解释了文档监控 CPU/GPU 温度、风扇转速与电池状态等功能的读取来源,也解释了为何同一套应用能适配 ROG / Vivobook / TUF 等不同子系——端点 ID 因机型而不同,由 AppConfig 的能力探测(IsSupported系列)在运行时选择。11. 依赖的开源项目、签名与隐私声明README.ko-KR.md 列出的外部依赖与用途(完整继承):项目用途仓库对应位置Linux Kernel(asus-wmi.h)ASUS ACPI/WMI 接口的基础端点参考AsusACPI.cs 端点常量NvAPIWrapperNvidia API 访问NvmlHelper.csStarlightAnime Matrix 通信协议AnimeMatrix/Communication/UXTU基于 Ryzen SMU 的降压端点Pawn/RyzenSmu.csPawnIORyzenSMU 访问Pawn/AsusCtl灵感来源与部分逆向工程参考—代码签名:免费签名由 SignPath.io 提供,证书来自 SignPath Foundation。隐私策略:程序不会向任何联网系统传输信息。12. 免责与适用边界文档免责声明部分说明:Asus、ROG、TUF、Armoury Crate 均为 AsusTek Computer, Inc. 的注册商标,作者对这些资产不主张任何权利,仅作信息性用途;软件按现状提供,不含任何明示或默示担保,误用可能导致系统不稳定或故障。韩文版 README 同时注明:文末英文 Disclaimers 原文为正本,韩文翻译仅供阅读便利,可能存在误差。适用边界提示:Ultimate GPU 模式仅 2022 年及以后机型支持(需要 MUX 端点);Vivobook 系机型的性能模式走 VivoBookMode 端点且枚举顺序与 ROG 相反;指标覆盖层对独占全屏的旧游戏可能不可见。以上限制均来自 README.ko-KR.md 与 GPUModeControl.cs、AsusACPI.cs 的实际判断逻辑。【免费下载链接】g-helperLightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expertbook, ROG Ally, and more.项目地址: https://gitcode.com/GitHub_Trending/gh/g-helper创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表