Closed rodrgz closed 2 years ago
hours != days
168hrs=7days
Tried this tonight on Ubuntu Mate 20.04 LTS, it worked just fine. In Ubuntu 20.04 :
1. `sudo apt install git openjdk-11-jre openjdk-11-jdk gradle` - I am not sure all of this is required 2. `git clone https://github.com/francescotescari/XiaoMiToolV2.git && cd XiaoMiToolV2 && git checkout linux` 3. `cd XiaoMiToolV2` 4. Edit line 39 of `src/main/java/com/xiaomitool/v2/gui/controller/LoginController.java `, change it to: `private static final String LOGIN_URL = "https://account.xiaomi.com/pass/serviceLogin?sid=unlockApi&json=false&passive=true&hidden=false&_snsDefault=facebook&checkSafePhone=true&_locale=" + Locale.getDefault().getLanguage().toLowerCase();` 5. `./gradlew build && ./gradlew run` 6. I chose "Global" region and logged in, it required 2FA to be sent to the phone. 2FA entry form didn't quite fit the window but I was able to enter the code and authenticate, then after a warning screen it showed the above confirmation.
Hello, even if this issue is closed I try to write here. I have followed this steps without success. For a lot of people it worked, and they got the bootloader unlocked. I have tried both on Windows and Linux. I cannot get it because the program gives me this error
Unlocking bootloader failed, Xiaomi server returned error 20044: Error description: Unknown error: 20044 Server description: Invalid fastboot token Please retry or upgrade your unlock tool.
Obviously no chance if I try it again. I would appreciate it evry much if anyone could help me. Thank you!
This worked for me, thks .
This worked for me, thks .
Do you have 'Locate my phone' (raw translation) by Xiaomi active ? This page seems to give this switch some importance.
it required 2FA to be sent to the phone
XiaomiToolV2 reboots the phone multiple times, it seems impossible to get an SMS as 2FA : should we use the phone number of a third party to get an SMS as 2FA ?
solution on mac os [M1 chip]:
update gradel to 7.3 and git clone the repository, then do
./gradlew build && gradlew run
For Mac Users: Enjoy:)
1. Install JDK 11 from [https://adoptium.net/?variant=openjdk11](https://adoptium.net/?variant=openjdk11)
(Do not use JDK11 from oracle, it creates weird encoding bugs and text will be unreadable.)
2. git clone https://github.com/francescotescari/XiaoMiToolV2.git && cd XiaoMiToolV2 && git checkout mac
Edit line 39 of src/main/java/com/xiaomitool/v2/gui/controller/LoginController.java , change it to:
private static final String LOGIN_URL = "https://account.xiaomi.com/pass/serviceLogin?sid=unlockApi&json=false&passive=true&hidden=false&_snsDefault=facebook&checkSafePhone=true&_locale=" + Locale.getDefault().getLanguage().toLowerCase();
3. ./gradlew build && ./gradlew run
today still got the same error, yes i've changed the line 39 :(
yes i've changed the line 39 :(
I could unlock my Xiaomi 11 Lite with the official Xiaomi unlock tool on Windows 10. Did not succeed on Windows 11 with the official Xiaomi unlock tool. Did not succeed on Linux with this tool. It seems that Xiaomi keeps changing its URL parameters.
The 7 days waiting period is unavoidable. At least it worked. All this happens because OEMs feel the need to protect the sheeple from themselves. Some OEMs don't care at all for the few knowledgeable people, who bear the cross of the sheeple. We can therefore laud Xiaomi to care for these in a tiny pathway.
All the best.
I am getting stuck here... the code is not visible, but I can select all and paste somewhere else and it becomes visible. Nevertheless if I type it it's not accepted
I am getting stuck here... the code is not visible, but I can select all and paste somewhere else and it becomes visible. Nevertheless if I type it it's not accepted
~~As a workaround I logged in with Facebook and there was no verification needed. And I also edited line 39 but error still happens: Missing serviceToken cookie.~~ Edit: I only had Missing serviceToken cookie when I was logged in using Facebook.
To fix Verification code not showing: Edit build.gradle.kts line 35 in XiaoMiToolV2 directory, change JavaFX version:
version = "11.0.2"
to
version = "17.0.2"
Run ./gradlew build && ./gradlew run
Login with your MI account e-mail, it is working for me.
Very glad to report success unlocking a POCO X3 Pro π On Linux (custom home built from source distribution) This tool works. I am donating right away Helped me understand what Gradle really is also (well, sort of at leastπ)
Happy unlocking to all!
Worked like a charm on Redmi Note Pro, was having token issue earlier. but this fixed the issue. You guys are awesome. π β€οΈ π
login and confirm 2FA but not success.....
I'm getting this exact issue too, already used up 4 attempt always getting that weird JSON-like response and not logging in.
Now I manage to see the chaptcha but I'm getting this other error after finishing the text verification. I can't get it working :(
I've getting captcha error every time I'm trying to login into the account XiaoMiTool - the captcha image is showing up, but it's always wrong. Meanwhile, browser login to https://account.xiaomi.com/ is successfull, and captcha in "Privicy" submenu works fine. Any clues how to fix captcha?
Update: I've tried Mi Unlock tool on windows, it's definitely using a different captcha which works fine. Though unlock tool is also failed for me with error -1
I give up at this point, nothing works.
Worked like a charm on Redmi Note Pro, was having token issue earlier. but this fixed the issue. You guys are awesome. π β€οΈ π
Did you do anything special? I can't get it working as you can see from my messages above. I might actually try to reinstall a brand new Linux distro on my pc, reinstall java and adb and see if it works.
It would be nice if anyone could pick this project up and merge these last fixes and continue developing
reinstall java and adb
For java: openjdk 11 worked for me, and for adb I wouldn't recommend using another one than the one included in the current project. I just unlocked a POCO X3 pro with it
Worked like a charm on Redmi Note Pro, was having token issue earlier. but this fixed the issue. You guys are awesome. π β€οΈ π
Did you do anything special? I can't get it working as you can see from my messages above. I might actually try to reinstall a brand new Linux distro on my pc, reinstall java and adb and see if it works.
It would be nice if anyone could pick this project up and merge these last fixes and continue developing
No, Didn't do anything special. Just updated a single line that is mentioned above and used jdk version 11. Btw I used it on MacOs.
I give up at this point, nothing works.
What error are you getting?
why would reinstalling the whole operating system cure this? The suggested patches (server url and usage of latest JDK do work). I wonder why the devs do not incorporate this. Eventually one should open up a PR.
why would reinstalling the whole operating system cure this? The suggested patches (server url and usage of latest JDK do work). I wonder why the devs do not incorporate this. Eventually one should open up a PR.
Because I've done these changes and tried several times and I'm still getting that error after text login I posted a few posts above. Some people are doing it and it works, so I'm assuming there's some conflict in java and gradle installed on my OS. I tried to install them from scratch, no way of getting it working
To fix Verification code not showing: Edit build.gradle.kts line 35 in XiaoMiToolV2 directory, change JavaFX version: version = "11.0.2" to version = "17.0.2" Run ./gradlew build && ./gradlew run Login with your MI account e-mail, it is working for me.
This sadly did not fix it for me. I am also seeing: "{"R": "", "S": "OK"} ". Tried QR-Code and phone login:
I did take the cookie data from inspecting the cookie of https://account.xiaomi.com/ , after successful login and did adjust the initBrowser function within LoginController.java.
It looks like I am logged in now, but the next issue is:
InstallException - info_retrive_failed - Failed to get the device unlock token
at com.xiaomitool.v2.procedure.install.FastbootInstall$4.run(FastbootInstall.java:237)
at com.xiaomitool.v2.procedure.RInstall.runInternal(RInstall.java:23)
at com.xiaomitool.v2.procedure.RNode$RNodeSequence.run(RNode.java:108)
at com.xiaomitool.v2.procedure.RNode.runInternal(RNode.java:77)
at com.xiaomitool.v2.procedure.RNode$RNodeSequence.run(RNode.java:108)
at com.xiaomitool.v2.procedure.RNode$1.run(RNode.java:51)
at com.xiaomitool.v2.procedure.RNode$1.run(RNode.java:55)
at com.xiaomitool.v2.procedure.RInstall.runInternal(RInstall.java:23)
at com.xiaomitool.v2.procedure.RNode$RNodeSequence.run(RNode.java:108)
at com.xiaomitool.v2.procedure.uistuff.ChooseProcedure$3.run(ChooseProcedure.java:158)
at com.xiaomitool.v2.procedure.RInstall.runInternal(RInstall.java:23)
at com.xiaomitool.v2.procedure.RNode$RNodeSequence.run(RNode.java:108)
at com.xiaomitool.v2.procedure.Procedures$6.run(Procedures.java:236)
at com.xiaomitool.v2.procedure.RInstall.runInternal(RInstall.java:23)
at com.xiaomitool.v2.procedure.RNode$RNodeSequence.run(RNode.java:108)
at com.xiaomitool.v2.procedure.RNode.runInternal(RNode.java:77)
at com.xiaomitool.v2.procedure.RNode$RNodeSequence.run(RNode.java:108)
at com.xiaomitool.v2.procedure.RNode.runInternal(RNode.java:77)
at com.xiaomitool.v2.procedure.RNode$RNodeSequence.run(RNode.java:108)
at com.xiaomitool.v2.engine.actions.ActionsDynamic$5.run(ActionsDynamic.java:604)
at com.xiaomitool.v2.engine.actions.ActionsStatic.lambda$MAIN_RECOVER_DEVICE$7(ActionsStatic.java:211)
at com.xiaomitool.v2.engine.actions.ActionsStatic.lambda$MOD_CHOOSE_SCREEN$2(ActionsStatic.java:97)
at com.xiaomitool.v2.engine.actions.ActionsStatic.lambda$MAIN$0(ActionsStatic.java:69)
at com.xiaomitool.v2.engine.ToolRunner.lambda$start$0(ToolRunner.java:50)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:832)
Caused by: java.lang.Throwable: null
at com.xiaomitool.v2.procedure.install.InstallException.<init>(InstallException.java:44)
... 29 more
[22:31:31][ERROR ][435ec560] java.lang.Exception: TraceBackException
at com.xiaomitool.v2.gui.visual.InstallPane.onException(InstallPane.java:60)
at com.xiaomitool.v2.gui.visual.InstallPane.exception(InstallPane.java:94)
at com.xiaomitool.v2.procedure.ProcedureRunner.handleException(ProcedureRunner.java:95)
at com.xiaomitool.v2.procedure.RNode$RNodeSequence.run(RNode.java:117)
at com.xiaomitool.v2.procedure.RNode.runInternal(RNode.java:77)
at com.xiaomitool.v2.procedure.RNode$RNodeSequence.run(RNode.java:108)
at com.xiaomitool.v2.procedure.RNode$1.run(RNode.java:51)
at com.xiaomitool.v2.procedure.RNode$1.run(RNode.java:55)
at com.xiaomitool.v2.procedure.RInstall.runInternal(RInstall.java:23)
at com.xiaomitool.v2.procedure.RNode$RNodeSequence.run(RNode.java:108)
at com.xiaomitool.v2.procedure.uistuff.ChooseProcedure$3.run(ChooseProcedure.java:158)
at com.xiaomitool.v2.procedure.RInstall.runInternal(RInstall.java:23)
at com.xiaomitool.v2.procedure.RNode$RNodeSequence.run(RNode.java:108)
at com.xiaomitool.v2.procedure.Procedures$6.run(Procedures.java:236)
at com.xiaomitool.v2.procedure.RInstall.runInternal(RInstall.java:23)
at com.xiaomitool.v2.procedure.RNode$RNodeSequence.run(RNode.java:108)
at com.xiaomitool.v2.procedure.RNode.runInternal(RNode.java:77)
at com.xiaomitool.v2.procedure.RNode$RNodeSequence.run(RNode.java:108)
at com.xiaomitool.v2.procedure.RNode.runInternal(RNode.java:77)
at com.xiaomitool.v2.procedure.RNode$RNodeSequence.run(RNode.java:108)
at com.xiaomitool.v2.engine.actions.ActionsDynamic$5.run(ActionsDynamic.java:604)
at com.xiaomitool.v2.engine.actions.ActionsStatic.lambda$MAIN_RECOVER_DEVICE$7(ActionsStatic.java:211)
at com.xiaomitool.v2.engine.actions.ActionsStatic.lambda$MOD_CHOOSE_SCREEN$2(ActionsStatic.java:97)
at com.xiaomitool.v2.engine.actions.ActionsStatic.lambda$MAIN$0(ActionsStatic.java:69)
at com.xiaomitool.v2.engine.ToolRunner.lambda$start$0(ToolRunner.java:50)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at java.base/java.lang.Thread.run(Thread.java:832)
So there's no hope having a Windows working binary? Porca mignotta
@tkreuder I succeeded with api path change.
Phone: Mi phone 9
Env: Mac with M1 Pro
JDK: zulu 11.014.1 x64
How I did it: install jdk x64 version and open terminal in Rosetta mode. Then ./gradlew clean build && ./gradlew run
.
I tried java 17, javafx 17 and gradle 7.3 to fix messy font issue, but failed. Don't understand why these libraries would break the feature.
@TisnKu nice that it works for you with your fix :)
Sadly for me it did not fix it and I still get: {"R":"","S":"OK"}
. With another account I cannot succeed with the captcha (just in a normal browser) as the captcha in the tool is displayed in a java popup or something. I receive: ιͺθ―η θΎε
₯ιθ――
that is Error in inputting verification code
, although it is not wrong and works in the browser. I just used the url you committed in the browser and it gives me {"R":"","S":"OK"}
as well.
Hi guys! i don't know if anybody still reads this thread, but anyone got error 20045? Didn't find any info about this. thanks for help
To me this error message looks like the contacted server rejects the requests from this tool by now (the message says "please use the official tool".
Just encountered the same problem. No clue on how to solve it however... Seems like Xiaomi finally buried this tool... All attempts using the official tool failed, however
I did give up and used the official tool that is only available on Windows and did not work via VirtualBox for me. With the official tool the unlock succeeded
Xiaomi seems to hate us because they no longer send authentication codes if you login using the tool. Had to trick them into sending one by spamming login attempts from Chrome and I was able to log in. Let's see if after the 360 hour wait time (fuck you Xiaomi, btw) I can unlock this damn thing again. I had it unlocked and then an OTA update from them fucked it and I had to RMA it to get a new one...
I'm on Arch Linux. I cloned the repo, checked out the linux branch, merged #41, built and run fine, I also could login just fine but when choosing unlock it fails to get the tokken
AFA I could understand, it's related to mandatory 2 factor authentication forced by Xiaomi.
The session_token
stuff which is null, can be extracted from a cookie from your browser after you login into account.xiaomi.com, but I don't exactly know which one as there are 3 tokens. Also pcid must be replaced with another parameter existing in the cookie.
P.s. Don't care about secrets in screenshot. Screw Xiaomi.
@vmavromatis Can I ask how may I force app to print every http request/response? I set loglevel to DEBUG
, even TRACE
, in conf/logging.properties
but nothing changed.
sigh... Breathes deeply ..... Drinks ayahuasca ...
"I will not suffer anger issues because of this, i will remain calm and peaceful. " I John of God promise myself to wait patiently... for the 24hrs wait time since I have failed to input the FKING CAPTCHA ! WHICH APPEARS ALL BROKEN ! FUCK YOU XIAOMI.
It is also possible to login via scan qr code as unlike captcha code it's visible. But app doesn't understand the response. Shows the json content on screen only.
I also do have this issue. heellppp
Hi try to message me to my Whatsapp that way we chat more comfortably and i can gladly help you better, i managed to unlock mine and i already have a custom rom on my Redmi 9A , so its all safe, i can help you and guide you through, so we may get rid of google for good. My number +58 414 948 4332
Cordial Salutations. John of God <3
On Mon, May 2, 2022 at 11:38 AM Jovylle Bermudez @.***> wrote:
[image: image] https://user-images.githubusercontent.com/73716444/166262948-688928c5-1b50-44e4-9504-cd4c67674f89.png I also do have this issue. heellppp
β Reply to this email directly, view it on GitHub https://github.com/francescotescari/XiaoMiToolV2/issues/23#issuecomment-1115045465, or unsubscribe https://github.com/notifications/unsubscribe-auth/AS53TCVX4J3QISRZNNRSIEDVH7ZGZANCNFSM5AJAWLSQ . You are receiving this because you commented.Message ID: @.***>
-- Juan de Dios Jurisch.
i have no idea, that tool is a scam in my opinion.
On Tue, May 3, 2022 at 6:50 AM gautamhitesh001 @.***> wrote:
XiaoMiToolV2
Line 35 under a directory. What does this even mean?
β Reply to this email directly, view it on GitHub https://github.com/francescotescari/XiaoMiToolV2/issues/23#issuecomment-1115965125, or unsubscribe https://github.com/notifications/unsubscribe-auth/AS53TCVTYNXGDYRQA4C3DDDVIEAHJANCNFSM5AJAWLSQ . You are receiving this because you commented.Message ID: @.***>
-- Juan de Dios Jurisch.
On a virtual machine of course , and use Qemu
On Tue, May 3, 2022 at 9:18 AM Juan de Dios Jurisch Y. < @.***> wrote:
use the official tool, Xiaomi-Unlock
On Tue, May 3, 2022 at 9:15 AM Juan de Dios Jurisch Y. < @.***> wrote:
i have no idea, that tool is a scam in my opinion.
On Tue, May 3, 2022 at 6:50 AM gautamhitesh001 @.***> wrote:
XiaoMiToolV2
Line 35 under a directory. What does this even mean?
β Reply to this email directly, view it on GitHub https://github.com/francescotescari/XiaoMiToolV2/issues/23#issuecomment-1115965125, or unsubscribe https://github.com/notifications/unsubscribe-auth/AS53TCVTYNXGDYRQA4C3DDDVIEAHJANCNFSM5AJAWLSQ . You are receiving this because you commented.Message ID: @.***>
-- Juan de Dios Jurisch.
-- Juan de Dios Jurisch.
-- Juan de Dios Jurisch.
git clone https://github.com/francescotescari/XiaoMiToolV2
src/main/java/com/xiaomitool/v2/gui/controller/LoginController.java Line 39:
Replace that line with:
private static final String LOGIN_URL = "https://account.xiaomi.com/pass/serviceLogin?sid=unlockApi&json=false&passive=true&hidden=false&_snsDefault=facebook&checkSafePhone=true&_locale=" + Locale.getDefault().getLanguage().toLowerCase();
After that dogradle build && gradle run
, login with 2FA verification, try to unlock your bootloader!I've not tried myself because i don't want to use another smartphone for 2FA Verification and to Lock & ReUnlock the Bootloader, but if works, please mention me in this thread and tell me if you're able to unlock bootloader and mod your Xiaomi Smartphone!
Good News. Looks like the edit has been patched into the source. I pulled everything down using:
git clone https://github.com/francescotescari/XiaoMiToolV2
then cd'ed into the XiaoMiToolV2 dir
cd XiaoMiToolV2
then selected the linux branch using:
git checkout linux
and then laucned the gui using
./gradlew build && ./gradlew run
And boom the gui came up. Then connected my phone (after enabling developer mode, and logging into xiaomi account on the phone).
The gui went through its iterations and told me that I still had 5 more days of waiting time. So hopefully it will work this time. As originally with the version I had pulled down from the xiaomitool.com website would not get up to this point. And would give that infamous error: Xiaomi procedure failed: [getServiceToken] Missing serviceToken cookie
after connecting mhy phone and selecting to unlock bootloader.
Thanks a million guys!
git clone https://github.com/francescotescari/XiaoMiToolV2
src/main/java/com/xiaomitool/v2/gui/controller/LoginController.java Line 39: Replace that line with:private static final String LOGIN_URL = "https://account.xiaomi.com/pass/serviceLogin?sid=unlockApi&json=false&passive=true&hidden=false&_snsDefault=facebook&checkSafePhone=true&_locale=" + Locale.getDefault().getLanguage().toLowerCase();
After that dogradle build && gradle run
, login with 2FA verification, try to unlock your bootloader! I've not tried myself because i don't want to use another smartphone for 2FA Verification and to Lock & ReUnlock the Bootloader, but if works, please mention me in this thread and tell me if you're able to unlock bootloader and mod your Xiaomi Smartphone!Good News. Looks like the edit has been patched into the source. I pulled everything down using:
git clone https://github.com/francescotescari/XiaoMiToolV2
then cd'ed into the XiaoMiToolV2 dir
cd XiaoMiToolV2
then selected the linux branch using:
git checkout linux
and then laucned the gui using
./gradlew build && ./gradlew run
And boom the gui came up. Then connected my phone (after enabling developer mode, and logging into xiaomi account on the phone).
The gui went through its iterations and told me that I still had 5 more days of waiting time. So hopefully it will work this time. As originally with the version I had pulled down from the xiaomitool.com website would not get up to this point. And would give that infamous error:
Xiaomi procedure failed: [getServiceToken] Missing serviceToken cookie
after connecting mhy phone and selecting to unlock bootloader.Thanks a million guys!
I am running opensuse leap 15.3 with android-studio installed.
@kubaku which java version?
I was having this error but i don't know when i tried it recently, it gone smoothly.
Does anyone found a solution?
java-11-openjdk
Hi,
I have the same issue see #70
196
?? @uAliFurkanY
Does anyone found a solution?
Check this issue. The patch is literally here. If you can't find it, look again
Hey! I tried the patch with git pull, openjdk 11 and stuff but it didn't work. I have just linked my phone to the account though, I'm not sure if I need to wait before it can have perms to request an unlock?
This is happening to me too after the login URL change patch
I followed the instructions to unlock my Xiaomi phone, but I found this procedure error in the current linux version and in the Windows version.