Maximale Helligkeit beim HY-300-Projektor freischalten: ADB und Rockchip-Firmware-Reverse-Engineering
Bei Billigprojektoren wird die Helligkeit oft künstlich gedrosselt, ohne dass Nutzeroptionen zur Verfügung stehen. Am Beispiel des HY-300 mit Rockchip RK3326 zeigen wir, wie ihr Root-Zugriff über ADB erlangt, dm-verity deaktiviert und die Gamma-LUT anpasst, um die volle Display-Helligkeit wiederherzustellen.
Hardware-Plattform-Analyse und das Problem
Der HY-300-Projektor basiert auf dem Rockchip RK3326 SoC mit Android TV OS. Das Hauptproblem? Fehlende Helligkeitsregler in der Oberfläche. Die Helligkeit fällt direkt nach dem Start auf etwa 70 % des echten Potenzials ab. Bei genauerer Untersuchung stellte sich heraus, dass die Standard-Backlight-Steuerung von Android nicht funktioniert: Der Backlight-Knoten im Device Tree ist falsch konfiguriert, ohne PWM-Kanal-Zuordnung.
Was wir vergeblich ausprobiert haben:
- Bildschirmhelligkeit über Einstellungen anpassen
- Systemeigenschaften ändern (persist.vendor.brightness.main)
- Direkte Steuerung über /sys/class/leds/Lcd_power
- SurfaceFlinger-Befehle für Farbmatrix
ADB-Verbindung und Root-Zugriff erlangen
USB-Verbindungen führen zu Stromkonflikten, daher ist ADB über Wi-Fi der einzige zuverlässige Weg. Bei Android TV aktiviert man den Entwicklermodus durch Tippen auf die OS-Version, hier waren ADB und Root jedoch direkt verfügbar.
adb connect <Projektor-IP>:5555
adb root
Nach der Verbindung waren /system- und /vendor-Partitionen durch dm-verity gesperrt und schreibgeschützt. Die Lösung: Einmalig adb disable-verity ausführen, dann neu starten. Dadurch wird overlayfs aktiviert und Systempartitionen editierbar.
Auf der Jagd nach dem Helligkeitssteuerungsmechanismus
Boot-Logs deuteten auf einen testgamma-Dienst hin, der beim Start läuft. Dessen Skript unter /system/bin/testgammatx.sh enthält Parameter, die die Gamma-Korrektur direkt beeinflussen:
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
Das testgamma-Tool schreibt eine Look-Up Table (LUT) direkt in den VOP-Videoprocessor über DRM-ioctl. Helligkeit, Kontrast, Sättigung und Farbtönung? Platzhalter – der RK3326 VOP Lite unterstützt diese DRM-Eigenschaften (BCSH) nicht. Die echten Steuerungselemente sind:
- wb_r, wb_g, wb_b — Weißabgleich-Koeffizienten (0.0–1.0), die als Helligkeitsmultiplikatoren pro Farbkanal wirken.
- target_gamma, native_gamma — formen die Gamma-Kurve und beeinflussen dunkle Töne.
Warum Änderungen einen Neustart erfordern
Der testgamma-Dienst läuft vor SurfaceFlinger und HWC (hwcomposer). HWC übernimmt das DRM-Gerät und überschreibt VOP-Einstellungen bei jedem Frame, wodurch Laufzeit-Änderungen von testgamma wirkungslos werden. Skript bearbeiten und neu starten ist der einzige Weg, um Änderungen dauerhaft zu machen.
Parameter für maximale Helligkeit optimieren
Systematische Tests nach jedem Neustart ergaben den optimalen Punkt. Werksseitige Einstellungen drosselten die Ausgabe doppelt: geschwächte Grün-/Blau-Koeffizienten (0.96/0.95) und target_gamma=1.8 gegenüber native_gamma=2.9.
Test-Ergebnisse:
- wb_r/g/b = 0.1, target_gamma=2.2 — ~10 % Helligkeit
- wb_r/g/b = 0.5, target_gamma=1.8 — ~50 % Helligkeit
- wb_r/g/b = 1.0, target_gamma=1.0 — maximale Helligkeit, aber umgekehrte Farben
- wb_r/g/b = 1.0, target_gamma=1.6 — ideale Helligkeit und Farbbalance
Schritt-für-Schritt-Anleitung
Für HY-300-Besitzer mit RK3326 (TXCZ-Firmware) so vorgehen:
1. Vorbereitung und Verbindung:
Android Platform Tools auf dem PC installieren, IP des Projektors ermitteln. Ausführen:
adb connect <IP>:5555
adb root
2. dm-verity deaktivieren (einmalig):
adb disable-verity
adb reboot
Auf vollständigen Start warten und neu verbinden.
3. Maximale Helligkeit einstellen:
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. Auf Werkseinstellungen zurücksetzen:
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
Wichtige Erkenntnisse
- ADB und Root standardmäßig aktiviert in dieser Firmware – großer Vorteil für Bastler.
- Zentrale Helligkeitssteuerung über Gamma-LUT, die testgamma in VOP schreibt.
- Neustart erforderlich, da HWC Einstellungen zur Laufzeit überschreibt.
- Optimale Parameter: wb_r/g/b = 1.0, target_gamma = 1.6 (native_gamma = 2.9).
- Funktioniert für andere Rockchip-Geräte mit ähnlicher Konfiguration.
Lektionen für Entwickler
Dieser Fall zeigt typische Fallstricke bei Billig-Android-Hardware: fehlerhafte Device-Tree-Konfigs, Abhängigkeit von veralteten oder undokumentierten Hardwaresteuerungen. Kenntnisse in DRM, Gamma-LUTs und overlayfs ermöglichen Fixes und tiefe Analysen eingebetteter Systeme. Für andere SoCs die Methode anpassen – aber Log-Analyse, Dienst-Reverse-Engineering und Debug-Schnittstellen sind universell.
— Editorial Team
Noch keine Kommentare.