返回首页

通过 ADB 和逆向工程解锁 HY-300 投影仪的亮度

通过 ADB 和固件逆向工程解锁 Rockchip RK3326 上 HY-300 投影仪最大亮度的技术指南。描述了获取 root 权限、禁用 dm-verity、编辑 gamma LUT 和优化 testgamma 参数以恢复全显示亮度的方法。

HY-300 最大亮度:Rockchip 固件逆向工程
Advertisement 728x90

通过 ADB 和 Rockchip 固件逆向解锁 HY-300 投影仪最大亮度

廉价投影仪厂商常人为限制亮度,且界面上毫无调节选项。以搭载 Rockchip RK3326 的 HY-300 为例,我们将演示如何通过 ADB 获取 root 权限、禁用 dm-verity,并修改 gamma LUT 恢复全亮度显示。

硬件平台分析与问题

HY-300 投影仪基于 Rockchip RK3326 SoC,运行 Android TV 系统。主要问题?界面完全没有亮度控制。开机后亮度立即降至约 70%,远未发挥真实潜力。深入排查发现,Android 标准背光控制失效:设备树中的背光节点配置错误,未绑定 PWM 通道。

尝试失败的方法:

Google AdInline article slot
  • 通过设置调整 screen_brightness
  • 修改系统属性 (persist.vendor.brightness.main)
  • 直接操作 /sys/class/leds/Lcd_power
  • SurfaceFlinger 颜色矩阵命令

ADB 连接与获取 root 权限

USB 连接易引发电源冲突,因此 Wi-Fi ADB 是唯一可靠方式。在 Android TV 上,开发者模式通过点击 OS 版本启用,但本机开箱即有 ADB 和 root。

adb connect <投影仪 IP>:5555
adb root

连接后,发现 /system 和 /vendor 分区被 dm-verity 锁定,无法写入。解决:运行一次 adb disable-verity,然后重启。这启用 overlayfs,使系统分区可编辑。

追踪亮度控制机制

启动日志指向开机运行的 testgamma 服务。其脚本位于 /system/bin/testgammatx.sh,直接控制 gamma 校正参数:

Google AdInline article slot
testgamma --wb_r 1.0 --wb_g 0.96 --wb_b 0.95 --contrast 58 --brightness 30 --saturation 80 --hue 35 --target_gamma 1.8 --native_gamma 2.9

testgamma 工具通过 DRM ioctl 直接向 VOP 视频处理器写入查找表 (LUT)。但亮度、对比度、饱和度和色调?纯假象——RK3326 的 VOP Lite 不支持这些 DRM 属性 (BCSH)。真正起作用的是:

  • wb_r, wb_g, wb_b — 白平衡系数 (0.0–1.0),相当于各色通道亮度倍增器。
  • target_gamma, native_gamma — 塑造 gamma 曲线,影响暗部表现。

为什么修改需重启

testgamma 服务在 SurfaceFlinger 和 HWC (hwcomposer) 之前运行。HWC 接管 DRM 设备,每帧覆盖 VOP 设置,运行时调用 testgamma 无效。只有编辑脚本并重启,修改才能生效。

优化参数实现峰值亮度

每次重启后系统测试,找到最佳组合。出厂设置通过两种方式压低输出:绿/蓝系数打折 (0.96/0.95) 及 target_gamma=1.8 对 native_gamma=2.9。

Google AdInline article slot

测试结果:

  • wb_r/g/b = 0.1, target_gamma=2.2 — ~10% 亮度
  • wb_r/g/b = 0.5, target_gamma=1.8 — ~50% 亮度
  • wb_r/g/b = 1.0, target_gamma=1.0 — 最大亮度但颜色反转
  • wb_r/g/b = 1.0, target_gamma=1.6 — 理想亮度和色彩平衡

一步步设置指南

适用于 RK3326 的 HY-300 (TXCZ 固件) 用户:

1. 准备与连接:

PC 安装 Android Platform Tools,获取投影仪 IP。运行:

adb connect <IP>:5555
adb root

2. 禁用 dm-verity (一次性):

adb disable-verity
adb reboot

等待完全启动并重连。

3. 设置最大亮度:

adb shell mount -o remount,rw /system
adb shell "echo '#!/system/bin/sh\ntestgamma --wb_r 1.0 --wb_g 1.0 --wb_b 1.0 --contrast 58 --brightness 50 --saturation 80 --hue 35 --target_gamma 1.6 --native_gamma 2.9' > /system/bin/testgammatx.sh"
adb reboot

4. 恢复出厂设置:

adb shell mount -o remount,rw /system
adb shell "echo '#!/system/bin/sh\ntestgamma --wb_r 1.0 --wb_g 0.96 --wb_b 0.95 --contrast 58 --brightness 30 --saturation 80 --hue 35 --target_gamma 1.8 --native_gamma 2.9' > /system/bin/testgammatx.sh"
adb reboot

关键要点

  • ADB 和 root 默认启用 — 极利于折腾。
  • 核心亮度控制 是 testgamma 写入 VOP 的 gamma LUT。
  • 需重启,因 HWC 运行时覆盖设置。
  • 最佳参数:wb_r/g/b = 1.0, target_gamma = 1.6 (native_gamma = 2.9)。
  • 适用 其他类似 Rockchip 设备。

开发者启示

此例暴露廉价 Android 设备常见问题:设备树配置失误、依赖过时或无文档硬件控制。掌握 DRM、gamma LUT 和 overlayfs,能修复问题并剖析嵌入式系统。对其他 SoC,调整方法即可——日志分析、服务逆向和调试接口通用。

— Editorial Team

Advertisement 728x90

继续阅读