Oem unlock "input verify code"

Correct, I didn’t set up a google account before trying this. I didn’t see any options that seem relevant. Thank you for replying!

same problem. tried different things:

  • remove display locking (PIN and fingerprint)
  • remove google account from phone and device from google account

thinking about it, I think I did a factory reset once in the past after I connected it to a google account. So if it is really the “device protection feature”, I think I’m lost at this point, unless anyone has a good hint?

I haven’t found a solution yet, but I have been in touch with support and I’ll post any suggestions they have here, once they get back to me.


I have the same issue. Any solutions?

from the looks of it this “code entry field” expects a hexadecimal entry (digits 0-9, a-f) between 1 and 8 digits long, so probably a 32bit number in hexadecimal notation.

It is not 0, it is not the “order number” and it is not the 32 least significant bits of the “serial number” (which is an IMEI, which does not fit in 32bit)

1 Like

Please try this perl script with your IMEI (slot 1) and serial number:

perl fp3verifycode.pl --imei 123456789012345 --serial A1234567890

(The numbers can be found under “About phone” - “Model & hardware”)

This should print a string with 8 hex chars at the end for the verify code.
You might also check adb logcat when trying this, maybe there is some output from the OemUnlock code …

I cannot test it myself as I have unlocked mine directly after receiving it and before installing any updates.


This works!!! awesome!!!


Yes, that worked for me too! Thank you so much, you’re brilliant!

1 Like

Huh, where did you get that algorithm from?

1 Like

Looking at Settings.apk which I pulled from my Fairphone 3.

The check was probably added by Fairphone with one of the updates as the "WARNING: Device protection… " is a normal AOSP string but “Input verify code :” does not exist anywhere else.


Neat! From the dexdump ? :sunglasses:

There should be a way to like a comment more than once.


I’ve put up the algorithm on my website so people don’t have to run perl locally :wink:

Full credit belongs to @_tmp!


Funnily I didn’t have to change much from the original code because Perl and PHP seem to provide the same functions and the rest of the syntax is also more or less the same :slight_smile:

And now thinking about this, it would have probably been nicer to implement it as client-side JavaScript. Oh well.


nice. I noticed, it’s missing the length/validity checks for imei and serial number’s though, so if you ever do a javascript reimplementation, you might like to implement those, too :slight_smile:

Correct, I ignored them for now. Will implement that later though


It works for me. Thank you.

Add a length check now, I’ve also uploaded the script running on my server to gist as well: https://gist.github.com/z3ntu/9c09120bb44c6dd9fe163931a1478ea9


Just plain and simple: @_tmp, lots of THANKS! :slight_smile:
(works perfectly fine here as well)


Apparently Fairphone published their own How-To for unlocking the bootloader :smiley:

there are some concerns regarding the data which is transmitted to Fairphone: keep in mind that fairphone may save your device informations (IMEI & SN) and thus Fairphone knows wheter you unlocked your device or not (could be important in warranty claims!)
Alternatively, you can use this method :slight_smile:


I would untag the previous post as “solution”, and rather redirect any interested person to ✏ FP3: unlock the bootloader or to https://private.z3ntu.xyz/FP3/verify-code.php.

These are the facts:

  1. When FP3 was released, there was no need to enter any code to allow the bootloader to be unlocked
  2. In a successive update, this new screen was introduced by FP, and some reverse engineering was required to unlock the bootloader (the above cited guide was then posted by the community)
  3. Now, FP makes available its own tool to circumvent an annoying dialog box that they introduced themselves, instead of simply removing that dialog box in a successive update

I have not checked whether the IMEI and serial numbers are actually sent to FP servers when you use their tool or whether the decoding is done client side, it would be interesting to see. (Edit: it has been checked in a later post by justlurking that this data is indeed processed by a remote server) But I let you draw your conclusions.

If I brick my phone, I will consider myself the only responsible for it, and will not open a warranty case with FP. But if there is a hardware failure, I wish FP to respond for it, independently of whether I have at some point intended or not to unlock my bootloader.

Moreover, it is not FP’s business to know whether or not I have the intention to unlock my bootloader. Well, I really don’t know (yet) what the FP tool for getting the code for unlocking the bootloader actually does, but in order to keep on the safe side, I prefer the strategy suggested on the above cited links.

Edit: it seems that there are actually quite a few guarantee-unrelated good reasons for which FP might want to collect, or even might have to collect this data. But using an alternative method to get the unlocking code still does not hurt :yum:.


It was me who retagged the solution to the official Fairphone solution.
My rationale being … it is the official Fairphone solution to the topic at hand.

But I have no emotional attachment to this detail here.
I have added the official code generator link to ✏ FP3: unlock the bootloader, so anybody with the permission please feel free to retag the solution if you so choose.