2013
Five-minute AOSP hack: remove proximity sensor support
I recently dropped my Nexus 4 and broke its LCD. If replacing this £85 part wasn’t annoying enough, I also managed to lose the tiny rubber part which makes the proximity sensor work. Without it, the LCD turns off, and stays off, during phone calls. (Actually, I didn’t break the LCD — I just cracked the front glass — but I had to buy a new LCD + glass + digitiser assembly anyway.)
Fortunately, the proximity sensor sucked even before I broke it. :) I don’t press phones right up to my face, so talking is often a flickery screen-on, screen-off business anyway. So I hacked AOSP to ignore any hardware-supported proximity sensors.
With this change, you can control the LCD normally using the power button, even during phone (or Skype, etc) calls.
wzdd@ubuntu:~/aosp-nexus4/frameworks/base$ git diff diff --git a/core/java/android/hardware/SystemSensorManager.java b/core/java/android/hardware/SystemSensorManager.java index 0204e94..9dd8d7f 100644 --- a/core/java/android/hardware/SystemSensorManager.java +++ b/core/java/android/hardware/SystemSensorManager.java @@ -265,7 +265,7 @@ public class SystemSensorManager extends SensorManager { Sensor sensor = new Sensor(); i = sensors_module_get_next_sensor(sensor, i); - if (i>=0) { + if (i>=0 && (sensor.getType() != Sensor.TYPE_PROXIMITY)) { //Log.d(TAG, "found sensor: " + sensor.getName() + // ", handle=" + sensor.getHandle()); fullList.add(sensor);