使用移动终端命令解决note3 N9008距离感应器问题
距离感应器失灵的具体表现为:
打电话时一拨通就黑屏,脸离开手机手机任然黑屏,不会自动亮起。
问题判别方法:
拨号面板输入*#0*#,选择sensor,看proximity sensor那一项,ADC有一个数值,如果你遮住听筒右侧那几个感应器,会变成1000+,同时界面变成绿色,手机震动。把手移开,如果不震动,变回白色,说明是没问题的。但是如果手移开之后,仍然震动+绿色,说明距离感应器有问题。我的手机,正常情况ADC90左右,手遮住感应器变成1004左右。后来看贴吧看见一种方法,大体应该是修改系统文件,当ADC小于一个值的时候就认为手机前没有遮挡物了
处理方法
准备:
1. 手机root
2. 安装终端模拟器terminal
使用终端的时候会要求root权限,授予权限。
操作开始(注意命令之间的空格,每输入一行后回车)
第1步:在终端模拟器输入:
su
echo 0 > /sys/devices/virtual/sensors/proximity_sensor/prox_cal
echo 1 > /sys/devices/virtual/sensors/proximity_sensor/prox_cal
复制代码
如果没有返回任何错误信息,继续。
第2步:遮住距离感应器,然后输入:
cat /sys/devices/virtual/sensors/proximity_sensor/state
复制代码
如果麻烦,找个东西遮住,输入代码回车之后再移开。
这时候,会返回一个数值,我的是1004,此时就是遮住感应器时的ADC值。
第3步:距离感应器未被遮挡的情况下,输入代码:
cat /sys/devices/virtual/sensors/proximity_sensor/state
复制代码
返回一个数值,感应器未被遮住时的ADC值,我的是89。这就是正常情况下的ADC值,89已经非常高了!据说最好的是0。
第4步:输入命令:
cat /sys/devices/virtual/sensors/proximity_sensor/prox_cal
复制代码
返回一组数值,我的是(49,169,129),我推测的是,当ADC由1000到小于49时,才被判断屏幕前没遮挡物(脸),屏幕才会开启。所以就是修改这个阈值。
第5步:数字相加:
第4步中的第一个数字49,加上第3步中的数字,即49+89=138,这个数字可以适当增大,无所谓的。我取了140,然后转为16进制数字,即8C。
这一步变化很重要。
第6步:输入:
echo -en $'\x8C' > /efs/prox_cal
\x后面是你计算出的十六进制数字
继续输入
chown system:system /efs/prox_cal
chmod 644 /efs/prox_cal
sync
reboot
第一行代码中的8C代表的是140,对你的手机,你要输入的是你在第5步中算的数字的16进制数
重启,然后就好了。