[GUIDE] Fix PERSIST.IMG Loss Of Finger Print Sensor

Were you successful?


  • Total voters
    39

antnyhills

Senior Member
Aug 6, 2012
152
139
73
UTAH
New video guide below

VIDEO GUIDE


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 OVERWRITTEN IN THE NEXT FEW STEPS*

Note: This requires root​

Type this into terminal or ADB shell with root privileges.
Code:
dd if=/dev/block/bootdevice/by-name/persist of=/sdcard/persist.img
Backup the partition to another device. Preferably a PC as you may need one in the later steps.

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. (*#808# 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.
  • Reboot.

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.
 
Last edited:

Duncan1982

Senior Member
Feb 6, 2014
2,482
1,809
193
Absolutely fantastic that you solved it, I RMA,'d mine, but for others this is Highly beneficial......?

I will also thank you for your many hours placed so that others now don't have to RMA.

Well done ......?
 

cultofluna

Senior Member
Nov 25, 2015
3,803
1,899
253
1. *VERY IMPORTANT* We need to back up your broken persist.img and store it in a safe place. PC preferred. Do not leave the backup on the device as the next step will wipe the device.

Note: This requires root

Type this into terminal or ADB shell with root privileges.


Backup the partition to another device. Preferably a PC as you may need one in the later steps.

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 (Do not touch or cover the sensor during any of these tests)
The test will fail and this is what we want.
Reboot.


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.

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.
Reboot.


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.
Gteat job
 
  • Like
Reactions: Mesmurized

antnyhills

Senior Member
Aug 6, 2012
152
139
73
UTAH
So I went back to 10.5.4 as instructed. Previously on 10.5.10 and backed up persist.img before rolling back. Followed all steps correctly. Fingerprint still gets an enrollment error. I am honestly so confused what I did wrong.
And you made you you replaced all the files in the Data and Engineermode folder?

Will you also take a screenshot of the '"Passed" fingerprint test for me?
 

Fischer1234

Member
Aug 28, 2015
39
4
0
And you made you you replaced all the files in the Data and Engineermode folder?

Will you also take a screenshot of the '"Passed" fingerprint test for me?
Yes, I copied both data and engineer mode folders as instructed. Also, I was dumb and only did one fingerprint test. After going through all of them it did end up failing at the end.
Still wanted to give this a go before sending my phone back to OnePlus for repair.

Edit: Thought maybe upgrading from 10.5.4 to 10.5.10 would fix it after following all instructions, still have a fp enrollment error.
 

antnyhills

Senior Member
Aug 6, 2012
152
139
73
UTAH
Yes, I copied both data and engineer mode folders as instructed. Also, I was dumb and only did one fingerprint test. After going through all of them it did end up failing at the end.
Still wanted to give this a go before sending my phone back to OnePlus for repair.

Edit: Thought maybe upgrading from 10.5.4 to 10.5.10 would fix it after following all instructions, still have a fp enrollment error.
I'm currently working on a much easier to follow video. Should have that out in a few hours hopefully.
 
  • Like
Reactions: GHOST1010

antnyhills

Senior Member
Aug 6, 2012
152
139
73
UTAH
already tried, it's a negative again, the only mistake was to delete de ff_persist.so, right?
Old guide said not to touch the sensor during calibration. New one is touch touch on all tests but the black rubber test.

Make sure you see a bunch of red lines after you run the calibration and it fails. Not just one.
 
Last edited: