General EDL Flash Tool Leak

Search This thread

dladz

Senior Member
Aug 24, 2010
14,986
5,319
Liverpool
Huawei Watch 2
OnePlus 10 Pro
Hey, I have a bricked OnePlus 10 Pro that I'm willing to try absolutely anything with. I don't use XDA much anymore ( someone tagged me ) so if you would like me to try something I'd appreciate if you tag me in a Twitter post with @_AndroidAsh ( I think my DM's are locked ) and we can communicate from there. To give you an idea of time zone I am in the UK where it is exactly 11pm on Tuesday 27th.

Thanks 🤝
@hackslash didn't you say you needed a test subject?
 

ues_t

Senior Member
Jul 16, 2022
74
20
Exactly.
The goal right now is to dump the entire network traffic and all USB packets. All that requires is a valid MSM account. There really is no need for a device, and the chances of brick are non existent, since it's a EDL Flash.

That dump requires a one time effort by someone to allow me or someone else to setup the necessary tools and perform the flash and dump. The sad part is that the entire process requires a valid MSM Account. The last one we got eventually expired and no one stood up to boot his device for EDL and do one complete EDL Flash. Unless we have a new MSM account, things won't change, at all, for the time being.
Maybe I can do a web scraping the next time I flash with the msm tool since I'll be upgrading my device to android 13 recently

But I can't do USB capture, my computer window10 has been shut down a lot of services by me, which makes some applications unavailable

Dumping some authorization tokens here. I need someone to use Fiddler's AutoResponder to test offline login and flashing. Please do not PM me with the password, if you have a bricked device, please try setting up Fiddler's AutoResponder to see if login works, and consequently flashing.

Request #1 User Login
Request
POST https://service-sg.myoppo.com/api/tools/login HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: MsmDownloadTool_v2.0.69_oneplus
Host: service-sg.myoppo.com
Content-Length: 853
Cache-Control: no-cache

app_id=TOOL&timestamp=1663686290&sign=3ba67700dd28f80f54fe341666c8a916&s_msg=VTYOEJTcFl0A7lBugQohN7hraQ69X2qfu4C1K4oCApYLcBMrC5w0HzQuHBAt%2FT7A
DY96zfMdbawA0JRFTNrYR1baZofuzfTX%2BkCmRqhOScNW6faPDPTQrmqlyUSbekLp
%2BcGuNyc4IJfn%2BlfyFIAtlglhda058cssD6bln6DyjBZwZxvBo9hCvTgughsX67IT
yYjXQ87rc%2Fua7mhsNs0bZi5UCx5il7CmF58gPOPOATKC6SV6Cwgl%2FpV1LMXV8E1%2F
P9BwdLFlQZinbdxLL3hsaGVlaOB%2B8n7P939bWcMZaSXZ4zdspxoT65j7t7oFtzte
SYsM7JqqawznCaYVzZGawaq9LHJOlkhi4eBCH632HhqA0DMIjj9Dvq8kRK%2Bg1ElM
2uIqq5Zl%2F9AQDxxlBLO%2B6l5SdyYjLaRgKQenCDfA9j9gJKb8TAlrenyc1vOQWf49
VHQCR4a2lizrvMgg%2BFM1dEPnAZQbRqK6zfY0sTjkQYxtu4%2FG4Ogn84eGX5Ttjb8k
IzjtGoVVyUEw2XeDyLyBfZIoNLB5w9n0mC0ZNrJtDlvsKnB1lwn4D783Q%2Bj%2BtK28
sYJW5g%2BtkWV%2Fzcz%2FBeOsx8zSmVWexlTDkDmCd6bC4LIZrOUqA8p6sZ0ylpWkVUTv
8PeTyYV7Zqsk1Ba3ZYnS3HpXh52d43pe49tNgl5gkUc%3D&s_msg_md_5=ff208e0ddfdb2e762c5f102f7fa8da95

Response
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 521
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
Date: Tue, 20 Sep 2022 15:04:51 GMT

{"Data":{"response":{"message":"0000","token":"db67f796-f52a-4e6a-9009-b5c862a11a0f","status":"0","countryname":"EG","usertype":"7","signData":"Y4/hX/0r6/eeIcIh8l4mZSEp0Q91t5ea3PS91BPc6DoRwY5wkIIVhDIMCE0bvtjf+eF2LvhpHGP6/YUmbxet7wpFXwU4O/816SJe6v/4PDGm5s6ea+uuGaJhuOR2l1cfwexuB8Avajk3LyWoz7K7rL3wsUEqvG5tPk+YR8yP+9Fpm1zJnVhxSBAZoPNVFXYNX1oh2wOPcTdK/DtDo9dKt0QCdbugC2nyT25S+Ax6e+FyqgHCWWIn6zqs29mU3R52wtdMdDk9LSkrpMsMakB/kDvyUOzqX66NrZYL48YOQtqj2q2tSwk6D+uWUw6jZPXgEKXsAAvklySi9KvJJMTyEA=="}},"ErrorCode":0,"Message":null}

Request #2 Second Stage Token Verification
Request
https://service-sg.myoppo.com/api/tools/cloud_validate HTTP/1.1
Content-Type: application/x-www-form-urlencoded
User-Agent: MsmDownloadTool_v2.0.69_oneplus
Host: service-sg.myoppo.com
Content-Length: 137
Cache-Control: no-cache

app_id=TOOL&timestamp=1663686291&sign=f74a758c15ae34fa098e4ec847ac3401&token=db67f796-f52a-4e6a-9009-b5c862a11a0f&random=aEkwJZYT6cd4COoL

Response
HTTP/1.1 200 OK
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 84
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.5
X-AspNet-Version: 4.0.30319
Date: Tue, 20 Sep 2022 15:04:53 GMT

{"Data":{"status":1,"message":"invalid","signData":""},"ErrorCode":0,"Message":null}
Can this crawl result be used to log in before?
 
Last edited by a moderator:

ues_t

Senior Member
Jul 16, 2022
74
20
If it can be used to log in, then I should provide it this way, because I don't want to spend a long time on setting up the device
 

evilhawk00

Senior Member
Feb 22, 2014
140
134
Taipei
play.google.com
OnePlus 8T
Any good news brother?
Done all the necessary setup part. Now the problem is the device owner hasn't managed to open the back glass. Have to wait until the test point exposes, don't know how long will it takes, maybe hours or even days. The device is hardbricked badly so it is only possible to enter EDL like that.

My original testing partner didn't show up as expected, but I already arranged my time for that so I changed my partner, but that's a terribly hardbricked device, so it can't boot or enter EDL by pressing buttons
 
Last edited:

badmaan

Senior Member
Jan 10, 2016
65
82
Istanbul
I have a bricked OnePlus 10 Pro which I can put into EDL mode via testpoints. PM me.
Screenshot_2022-09-27-01-30-39-519_com.miui.gallery.jpg
 

Attachments

  • Screenshot_2022-09-27-01-30-39-519_com.miui.gallery.jpg
    Screenshot_2022-09-27-01-30-39-519_com.miui.gallery.jpg
    1 MB · Views: 52

Dariukaslt93

Member
May 11, 2018
6
1
Hello. I've 9RT M2110 bricked and can get into EDl 9008 mode with volume and power buttons. But at the moment I'm at work and finish 22h UK time and around 22:30 would be at home.
 
  • Like
Reactions: metrixx02

Canuck Knarf

Senior Member
Dec 19, 2015
271
47
Google Pixel 6 Pro
OnePlus 10 Pro
Last edited:
  • Angry
Reactions: Savio Dantes

xuanhoang1811

Member
Sep 30, 2022
23
6
Why you taking back off ...no need to do that to get in edl mode...but I have done it that way and it was not needed to do.
This guy can help. You will see his Whatsapp phone number

Thanks for share his contact, that you haven't faced the situation that you cannot boot to edl with any buttons
 
  • Angry
Reactions: Savio Dantes

Canuck Knarf

Senior Member
Dec 19, 2015
271
47
Google Pixel 6 Pro
OnePlus 10 Pro
Thanks for share his contact, that you haven't faced the situation that you cannot boot to edl with any buttons
That's the thing every phone should be able to get to edl mode.
Hold all three buttons in have device manager open look and see what pops up under ports if you dont see 9008 pop up...That means you need to install Qualcomm USB drivers
 

Attachments

  • Qualcomm USB Driver V1.0.exe.zip
    20.1 MB · Views: 37

Top Liked Posts

  • There are no posts matching your filters.
  • 6
    ENOPTP000224
    M4Sl_j=zp_
    I don't know how long it will expire
    4
    hello, i've just get an msm account from guest. Did your phone fix and can i test it ?
    yoo guys shout out to this man for helping me unbricking me my phone. 5 months no reply for oneplus, he just solved it in one night only! thanks alot bro. 💯 @xuanhoang1811
    3
    its december and yet still no MSM tools to work around. my phone been dead for 5 month.
    3
    Maybe we should just give up, anyone that bought an OnePlus 10 Pro or 10T, and wants the freedom of a ROM scene.. OnePlus clearly doesn't want such a scene to exist as all of their steps (locking it down, and leaving devs in the dark.. no outreach that acknownledge how serious the situation they shaped is, etc) are indicative of that.

    Imagine creating such heavy security/anti cracking technologies, that to this day no one managed to fully reverse, understand and crack, just to stop the ROM development scene or at least heavily obstruct it. In essence it really is a fully aware, conscious, attack against the scene. OnePlus hereby chooses to lose the loyality of advanced users, even though in earlier years they had won their trust by profiling their brand as 'developer friendly, with active outreach and OSS promotion'. I wonder what motivates such strategy.. they dont want a ROM scene, for what.. maybe there is some next level China spying/data collection **** going on, or the chinese government may require them to implement that in the future? If people wipe out all traces of OxygenOS and install ROMs like LineageOS, taking back control of their devices (then just a piece of hardware that runs whatever they wish) to the fullest possible extent, they would no longer have the ability to keep collecting user data for commercial and/or nefarious purposes. Maybe they are not happy with being less in power of deploying such schemes, hence the attack against the development scene, and so much efforts to high-tech lock it down. Really, a huge budget and high level security developers/researchers/pentesting teams must have been allocated to lock it down as they did.

    My point is - OnePlus doesn't want us. How about we accept that, no longer want them, and leave. Sell our devices and pick a brand that's still development friendly and for which we can expect a newly released device to quickly be introduced within the ROM scene. I also don't want to be an user that's fully accustomed to all performance, privacy and usability benefits custom ROM's offered me in the past, now stuck with the pile of ** that is OxygenOS, for an indefinite amount of time. Using it hurts my feelings every day it takes more. It's also an insult to the powerful hardware of said device.

    Give up, move on. I am looking for Google Pixel, or maybe "Nothing" turns out to be as developer friendly as it seems to be looking to appear.
    3
    NOTE for god sake/or anyone you love if this time if anyone Share account then NOT CHANGE THE PW if you think you'll change PW and using only for your self OFCOURSE NOT THE ACCOUNT WILL BE BAN IN 10 MINUTES.
    Now i have one account and I'm using without changing it but its only for ENABLE ENGINEERING MODE for 24 HOURS.
  • 16
    Hello all, i am here to leak OPPO tech tool that allows one plus 10 pro to be flashed. Sadly i cannot share login but if you are able to bypass login screen the tool does not need to authenticate with server to flash device in EDL mode. Attached is screen shot of login screen and file. The tool picks up device in EDL mode and allows user to select the OPF file associated for device (please note you must have this downloaded externally ideally from msm tool for your device)

    I wish you luck bypassing this login and fixing your phones.


    flash.png
    12
    This tool seems to be intended for use with mediatek devices.
    I wouldn't bet on it working with this phone, but here's how to bypass the login screen anyway.

    Open DownloadTool.exe with a hex editor
    Find '74 4b 8d 45 d4'
    Replace '74 4b' with '90 90'
    Save, launch, enter any username/password/code and click login.
    If you go to 'Software Package Management', you can specify a folder where your .ofp is located.
    7
    I have a bricked OnePlus 10 Pro which I can put into EDL mode via testpoints. PM me.
    Screenshot_2022-09-27-01-30-39-519_com.miui.gallery.jpg
    6
    I almost figured out what is sent to the server during flashing. The flash tool sends "chip ID", "account token", and "Epoch timestamp" to server API which is server-domain/API/sign/ to query a signature for firehose and encrypt the query parameters with a public key. This info can be found in MSM download tool 2.0.6.9.

    If anyone want to see it yourself, simply get a debugger, such as, x64dbg with ScyllaHide plugin enabled, follow the assembly instructions to get to the OEP then dump PE from memory and fix import table to unpack it from VmProtect3.x. After unpacking the file, use a decompiler to run a PE static analysis, IDA Pro or Ghidra can both do it, search for "/API/sign/" from defined strings, from that you can locate the auth function for VIP signature. In that function, you can find a public key used to encrypt the queries, and also two variables, one is "account token", the other one is "Chip ID". Chip ID is unique for every device, which may be a issue.

    I haven't done a full analysis with the tool, not being sure if there's a timestamp protection on it. But I still strongly suggest who is able to flash with auth remember to capture the signature for your device, so you might not need a auth in future because your Chip ID is always yours.
    6
    I'm sorry for the late response. I was busy at work last week.
    Do you know who may have an example to go with? How long is the signature? There must be some form of checking within the msm tool to verify the signature is valid. Is it key based or algorithm based? If it's algorithm based, maybe we can use the validation function in the msm tool to figure out how it is checking and create valid signatures. Setting up a server locally to trick the device into thinking it's contacting OnePlus would be the easy part.

    Has anyone found examples of these logged signatures or know more about their calculation? HW serial based, HW ID based, device MAC based, IMEI based (unlikely)?

    Knowing what is sent to the server and what is received could also help. Does anyone have a full exchange of the https logs somewhere to go over?
    Yes, thanks to @hackslash, there's an example of the signature for ChipID: b73e685e(for the API authserver_domain/api/tools/sign)

    Code:
    {"Data":{"response":{"encrypt":"ct5/f+RsW/3p2vhIp2EduoMJ8kfKk2iNbF+eTExuGsOicfvILFTKY/+qF0WxSEcREt3m7YSABbEwCRU4aWaJqoppx2du60hW6OhTYbaL+51JXr5byRQjqqhtwJ1VfFZ66U3EuZXidJVW6TjV1u09fgt5MT11zSwZzbpkrBg1UQruJi8wGrjtMnq0mbgno1H01QRnMY+GKN9UqZVrXGAdCRJm8T8Ysn5P1mnIOVwhuJZSkq6z7WH9RhyM1oJuURquvZEt/TP9vQda1/fNn0txtzu+ZWkuuou23zYulXhkmtDTp5D4LtdZ8VlAkakq8UowHv3tlW7lZMb52fY8QjF/zw==","message":"0000","status":"0","unlock":"","isAllowDegraded":false}},"ErrorCode":0,"Message":null}

    If you use Ghidra to do a static analysis with unpacked downloadtool.exe(first use a debugger to unpack vmprotect3.x),locate the defined string data "/api/tools/sign", you'll find a public key hardcoded in the tool to encrypt the HTTPS query to the server. All the transmissions are encrypted, but I don't even want to think about decrypting them because there's a ChipID problem.


    The signature can be fed to the tool, but it doesn't work for other devices. For example, here's the download tool log for the device with the correct ChipID:

    Code:
    ...
    [COM51] Set Sahara file ok sahara file: prog_firehose_ddr.elf.
    [COM51] Attempting to send a Sahara message for communication
    [COM51] Downloading Firehose protocol file via Sahara protocol
    [COM51] Sahara communication succeeded
    [COM51] filename=ChainedTableOfDigests_20847_persist_no_userdata_yes
    [COM51] Trying to handshake via Firehose communication
    [COM51] Configure the settings of Firehose communication data transmission
    [COM51] Get sign data
    [COM51] ID:b73e685e, B:enable
    [COM51] old_sw_name_sign:261fe06798cff432e5512eaa5339f797f2f213eaa739ddeea7f0985a048fe9e3, new_sw_name_sign:261fe06798cff432e5512eaa5339f797f2f213eaa739ddeea7f0985a048fe9e3
    [COM51] Verify Data
    [COM51] Verify pass
    [COM51] Upload download result. chip id: b73e685e, result: -1, project: 20847
    [COM51] Upload download result failed.
    [COM51] Check the models and software
    [COM51] Start erase
    [COM51] Erasing the partition BackupGPT
    [COM51] Erasing the partition PrimaryGPT/LUN1
    [COM51] Erasing the partition BackupGPT
    [COM51] Erasing the partition PrimaryGPT/LUN5
    [COM51] Erasing the partition BackupGPT
    [COM51] Erasing the partition PrimaryGPT/LUN4
    [COM51] Erasing the partition BackupGPT
    [COM51] Erasing the partition PrimaryGPT/LUN2
    [COM51] Erasing the partition BackupGPT
    [COM51] Erasing the partition PrimaryGPT/LUN0
    [COM51] Erasing the partition userdata
    [COM51] Download OCDT
    [COM51] brand is oplus, cdtdownloadstatus is 0, ufs = 1
    [COM51] Downloading ddr, zeros_5sectors.bin...
    ...

    And here's the download tool log for the device with the mismatch ChipID(using the obtained signature to feed another device) :

    Code:
    ...
    [COM51] Set Sahara file ok sahara file: prog_firehose_ddr.elf.
    [COM51] Attempting to send a Sahara message for communication
    [COM51] Downloading Firehose protocol file via Sahara protocol
    [COM51] Sahara communication succeeded
    [COM51] filename=ChainedTableOfDigests_20846_persist_no_userdata_yes
    [COM51] Trying to handshake via Firehose communication
    [COM51] Configure the settings of Firehose communication data transmission
    [COM51] Get sign data
    [COM51] ID:b73e685e, B:enable
    [COM51] old_sw_name_sign:261fe06798cff432e5512eaa5339f797f2f213eaa739ddeea7f0985a048fe9e3, new_sw_name_sign:9d975a304cf3d7d1f9f7ed402297996d7c457aea71fd0a5c2dc6278b68cde27c
    [COM51] Verify Data
    [COM51] FirehoseCheckRSP is ERROR, hr=1
    [COM51] Rsp:
     <?xml version="1.0" encoding="UTF-8" ?>
    <data>
    <log value="ERROR: verify failed." /></data><?xml version="1.0" encoding="UTF-8" ?>
    <data>
    <response value="NAK" rawmode="false" /></data>
    [COM51] Verify pass
    [COM51] Current download task end,elapsed time:7s.
    [COM51] Upload download result. chip id: b73e685e, result: 1, project: 20846
    [COM51] Upload download result failed.
    [COM51] Close the serial device
    [COM51] Download failed
    [COM51] Determine whether to upload the download info
    [COM51] compress file, retry time is 4
    [COM51] compress file success
    [COM51] start to upload
    [COM51] upload success
    [COM51] Stop timer
    End log...

    As you can see, the device only accepts signed packets, and the signature is somehow related to ChipID. Anyone can simply use the hex-patched tool to try flashing your device, you'll see your ChipID in the log generated by the download tool.

    At this point, I think the only solution is that the user has to at least pay to flash their device once to capture the signature for their device. And here's the hardest point, a lot of sellers check for packet capture software during the session. Yes, this can be bypassed via a rootkit(If you don't know how to program a simple hooking rootkit with Microsoft Detours, you can simply find some rootkit source code from hackforums or buy some rootkit source code from the dark web hacker sellers, then modify the code and compile it yourself) I believe that most users will fail to capture their device signature for EDL after being detected by the remote tech due to the lack for specific knowledge. By the way, can the captured signature with the same ChipId be reused on the same device? Please be aware, this is still unconfirmed! But I think it is highly possible that it can work for the same device every time.


    But after seeing that @OppoTech123 is willing to help the community, I think maybe there's a chance that @OppoTech123 can help some developers to capture their device signature to boost the custom ROM development. But be aware that during the capture, the temporarily assigned token after logging in can also be captured, however, these tokens quickly expired in a short time. It doesn't expire for login but expires for querying signatures, not sure if it's related to OTP or if the account holder can log out from another place, be sure to protect your credits if querying a signature charge the tech some credits.


    Is there a way to alter the ID on the device? Even if it's temporary?
    I don't think so. Maybe there's an internal Qualcomm development tool that can do that, but I definitely don't have it.