1. *VERY IMPORTANT* We need to back up your broken persist.img and store it in a safe place. PC preferred. We will need this later. Do not leave the backup on the device as the next step will wipe the device.
*IF YOU LOOSE THIS PERSIST.IMG BEFORE WE MODIFY IT WITH A CALIBRATION, YOU LOOSE ALL CHANCE OF FIXING THIS YOURSELF*
*IT HOLDS IMPORTANT FP CALIBRATION DATA THAT WE WILL BE OVERWRIGHTING IN THE NEXT FEW STEPS*
Note: This requires rootType this into terminal or ADB shell with root privileges.
dd if=/dev/block/bootdevice/by-name/persist of=/sdcard/persist.img
2. Next we have to restore our OS to an earlier OOS. (10.5.4 is what I used and recomended)
Use the MSMTool to restore your device to 10.5.4.
Note: You will loose your unlocked bootloader and will be required to unlock your bootloader once more.Guide and Source for MSMTool
MSMTool 10.5.4 Download
3. Next step is to unlock the built in 'Factory Mode' I have a guide on how to do this below.
[GUIDE] Unlock Factory Mode *root*
4. Now we need to perform a FP calibration. We want to fail.
- Enter Factory Mode as shown in the previous guide. (*#801# in the stock dialer)
- Swipe over to "Device Debugging"
- Select "Finger print test"
- Select "Finger print calibration test(Pure White - 90% Blue)
- Select "Start Test"
- Keep on going through the tests (You must hold an object or your finger over sensor on all BUT THE BLACK RUBBER TEST of these test for it to work!)
- The test will fail and this is what we want. There should be a lot of red lines, if you only have one or two try again.
5. We need to extract the the old broken persist.img
NOTE: It is important that we extract the backed up persist.img as it has been unmodified by our recent calibration. This persist.img although broken still has all our working calibrations on it including Finger Print calibrations.
The way I did this is by opening it extracting it via 7-ZIP on my PC
Once extracted move the 'DATA' folder and the 'ENGINEERMODE' folder to the root of your sdcard.
6. Download a root explorer. I highly recommend 'Solid Explorer' from the Play Store.
- Open 'DATA' folder and delete 'gf_persist.so'
- Select the 'DATA' and 'ENGINEERMODE' folders you just put on the device and place them at /mnt/vendor/persist/
- It should ask you if you want to keep the old or new files. Select to keep the new.
7. If you followed all my steps correctly this you should be able to go into settings and add your fingerprints.
Why does this work?
Good question... I think what is happening is something in the persist partition breaks which causes the device to think that the sensor is not calibrated when in fact it still is.
When we start and fail a new calibration this fixes whatever was broken in our partition. But now we have a failed calibration.
So what we do is take the files from our backed up persist partition and move over all the necessary files that have our original calibration. But now our partition has the part of it that wasn't working fixed.
I spent a good many days working on this fix (1-2 hundred hours or so). I hope you can be respectful if you have issues. Please kindly ask below and I'll do my best to help.