22 ноября 2012 г.

умер Proximity sensor (датчик приближения) на motorola cliq

имею motorola cliq и мертвый датчик приближения. из за датчика при разговоре гаснет экран и очень не скоро загорается обратно (из-за чего невозможно сбросить звонок).
имею установленный cyanogenmod 7.2 и root
датчик стоит такой - SFH 7743 - OSRAM Opto Semiconductors

смотрим содержимое каталога драйвера датчика
 ls -l /sys/bus/platform/drivers/sfh7743
в числе прочих должна быть строка
sfh7743.-2 -> ../../../../devices/platform/sfh7743.-2
sfh7743.-2 - это и есть датчик, который в данный момент использует этот драйвер
Надо их разлучить :)
если при запущенной системе (Android) вы выгрузите драйвер, то получите мегатормозное устройство с 100% занятым cpu. (так как Android будет постоянно долбиться в потерянное устройство)
выгрузку надо делать при старте ядра
создать файлик /data/local/userinit.sh и дать ему права запуска
вот содержимое:
#!/system/bin/sh
chmod 0000 /dev/sfh7743
echo -n "sfh7743.-2" > /sys/bus/platform/drivers/sfh7743/unbind
делаются нулевые права на файл устройства и анбиндится датчик.
при запуске ядро секунд 10 сильно поругается на сенсор и отпустит
<6>[  116.410604] sfh7743: presence [1e]
А андроид теперь не получает от сенсора никаких данных и не гасит экран при разговоре :)