How to fix fingerprint enrollment issues caused by broken persist partition on the OnePlus 8 series, OnePlus 7T Pro, and possibly others
The primary storage module on Android powered devices is divided into several partitions. For aftermarket development, the Android modding community primarily deals with a handful of partitions, such as “/system”, “/recovery”, “/cache” etc. OEMs, on the other hand, often use less well-known partitions to store interesting parameters, like the lock/unlock state of the bootloader. One such partition is “/persist”, which usually contains calibration data of internal sensors and in some cases, unique identifiers like the MAC address of the Wi-Fi chip.
Due to its uniqueness, one can’t simply fix a broken persist partition by restoring a generic dump. In a similar manner, it is virtually impossible to properly rewrite the contents of “persist” even after a full firmware flash. This is why some owners of the OnePlus 8, OnePlus 8 Pro, and OnePlus 7T Pro McLaren Edition are having a hard time fixing a fingerprint enrollment bug related to a corrupt persist partition.
The exact reason behind the corruption hasn’t been pinpointed yet. We know that the fingerprint sensor on the OnePlus 8 series and OnePlus 7T Pro might stop working under some particular scenarios (like after flashing a different regional firmware). The anomaly with fingerprint enrollment can be fixed after flashing a known-working dump of the persist partition from your very unit. Not all end users are expected to do so, thus the solution isn’t really feasible.
Fix for OnePlus 8 Pro
Fortunately, XDA Senior Member antnyhills has found a fairly generic way to fix a corrupt persist partition on the OnePlus 8 Pro. The idea is to extract the existing fingerprint calibration data from the target device with a broken persist partition and restore it on top of a cleaned persist. Given that you have root access on your OnePlus 8 Pro, the following command from a terminal emulator or ADB shell with root privilege should create a 1:1 backup of the persist partition.
dd if=/dev/block/bootdevice/by-name/persist of=/sdcard/persist.img
After backing up the partition, low-level EDL flashing has to be performed on the OnePlus 8 Pro to ensure that there is no firmware mismatch. At this point, the user should unlock the built in “Factory Mode” on the device and try to recalibrate the fingerprint sensor. The test is expected to fail, which is not a big deal anymore. All you need to do is restore the previously backed-up calibration data of the fingerprint scanner. If everything worked out correctly, you should be able to go into settings and add your fingerprints.
In case you find all the steps described in the above thread difficult, here’s a step-by-step video guide created by antnyhills to make things easier.
Fix for Other OnePlus Phones
In case you are facing this issue on another OnePlus phone, check out the XDA forums to see if any guides exist for your device. Here are some threads that have been brought to our attention:
OnePlus 7T Pro McLaren Edition: [GUIDE] Fix Fingerprint Scanner with “corrupt” persist in 15 minutes!
Have you faced any fingerprint enrollment glitches on your OnePlus device? Let us know in the comments below!