Remove All Ads from XDA

[TOOL][WIN/LIN/MAC] MiUnlockTool - Unlock bootloader of xiaomi devices on mac & linux

9 posts
Thanks Meter: 165
By franztesca, Junior Member on 25th April 2018, 10:49 PM
Post Reply Email Thread
Ciao xda users, I'm here to introduce a new tool of mine, MiUnlockTool.
MiUnlockTool is an unofficial tool used to unlock bootloader on Xiaomi devices. This tool is copied from the original windows MiFlashUnlock tool and works the same way. The main feature of this tool is compatibility with linux and mac operating system (and windows too).
If you want more information about the tool and the story behind you can read below, if you just want the download link, here it is:
Requirements: java (javafx for gui if not included in your jdk/jre)

- Download and extract the zip file
- If you don't have it, install java
- On windows:
-- open MiFlashUnlock.bat for graphical interface or:
-- open a cmd windows and cd into extracted dir and use "MiUnlockTool.bat username password" command for command-line usage
- On linux:
-- open a terminal window and cd into extracted dir and use "sudo ./" command for gui interface or "sudo ./ username password" for command-line
- On mac:
-- open (double click) MiFlashUnlock.command for graphical interface or
-- open a terminal window and cd into extracted dir and use "./MiFlashUnlock.command username password" for command-line
- Attach your locked device in fastboot mode.
- If you are using gui just follow what you see on your screen
- If you are using command line version remember that there is no confirmation request before unlock and no check if the bootloader is already unlocked.

Possible errors:
- If you get a permission related error on linux or mac when launching the tool, open a terminal and cd into extracted dir and use "chmod 777" (or MiUnlockTool.command on mac) to set the executable permission.
- If your device isn't recognized:
-- On windows: install adb drivers
-- On linux/mac trying launching the tool with sudo (sudo ./ on linux or sudo ./MiUnlockTool.command on mac)
- Other problems launching the tool: try running "java -jar bin/MiUnlockTool.jar" command
- If you get some errors with javafx class not found stuff when you try to launch the gui, then you are missing javafx library. See openjfx package on linux.
- Any other problem: provide feedback in the comments.

Additional info: original MiFlashUnlock tool is just a bridge between fastboot, you (and your account login credentials) and xiaomi server: the tool gets device info from the device and send them to the server together with the account login token, the server checks wherever you satisfy all their requirements (account authorized, account associated with device in developer settings etc) and if everything is okay the server reply with the unlock key for your device instance (every time you reboot your phone you need a new key). Then the tool send the key to the device with a custom build of fastboot and if the key is right then the device is unlocked, else it reboots. After I discovered all the process behind the original unlock tool (and all the security encryption techniques) I decided to replicate it with a java (cross-platform) tool which embeds a custom fastboot version and replicates what the original tool does. That's a simple explaination of how my tool works (obviously it's more complicated than that).
This tool requires all of what is required by the original tool (an authorized xiaomi account binded to the device through developer options for three days if I remember correctly).

- Is this tool safe to use?
Yes, the main part is communication between tool and server, a safe thing. Also the unlock procedure itself is safe: or the key is correct or it is not. In both cases the device will not be damage.
- How did you find out how to replicate the original tool?
Thank you for your question. It's been a bit difficult since the original tool has been obfuscated and virtualized (protected against reverse engeneering) with a powerful protector: VMProtect. I've spent some time to reverse it (and custom fastboot too) and I finally did it. I will not explain in details how I did it.
- Is this tool more powerful than the original on? why should I use it on Windows?
Absolutely not, my tool is worst than the original one (it will have more bugs and on windows it doesn't manage drivers for example), that's why you should NOT use it on Windows. I made it work even with Windows because it was very simple to do. You can use it one Windows just to test it if you like, but I recommend using the better original tool MiFlashUnlock.
- Wow, you did a tool already done by developers paid by xiaomi, who is paying for the effort you put into this?
No one, I try to help people and getting appreciation for my work is a bit of a reward to me, but if you want to show your gratitude even more and support me as a developer you can make a donation, I will appreciate that even more (donation link below)
- I have to put my xiaomi account credentials, should I trust this?
I'm the developer of XiaoMiTool, I hope that a little bit of my reputation together with the hopefully good early feedback of reckless users on this tool is enough. If you are more a geek you can track the traffic and see that the only server connected are xiaomi and miui.
- I wanted too see the source of this tool but I see it is a bit obfuscated, why?
Xiaomi clearly doesn't wanted people to see how MiFlashUnlock works (since they obfuscated it a lot), I don't want to disrespect xiaomi decision by releasing the source plain, so I decided to obfuscated it a bit just to make it a bit harder to see (even if my tool is 100 times easier to reverse than the original)
- Can I share this tool?
Of course yes, but I would like you to share it using the link (not one) so that if I release an update new people will get that and not the old version (there is no tool update enginge built in).
- You're english is not wonderful...
I know, hopefully it is understandable enough

I love feedback, feedback is the best you can do to help me improving this tool. I have not time to answer everybody's questions but I generally read feedback and do my best to make the tool work. If the tool worked or if the tool didn't worked you can write it in the comments, adding additional information like what error you get, what screen you see when the tool get stuck or even what you tried to solve the problem are precious to me. I have not all of xiaomi devices, I fully ested my tool only with two devices (a redmi 4x and a mi note 2) and only on two operating systems (linux and windows), so any new combination could lead to new errors or problems. Please include also your operating system when leaving feedback. Sometimes there are problems on gui which are not on command-line version, so if the tools fails launching or when using gui I suggest trying the command-line version.

Donation: free software is great from users prospective, but developers who spend hours of their time and don't get money for it are more unhappy to develop further free tools, so if you liked the tools and it saved you from the need to do 5000 kilometers to get a windows pc, or from the need to download a virtual machine image with your 32kB internet connection, you can show your gratitude by offering me a tasty, cold beer by clicking the link below

Download: you missed the download link at the top? Here it is again:
The Following 30 Users Say Thank You to franztesca For This Useful Post: [ View ] Gift franztesca Ad-Free
10th May 2018, 07:04 PM |#2  
KOJANHQ's Avatar
Senior Member
Flag California
Thanks Meter: 47
Fully obfuscated tool. Maybe bloatware or password hijacker
The Following 4 Users Say Thank You to KOJANHQ For This Useful Post: [ View ] Gift KOJANHQ Ad-Free
27th July 2018, 02:15 PM |#3  
Junior Member
Thanks Meter: 1
Problems with mi unlock on ubuntu system

I tried to run this miunlock on my linux pc and it did not work. I installed the javafx using "sudo apt install openjfx" . After I ran "sudo ./*.sh". The program open, but when I put my email and password, it does not connect with the xiaomi server. I tried to access using facebook login and I have the same problem. How can I solve this problem? Do you have any idea?

The Following User Says Thank You to dpvalverde For This Useful Post: [ View ] Gift dpvalverde Ad-Free
28th July 2018, 01:03 PM |#4  
Junior Member
Thanks Meter: 0
The program does not find the phone connected. But "sudo fastboot reboot" work

---------- Post added at 12:03 PM ---------- Previous post was at 11:51 AM ----------

Originally Posted by dpvalverde


I tried to run this miunlock on my linux pc and it did not work. I installed the javafx using "sudo apt install openjfx" . After I ran "sudo ./*.sh". The program open, but when I put my email and password, it does not connect with the xiaomi server. I tried to access using facebook login and I have the same problem. How can I solve this problem? Do you have any idea?


Reinstall certs
28th July 2018, 05:24 PM |#5  
Junior Member
Thanks Meter: 0
disconnects phone on checking bootloader status with an error message on top left corner of phone "press any key to shutdown"
and stays stuck after reconnecting in fastboot mode when reading device info.
12th August 2018, 05:46 AM |#6  
Senior Member
Flag GOA
Thanks Meter: 985
How to install it on manjaro arch Linux. did u keep it in AUR.?
12th August 2018, 02:55 PM |#7  
Junior Member
Thanks Meter: 1
Status : Success unlock bootloader
Device : Redmi 4X
Waiting Time : 72hours

Thx for the tool . love3 😘😘😘😘😘😘
Attached Thumbnails
Click image for larger version

Name:	IMG_20180812_205056.jpg
Views:	3728
Size:	265.0 KB
ID:	4570210   Click image for larger version

Views:	3758
Size:	25.6 KB
ID:	4570212   Click image for larger version

Views:	3824
Size:	77.5 KB
ID:	4570213  
16th August 2018, 02:10 PM |#8  
Senior Member
Thanks Meter: 51
worked a treat.

had been struggling to use the mi tool for windows and my device was not being detected.

this took me barely a minute to unlock.
22nd August 2018, 06:35 PM |#9  
YetAnotherForumUser's Avatar
Senior Member
Thanks Meter: 1,669
Waiting for a fastboot device...
Well, the communication with the 'net seems to work as intended but that is where it stops:

[18:01:15][INFO  ] Starting login procedure
[18:01:24][INFO  ] Login procedure succeeded
[18:01:25][INFO  ] Checking account unlock permission
[18:01:27][INFO  ] Unlock permission confirmed
[18:01:27][INFO  ] Waiting for a fastboot device
Using the fastboot command line works for the same user account so this won't be solved by running the tool as root. The device reports itself as 18d1:d00d Google Inc. and shows up clearly when using the fastboot command line tool:

$ fastboot devices
deadbeef	fastboot
(no, my device ID is not deadbeef)

Tried OpenJDK 10 and 9, Oracle JRE 8, no difference.

Digging deeper using strace shows the problem: the 'special' fastboot command you include (in bin/MiUnlockTool_res) is a 64-bit executable while I'm running the tool on a 32-bit machine. Substituting the provided tool for a link to the version already present on this machine makes the command progress to the error:

$ java -jar bin/MiUnlockTool.jar '[email protected]' 'mysupersecretpassword'
[18:19:25][INFO  ] Starting login procedure
[18:19:36][INFO  ] Login procedure succeeded
[18:19:36][INFO  ] Checking account unlock permission
[18:19:39][INFO  ] Unlock permission confirmed
[18:19:39][INFO  ] Waiting for a fastboot device
[18:19:39][INFO  ] Device connected: deadbeef
[18:19:39][INFO  ] Obtaining device info...
[18:19:40][INFO  ] Device info obtained
[18:19:40][INFO  ] Checking if unlock will erase data and server message
[18:19:42][INFO  ] Unlock procedure will erase userdata
[18:19:42][INFO  ] Server message: An unlocked device is an easy target for malware which may damage your device or cause financial loss.
[18:19:42][INFO  ] Querying unlock server for unlock key
[18:19:48][ERROR ] Unlock request replied with error code 20036
[18:19:48][ERROR ] Error meaning: After %d hours of trying to unlock the device
I guess I have to wait, how long I do not know as this is not shown in either mode (command line or GUI).

Anyway, you might want to add a 32-bit fastboot command or just tell users to install a native version and use that.
23rd August 2018, 01:23 AM |#10  
Junior Member
Thanks Meter: 0
I see the same error message when I tried to unlock MI 8 (global version bought yesterday in official Xiaomi store in Poland). I tried official Xiaomi tools on Windows 10, but without any success (verify failed at 50%).
24th August 2018, 11:19 PM |#11  
Senior Member
Flag pistoia
Thanks Meter: 100
Donate to Me
I'm using it on a Linux laptop, I get "buffer overflow detected" after "starting final unlock procedure" and then it fails
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes