Muy buenas [email protected]!
En este nuevo tutorial me salgo de lo que estoy acostumbrado a publicar, ya que no hablaré sobre Ubuntu, sino acerca de Samsung Galaxy S4 (todas sus variantes).
Recientemente adquirí uno de estos celulares, y al liberarlo me surgió un problema con el sensor de proximidad (sensor utilizado al hacer llamadas).
Cabe mencionar que este error también suele ocurrir al actualizar nuestro dispositivo o al cambiar ROM (no siempre, pero a veces pasa).
La solución mediante Software la paso a explicar a continuación...
IMPORTANTE: tener nuestro Galaxy S4 Rooteado.
Paso 1: Diagnostico.
Lo primero que haremos sera confirmar si el sensor esta funcionando correcta o incorrectamente
- Abrimos la app Teléfono (el marcador de números).
- Marcamos *#0*#
- Se nos abrirá una "ventana" como esta:
- Presionamos en Sensor
- si al presionar Sensor nuestro cel empieza a vibrar sin parar y el fondo se muestra verde, y al poner nuestro dedo en el sensor no pasa nada (tenemos problemas en nuestro sensor).
Paso 2: Solución. (Re-calibrar el sensor)
- Instalar la app Android Terminal Emulator (buscarla en la Play Store).
Android terminal emulator
-Escribir en la consola (terminal) el siguiente comando para darle permisos Root.
$ su (presionar ENTER)
- encontraremos los dos valores decimales OFFSET y NORMAL STATE, lo sumaremos y el resultado
lo convertiremos a su equivalente en hexadecimal. (OJO: estos números cambian con cada dispositivos)
- para encontrar el OFFSET:
-comando:
cat /sys/devices/virtual/sensors/proximity_sensor/prox_cal
NOTESE que el valor retornado es algo como esto: 14, 65,100 (ese fue mi caso), de esos números nos inetresa el primero.
- Encontrar el NORMAL STATE:
comando:
cat /sys/devices/virtual/sensors/proximity_sensor/state
- esto nos retorna un valor. El mio fue 138
- Lo siguiente que haremos es sumar esos valores, 14 + 138 = 152
- el resultado lo convertimos a Hexadecimal, 152 = 98 en hexadecimal.
Paso 3: enviar el valor hexadecimal a /efs/prox_cal, para ello hacemos lo siguiente...
comando:
echo -en $'x98' > /efs/prox_cal
(98 es el resultado de la suma que obtenemos sumando el 1er valor del offset y el valor de normal state)
- Luego escribimos los siguientes comandos.
- chown system:system /efs/prox_cal
- chmod 644 /efs/prox_cal
- sync
- reboot
Listo!
tendría que haber funcionado, para probar si el problema se resolvió, marcamos *#0*#
presionamos Sensor
y si el fondo se muestra blanco y nuestro telefono no vibra A MENOS que acerquemos el dedo al sensor, todo esta resuelto.
Hasta aquí llega este pequeño tutorial, espero que sea de ayuda y no tengan que pagar por arreglar ese problema.
Cualquier duda o consulta me lo hacen saber.
En este nuevo tutorial me salgo de lo que estoy acostumbrado a publicar, ya que no hablaré sobre Ubuntu, sino acerca de Samsung Galaxy S4 (todas sus variantes).
Recientemente adquirí uno de estos celulares, y al liberarlo me surgió un problema con el sensor de proximidad (sensor utilizado al hacer llamadas).
Cabe mencionar que este error también suele ocurrir al actualizar nuestro dispositivo o al cambiar ROM (no siempre, pero a veces pasa).
La solución mediante Software la paso a explicar a continuación...
IMPORTANTE: tener nuestro Galaxy S4 Rooteado.
Paso 1: Diagnostico.
Lo primero que haremos sera confirmar si el sensor esta funcionando correcta o incorrectamente
- Abrimos la app Teléfono (el marcador de números).
- Marcamos *#0*#
- Se nos abrirá una "ventana" como esta:

- Presionamos en Sensor
- si al presionar Sensor nuestro cel empieza a vibrar sin parar y el fondo se muestra verde, y al poner nuestro dedo en el sensor no pasa nada (tenemos problemas en nuestro sensor).
Paso 2: Solución. (Re-calibrar el sensor)
- Instalar la app Android Terminal Emulator (buscarla en la Play Store).
Android terminal emulator
-Escribir en la consola (terminal) el siguiente comando para darle permisos Root.
$ su (presionar ENTER)
- encontraremos los dos valores decimales OFFSET y NORMAL STATE, lo sumaremos y el resultado
lo convertiremos a su equivalente en hexadecimal. (OJO: estos números cambian con cada dispositivos)
- para encontrar el OFFSET:
-comando:
cat /sys/devices/virtual/sensors/proximity_sensor/prox_cal
NOTESE que el valor retornado es algo como esto: 14, 65,100 (ese fue mi caso), de esos números nos inetresa el primero.
- Encontrar el NORMAL STATE:
comando:
cat /sys/devices/virtual/sensors/proximity_sensor/state
- esto nos retorna un valor. El mio fue 138
- Lo siguiente que haremos es sumar esos valores, 14 + 138 = 152
- el resultado lo convertimos a Hexadecimal, 152 = 98 en hexadecimal.
Paso 3: enviar el valor hexadecimal a /efs/prox_cal, para ello hacemos lo siguiente...
comando:
echo -en $'x98' > /efs/prox_cal
(98 es el resultado de la suma que obtenemos sumando el 1er valor del offset y el valor de normal state)
- Luego escribimos los siguientes comandos.
- chown system:system /efs/prox_cal
- chmod 644 /efs/prox_cal
- sync
- reboot
Listo!
tendría que haber funcionado, para probar si el problema se resolvió, marcamos *#0*#
presionamos Sensor
y si el fondo se muestra blanco y nuestro telefono no vibra A MENOS que acerquemos el dedo al sensor, todo esta resuelto.

Hasta aquí llega este pequeño tutorial, espero que sea de ayuda y no tengan que pagar por arreglar ese problema.
Cualquier duda o consulta me lo hacen saber.