2012年12月8日土曜日

SO-03D バックライト自動制御をOnにしてみる(不完全)

SO-03Dには、なぜ無いのか不思議でならなかったバックライト自動制御、
どうやら結構簡単にOnにできるらしいので試しにやってみる。


[XDA](Need Root)Enable Automatic Light Sensor on Xperia Ray
にあるRayの設定を参考に

まずは、(Fast_Response)InstallazioneALS_Xperia_Ray.zip
の中身と本体(/system/etc)から取り出したhw_config.shを比較してみる。


(Fast_Response)InstallazioneALS_Xperia_Ray\etc\hw_config.sh hw_config.sh
# Audio jack configuration # Audio jack configuration
dev=/sys/devices/platform/simple_remote.0  dev=/sys/devices/platform/msm_ssbi.0/pm8058-core/simple_remote_pf/simple_remote 
echo 0,201,1600 > $dev/accessory_min_vals  # default = 0,200,1600  echo 0,201 > $dev/accessory_min_vals 
echo 200,1599  > $dev/accessory_max_vals  # default = 200,1600  echo 200,1599 > $dev/accessory_max_vals 
echo 0,100,280,500,700 > $dev/button_min_vals  # default = 0,100,300,600,700  echo 0,100,280,500 > $dev/button_min_vals 
echo 99,199,399,699,5000  > $dev/button_max_vals  # default = 99,199,399,699,5000  echo 99,199,399,699 > $dev/button_max_vals 
echo 512   > $dev/btn_trig_period_freq  # Button Period Freq(Hz) default = 512  echo 512 > $dev/btn_trig_period_freq  # Button Period Freq(Hz) 
echo 16  > $dev/btn_trig_period_time  # Button Period Time(cycle) default = 16  echo 16 > $dev/btn_trig_period_time   # Button Period Time(Cycle) 
echo 512   > $dev/btn_trig_hyst_freq    # Button Hysteresis Freq(Hz) default = 512  echo 512 > $dev/btn_trig_hyst_freq    # Button Hysteresis Freq(Hz) 
echo 16  > $dev/btn_trig_hyst_time   # Button Hysteresis Time(Cycle) default = 16  echo 16 > $dev/btn_trig_hyst_time     # Button Hysteresis Time(Cycle) 
echo 500 > $dev/btn_trig_level  # default = 500  echo 400 > $dev/btn_trig_level 
   
# Proximity sensor configuration # Proximity sensor configuration
dev=/sys/bus/i2c/devices/0-0054/ dev=/sys/bus/i2c/devices/3-0054/
val_cycle=0  val_cycle=1 
val_nburst=15  val_nburst=8 
val_freq=0  val_freq=2 
val_threshold=1  val_threshold=4 
val_filter=1  val_filter=2 
   
nv_param_loader 60240 prox_cal nv_param_loader 60240 prox_cal
val_calibrated=$? val_calibrated=$?
case $val_calibrated in case $val_calibrated in
1) 1)
 nv_param_loader 60240 threshold  nv_param_loader 60240 threshold
 val_threshold=$?  val_threshold=$?
 nv_param_loader 60240 rfilter  nv_param_loader 60240 rfilter
 val_filter=$?  val_filter=$?
 ;;  ;;
esac esac
   
echo $val_cycle > $dev/cycle    # Duration Cycle. Valid range is 0 - 3. echo $val_cycle > $dev/cycle    # Duration Cycle. Valid range is 0 - 3.
echo $val_nburst > $dev/nburst  # Number of pulses in burst. Valid range is 0 - 15. echo $val_nburst > $dev/nburst  # Number of pulses in burst. Valid range is 0 - 15.
echo $val_freq > $dev/freq      # Burst frequency. Valid range is 0 - 3. echo $val_freq > $dev/freq      # Burst frequency. Valid range is 0 - 3.
echo $val_threshold > $dev/threshold # sensor threshold. Valid range is 0 - 15 (0.12V - 0.87V) echo $val_threshold > $dev/threshold # sensor threshold. Valid range is 0 - 15 (0.12V - 0.87V)
echo $val_filter > $dev/filter  # RFilter. Valid range is 0 - 3. echo $val_filter > $dev/filter  # RFilter. Valid range is 0 - 3.
   
# LMU AS3676 Configuration # LMU AS3676 Configuration
dev=/sys/devices/i2c-0/0-0040/leds/  dev=/sys/class/leds 
echo 0,7,7,0 > $dev/lcd-backlight/als/params  #[gain],[filter_up],[filter_down],[offset]  echo 1,80,255,5,16,9,16 > $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 1 > $dev/lcd-backlight/als/enable  #Sensor on/off. 1 = on, reg 90h
echo 12900 > $dev/torch/max_current echo 3000 > $dev/button-backlight/max_current
   
# TI BQ275xx firmware loader # TI BQ275xx firmware loader
bq275xx_fwloader bq275xx_fwloader
   

なんか色々変わっているけど
とりあえず該当しそうな下の方にある
echo 1,0,0,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]

をコメントして
echo 1,1,1,0 > $dev/lcd-backlight/als/params #[gain],[filter_up],[filter_down],[offset]
に書き換えて (あまりレスポンスはいらないのでfilter_up/filter_downは1にしました。)

後は、いつものようにSDカードあたりに入れて
mount -t ext4 -o rw,remount /system /system
cp /mnt/sdcard/hw_config.sh.fix /system/etc/
chmod 644 /system/etc/hw_config.sh.fix
mv /system/etc/hw_config.sh /system/etc/hw_config.sh.org
mv /system/etc/hw_config.sh.fix /system/etc/hw_config.sh
mount -t ext4 -o ro,remount /system /system
sync
で、再起動すれば完了。

再起動後にWidgetsoidあたりでバックライト設定をAutoにすれば・・・
(一応)バックライト自動制御が動いた!

けどなんか・・・イマイチ・・・

als_curve.confをコピーして、少しイジってみても変わった感じはしないし
もっとダイナミックに変わって欲しかったんだけどどうしたものか・・・

気になって少し眺めていたら、
/system/etc/als_curve/0~3なんて、いかにもフォルダがあって中に
limitとparamsという、いかにもそれっぽいファイルが・・・
paramsの中身はさらにそれっぽいので
後で時間をかけていろいろ試してみなければ。

とりあえず動くには動いたようなので、今日の所は満足。

0 件のコメント:

コメントを投稿