Alan is the founder of project mjanja. He has been developing for several devices, among them some in the Samsung Galaxy family. as usual with devs, he flashed a lot of stuff in the Galaxy S I9000. Eventually something gave up. The phone was hard-bricked. Having known me for a hardware guy, mostly just talks, he handed me his phone. We both thought i’ll probably re-use the screen… i wanted to try and resurrect it to full functionality though. The first thing from googling that I landed on was the Riffbox solution. I couldnt find anyone within Nairobi with a riffbox to borrow from, and since i was travelling in a few days, i thought i might just get it here. So i am in Lund now for like 3 weeks and no one with a riffbox and am so busy. I checked online and was almost ordering one when I stumbled upon yet another interesting video by Adam Outler on his i9000 Development Platform, AKA UnBrickable Mod and Software Based Resurrection post. He actually unbricked a phone in the video so i got interested. I read the thread like twice before fully making up my mind to try the hack. But all the software tools are provided… why not? so today(22nd Nov,2012) I decided it was the day to do it. One of the corrections i thought i was going to make before starting was to rename the whole thing in my mind, software based resurrection to ‘hardware and software based resurrection’.
This is because the kind of soldering required here is quite incredible for it to be just a software hack. Just a few points yeah, move a resistor from one location to another, or remove it and solder a wire bridge but the resistor is so small and the soldering pads are at a tight location.I looked for a brand new solder tip, some flux and tweezers. I opened up the phone removed the EM shield. I then proceeded to a lab with a solder rework station. I removed the xOM5 resistor and tried to remount it at the lower position using the hot air tool. That didn’t work out, but i had prepared for that with a plan B, the fuse. It was time to break the glass. I got hold of the wire, made a small loop out of it, mine didn’t actually have coating on it so I had to go to the trouble of wrapping it nicely with some thin insulating tape, which also kinda helped with the grabbing in position, a little solder on both ends and used some slim tweezers to hold it in place. I soldered the damn thing carefully. it took quite sometime to get the right position and be able to reach the pads with the tip of the soldering iron. i have never tried anything like it. I couldn’t make it to solder it on the xOM0 so I used the xOM3 pad instead, it was given as an option.
If you are good at soldering surface mount zero ohm resistor like that, i’d recommend the remount of the same resistor. I had spare resistors but they were a bigger size that couldnt fit. The image below gives you a clear picture of where the pads and the resistors are. Somthing worth mentioning is, this is a permanent fix. The only thing that changes is the way the phone boots. for a normal boot, you press and hold the power button for 5 seconds. the 3 buttons work too, so not a really big issue.
And so it was time for the software resurrection. I love what Adam and his team have done. There are two very useful tools that they have for this kind of work. First is the UnBrickable Resurrector which shows you the mode which your device is in currently, and it will resurrect those in “UnBrickable Debug mode” with a single click. Before you get confused, you put your device in UnBrickable Debug mode by doing the hardware modification.
When you run this tool, the UnBrickable Resurrector, without plugging the phone to the USB, it will show a message “Device not found, no device detected” as illustrated on the XDA post. If you remove the battery, return it and plug in the phone while the tool is still running, for a period of just two seconds, you’ll see it change to the S5PC110 SEC SoC mode, with a message “S5PC110 UnBrickable mode”. immediately after the 2 seconds, it goes back to the message “device not found”. Because it will take more than 2 seconds to click the “Download mode” button on the tool and enter password as it requires root privileged to run, its obviously makes sense to click the button and enter the password then plug in the phone and within the 2 seconds, press enter key. What is happening here is that the boot sequence of the phone starts with a boot from UART which waits for commands for 2 seconds, then proceeds with a boot from USB. The tool utilizes the UART boot to write to the device and put it in download mode. That was the tricky bit.
“The HIBL contains a signed portion of code which authenticates with the Hummingbird processor. The HIBL also contains instructions to download unsecured code via USB and attaches the new code into the booting sequence. For most devices, a hardware modification will be required to utilize this booting sequence” This information is given at the home of the project source. This is the stuff that makes this resurrector work.
The other tool is the Heimdall One-Click used to flash bootloaders. So the first time it never works, as explained in the XDA post by Adam, and in the video. I just did it again and the rest was just to go with it.
Here are some pics: