[Nexus S Android Development] AdamOutler:
Wow... Sure has taken enough time to get this one...

introduction

I'm not kidding when I say UnBrickable. Modifying the OM pins means you can boot from USB, UART or MMC. This makes the phone quite UNBRICKABLE. There is nothing you can do software wise to prevent the device from booting into this mode. We are communicating with the unrewritable, efused IROM on the processor. It's the thing that makes the system on a chip into a "system on a chip".I am here now to tell you how to turn your Nexus S into a KIT-S5PC110 development board. The KIT-S5PC110 development board is the platform used to develop our phones. There are some differences between this mod and the official development platform. The S5PC110 has a removable internal SDCard and no touchscreen.

Why would you want to do this? When you plug in the battery and connect it to the computer in "off" mode, it will become an S5PC110 board awaiting download of a program to run. This occurs long before anything like software or firmware enters the processor. This is the IROM of the device awaiting commands or a power on signal.

Because it is accepting a memory flash, anything may be put onto the device to perform a boot sequence..... Apple iOS (iPhone4 has the same processor) WP7 (mango supports this processor).

I was not working with a fully operational unit when I developed this modification so I was not able to test everything... However, it did go into Fastboot and Recovery mode from a hard brick :)

How could it possibly be better then JTAG? Let's count the ways....

1. The only part required is a wire.

2. No shipping time.

3. No cost for a box to interface the computer.

4. Permanent.

5. Can be done as a preventive measure.

6. Gives the ability to test new Bootloaders temporarily.

7. Allows development of the entire system.

8. Removes worry about flashing and acts as a backup.

After performing this mod:

Remove the battery, replace the battery, your phone will connect to the computer via USB and await commands. Otherwise it will pretty much act like a Nexus S. See the Special Instructions section.

Modification

You will need:

1. Get someone who knows what they're doing with a soldering iron. If they don't know what flux is, then they don't know what they're doing. You can send me a PM(or email my username@gmail.com) or Connexion2005(aka MobileTechVideos.com).

2. soldering iron - make sure it's sharp, if it's not sharp, then sharpen it, flux it and retin it.

3. flux

4. solder

5. tweezers

6. A relay (possibly- for the wire within to use as a bridge)

performing the modification:

1. tear apart your phone... Make sure to take out your SIM before you do this.

1A. Remove the screws.

1B. Separate the top case from the bottom case

1C. disconnect the display connector and free the camera and button assemblies from the case.

1D. Remove the mainboard

Here's the area we're working with

2. Perform the mod as follows: Replace the xOM5 resistor from the top position to the bottom position.

*OR: remove the xOM5 resistor and jumper the center pads of xOM5 to the center pads of xOM0 or xOM3... I was not able to flash a complete firmware package to this device because it had a MMC failure, so I'm not able to tell you which point is which.

3. reassemble the phone.

4. Use the UnBrickable Resurrector to resurrect your device

See here for instructions on using the UnBrickable Resurrector with your UnBrickable device: http://xdaforums.com/showthread.php?t=1397393

Special Instructions

This replaces the battery charging sequence. The normal battery charging sequence can be activated by holding power for 4 seconds.

To turn on the device, and operate in normal mode, you must hold the power button for 5 seconds.

3 button Download mode works as usual, however you must not have the S5PC110 drivers installed on the computer. You can use your custom rom menu option, adb reboot download, or use a terminal to "reboot download". 301Kohm Factory Mode JIGs work as well, but you must press power to bypass the S5PC110 mode.

To enter recovery mod, press and hold power for 3 seconds, then hold volume+ and volume- until the screen comes on then release.

Conclusion

Congratulations. You now have a device which works like a KIT-S5PC110 with an OM Value of 29. Now get to developing some serious custom software. See here for setting up the UART output http://xdaforums.com/showthread.php?t=1235219

reading material

Creating your own Samsung Bootloaders: http://xdaforums.com/showthread.php?t=1233273

KIT-S5PC110 manual: http://www.mediafire.com/?94krzvvxksvmuxh

how to use DNW: http://tinyurl.com/dnw-how-to

Flash using openOCD and DNW: http://www.arm9board.net/wiki/index.php?title=Flash_using_OpenOCD_and_DNW

another DNW example: http://www.boardset.com/products/mv6410.php

ODroid dev center: http://dev.odroid.com/projects/uboot/wiki/#s-7.2

drivers and utilities

This will be an ever expanding list

Windows Drivers http://xdaforums.com/attachment.php?attachmentid=678937&d=1312590673

Windows Download Tool DNW: http://xdaforums.com/attachment.php?attachmentid=678938&d=1312590673

Windows Command Line Download Tool: http://xdaforums.com/showpost.php?p=17202523&postcount=27

Linux DNW Utility: http://dev.odroid.com/projects/uboot/wiki/#s-7.2

firmware

Official Nexus ROMs: http://code.google.com/android/nexus/images.html

One-Click Resurrector: http://xdaforums.com/attachment.php?attachmentid=705515&d=1314762609

Bootloader Hello World by Rebellos http://xdaforums.com/attachment.php?attachmentid=698077&d=1314105521