Więc tak - po pierwsze, dokładne sprawdzenie reakcji ekranu (czy raczej jej brak) przekonało mnie jednoznacznie, że automatyczna jasność NIE DZIAŁA przy domyślnych ustawieniach mojego ROMu (eXistenZ Ultra).
Poszukałem trochę na XDA i znalazłem rozwiązanie.
Ustawienia (między innymi) tej funkcji są zapisane w pliku /system/etc/hw_config.sh i wyglądają u mnie następująco:
# LMU AS3676 Configuration
dev=/sys/class/leds
echo 1,51,255,39,20,6,84 > $dev/lcd-backlight/als/curve # ALS curve for group1
echo 1,0,0,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
echo 1 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
echo 2000 > $dev/button-backlight/max_current
Problemem jest wiersz /curve i, żeby czujnik jasności działał prawidłowo, trzeba go zmienić na:
echo 0,0,0,0,0,0,0 > $dev/lcd-backlight/als/curve # ALS curve for group1
a potem zapisać plik i zrestartować telefon.
Przy okazji, kolejny wiersz ($dev/lcd-backlight/als/params) określa inne parametry, z czego dla mnie istotny był pierwszy, który odpowiada za skok zmiany jasności. Można tu zmienić przeskoki jasności, na przykład:
echo 2,0,0,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
- wyraźniejszy przeskok.
Ostatnia wartość w tym wierszu to chyba skok czasowy między przyciemnieniami/rozjaśnieniami (muszę jeszcze popróbować).
Kolejny wiersz ($dev/lcd-backlight/als/enable) włącza (1) lub wyłącza (0) czujnik.
Po paru próbach zostawiłem wartości domyślne, tylko wyzerowałem krzywą, która psuła czujnik (pomimo, że niby był włączony parametrem als/enable):
# LMU AS3676 Configuration
dev=/sys/class/leds
echo 0,0,0,0,0,0,0 > $dev/lcd-backlight/als/curve # ALS curve for group1
echo 1,0,0,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
echo 1 > $dev/lcd-backlight/als/enable #Sensor on/off. 1 = on, reg 90h
echo 2000 > $dev/button-backlight/max_current
Teraz po zasłonięciu górnej części ekranu następuje wyraźne skokowe przyciemnienie, a po odsłonięciu - rozjaśnienie ekranu.