-
Notifications
You must be signed in to change notification settings - Fork 17
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
I9300 with Firmware XXUGNG3 #9
Comments
Protocol initialization failed - it's even before anything interesting happened. You probably tried to run the exploit twice and the protocol is already initialized... Reboot the phone and try again. |
I got a similar result when I ran --dump twice without rebooting yesterday. Since then, I am rebooting the phone before every try. I tried it with SD card and without, but the result is similar, which makes me think that the sboot on the phone should be intact. I also diffed the dumped firmwares and the differences (which cause the different hashes) seem to occur very late within the files. One thing I am not so sure of is the micro-usb cable (tried already different ones), but as the dump worked and the phone is listed within lsusb I think that should be ok too. Is there a fundamental difference in the protocol between |
No, there's no fundamental difference. This is the normal Odin protocol initialization. |
I am not sure what caused it, but it seems after you latest commit the script progresses a step further. Meanwhile, I double checked the cable and tried the procedure with different Linux distributions (Arch, Exherbo and Kubuntu Live CD). I doubt that my USB-Ports are related to the issues I had yesterday, as I use the same for flashing ROMs. Anyway, when I start a similar command as yesterday, I get the following output now:
Judging from the output I would say that the connection works now, but it looks to me as if the function Fun fact: After the script fails, the phone reboots and when it is back again, the download mode screen actually draws a normal download mode image ;-) |
Hi @arendtio, the same think happens to me ( |
Hi @Badel2, do you know an easier way to find out which chip the phone actually uses than to open it? So far I didn't check which version of the chip my phones use. |
Yes, I'm working on it right now. You need to dump the memory arround the arena (0x440e8090 in my case), and
(that's assuming the device doesn't boot, if it works just run this command as root using a terminal app or adb):
|
@arendtio I just increased the sboot area that is being searched for mmc_dev. Please try it now. |
@oranav Thanks :-) with my good/working phone it seems to work now 👍
That phone has a VTU00M according to However, my broken phone still doesn't work:
I still haven't found out which chip it actually uses. I tried reading a very large dump by modifying the
Maybe I should just open the broken device. Any advice on that? |
AFAIK zeroes usually mean the eMMC is bricked, i.e. can't boot into normal mode, since only after the eMMC boots it tells the host which chip it is. The error you encounter is still related to the mmc_dev heuristic. However it is strange that it works on one device but not on the other. Can you send me your 17MB dump? |
@oranav I sent you both large_dump files via email. Just to clarify: the 'working' phone doesn't have any emmc issues, which might explain why it reports its chip name. It just runs as it should on Lineage OS. |
@arendtio Thank you, I did find an issue with the mmc_dev heuristic. Please try it again now? |
I tried your new version and it looks like the heuristic works now :-) Sadly something else seems to be broken. Short version:
Full log: failed_attempts.log I am not quite sure what this is supposed to mean, but all those failed reads are certainly not a good sign. Do you have an idea what status -19 is about? |
I just took a look at the shellcode for |
Yes, it means timeout. |
There is one thing I am wondering: If it is a timeout, is there some way to control the duration until the timeout occurs? As I wrote earlier, the broken phone takes about 40 seconds to boot into download mode, which I find kinda odd too and maybe it just takes a few seconds or so to acknowledge the knock sequence. |
It should be possible by patching sboot's implementation. I actually did not implement the eMMC stack but instead just reused the sboot one (out of pure laziness 😉). I will look into it in the next few days. But please be advised that if it takes about 40 seconds to boot into download mode, I suspect something else is going on (and not the usual eMMC brick bug I know about). |
Semi worked on mine with I9300XXUGND5 sboot. I get:
and apropriate messagess on phone screen but it hangs on "erasing all blocks on eMMC (low-level format)" for couple minutes now. Previous board i tried (that i bricked intentionally and booted from SD) didn't take that long. It timed out eventually and with -v i see this, continuing:
I repeated the process, used different firmware file and eventually bricked the phone so it doesn't boot into download mode anymore. This allowed me to boot from SD with XXELLA sboot and use older toolbox to upgrade eMMC firmware with same firmware as in first try. Phone flashed fine and seems to be working when previously had "re-Partition operation failed". What's still missing is an option to backup EFS before firmware update. EFS can be rebuilt but without proper certificate phone is doomed to have a patched modem to work properly. |
@arcaine2 Did everything in the shellcode feel "slower" than usual when you tried with I9300XXUGND5? This could be explained if I misidentify the sleep() function (it's also done by a simple heuristic). |
A bit, compared to earlier version that worked only with XXELLA but not by much. I also think that i bricked it by unplugging the phone while it was on "erasing all blocks". I may have not waited long enough second time when i saw more messages like "read 2 bytes failed" (this time 2 bytes instead of 42). |
Unplugging during "Erasing all blocks" should generally be fine (take it with a grain of salt), since I should be able to recover every phone (as long as the hardware is still intact). |
If you have a s3 that doesn't work with the shellcode try my fork, i have a solution, I have a full website guide with windows instructions also. https://theandroid02.github.io/i9300-EMMC-GUIDE/ |
I just tried the new version which should not rely on XXELLA anymore, but had no luck. I have two S3 (I9300) phones here, one working fine, the other one is broken. Judging from the dumped firmwares, both are running
XXUGNG3
(strings SBOOT | grep I9300
).When I take the broken phone, start it in download mode, it takes about 40 seconds with a black screen until I can see sprinkles on the screen and the following line in lsusb:
Up to that point I think everything is working fine and running the
--dump
command worked yesterday just fine. But when I try any other command than the--dump
command I end up with the following:Any ideas?
The text was updated successfully, but these errors were encountered: