[Galaxy S I9000 Android Development] spospi:
I have a successful story to share of running the latest EU Froyo roms on a Galaxy S with Optus. The end result is a perfectly functioning phone running an i9000XXJPO rom, able to use MMS, 3G and the Marketplace, all of which I have seen numerous reports of difficulty with.

This guide is intended for people on Optus, but is mostly the same for those on other networks as almost all the steps are identical, with the exception of CSC files (which are available for other operators at the link provided) and the optional installation of the Optus MyAccount app. I imagine the same process is applicable to any other current or future update roms from overseas carriers as well.

Hopefully this is useful to a few people - it would be good to have all the information in the once place seeing as the documentation on this kind of stuff is sparse, and scattered uselessly throughout various forum threads on a million boards. Just thought I should share the information before it's forgotten (:

Requirements

Ensure you have the latest drivers

Samsung Mobile Driver 1.3.800

I have had plenty of issues with the Galaxy and Kies under Win7 64-bit. If you are running another operating system you may not have to bother with this step, but I'd always recommend latest drivers anyway. As of the time of this writing, the *only* driver I've had any luck with is 1.3.800, the earlier ones that ship with Kies (and even the subsequent first update) suffer from USB connection recognition problems and missing device drivers and all sorts of annoyances.

Grab latest Odin3

Odin 3 v1.3

Don't use 1.0, it's a flaky and awful thing and you might take 14 attempts to get a successful flash before you go looking for 1.3, like I did. Not that it really matters, these things are impossible to brick. I even had my pc go into standby and disconnect the USB halfway through flashing once and it just held out its arms for another go.

Grab the required firmwares and .pit files

A fantastic list (with downloads) on this page: http://www.samfirmware.com/WEBPROTECT-i9000.htm

You have to register but apparently it doesn't mind bugmenot accounts much. My best build runs the I9000XXJPO rom, which is the latest XX UK stock rom available at time of writing. I had better luck with this than with XW variants, but your mileage may vary. Flashing to Froyo requires two steps, however, so we must also get the UK Eclair I9000XWJM8 rom to flash to first.

The .pit files you need are also on that page, although we don't need the middle version for our purposes, only s1_odin_20100512.pit and s1_odin_20100803.pit

For root access, you should grab the equivalent kernel replacement rom from this thread. I found the update.zip method was very unreliable and often wouldn't allow the process, so flashing a new kernel is a much simpler and easier solution in the end. For our JPO rom we of course want CF-Root-XX_XEU_JPO-v1.2-Busybox-1.17.1.

Get carrier-specific code (CSC) rom

This thread has a list of CSCs for different operators, with download links. The one relevant to our JPO rom is CSC_I9000OPSJG1.

This is the step that will save you a lot of hassle. Doing this preconfigures your phone to your operator - imagine how surprised I was to turn on my new UK phone only to have it automatically setup for Optus' internet and MMS?

Grab (or backup) any important APKs

One-Click-Lagfix 2.2.8 is something you should definitely install and do after flashing. My quadrant benchmark is at 1850 under normal operations (meaning, without killing all my background apps, tasks etc) with this applied, which I am pretty happy with for the simplicity of this fix. Note that doing this requires a rooted phone, so don't skip that step if you plan on lagfixing.

If you're with them, you might also want Optus' MyAccount app, which is the only piece of bloat they put on there that I actually found useful.

How-to

Step 1: Backup your stuff, and ensure your phone can connect to your pc

Use whatever backup app you prefer to save your APKs, application data and user data. Personally I use MyBackup Pro, but I hear good things about Titanium Backup. MyBackup requires root access in order to restore application settings, which I was mildly surprised about even though it makes total sense considering where it has to save those files. I'm not sure about Titanium but I imagine it would be the same.

If you've just installed drivers, connect your phone, make sure it is recognised, eject and disconnect it and then reboot.

Step 2: Ream your phone

Pull your sim card and SD card out, as leaving those in will cause the whole process to fail. I performed several flashes before reading a thread that warned me of this.

Step 3: Get ready

Hold down volume down, home and the power button when you turn your phone on and it should be in download mode, showing a big angry exclamation mark. Extract all the files you just downloaded somewhere, ready to be used. Open Odin3 on your PC.

Step 4: Flash Eclair rom

Don't change any of the settings in Odin3, except to set the following:

Re-Partition:	on

PIT:	s1_odin_20100512.pit

PDA:	CODE_I9000XWJM8.tar.md5	(from I9000XWJM8 rom archive)

PHONE:	MODEM_I9000XXJM4.tar.md5	(from I9000XWJM8 rom archive)

CSC:	CSC_I9000OPSJG1.tar.md5	(or your own CSC rom)

Hit 'Start' and wait for things to finish. Your phone should eventually reboot, scroll some yellow text up the screen and then start up. Do NOT unplug it until you get into a working desktop. If it fails, just pull out the USB, pull your phone's battery and put it back in download mode, then restart Odin3 and try again.

Step 5: Flash Froyo rom

Close and reopen Odin3, and set the following:

Re-partition:	off (no change)

PIT:	s1_odin_20100803.pit

PDA:	JPO_JPO_U_JPP.tar	(I9000XXJPO rom file)

Hit 'Start' as for step 4. This shouldn't take quite as long as the first time round since it's only upgrading the PDA firmware. If it fails now, however, you'll have to start with an Eclair rom again.

Step 6 (optional): Flash root-enabled kernel

Re-partition:	off (no change)

PIT:	none (no change)

PDA:	CF-Root-XX_XEU_JPO-v1.2-Busybox-1.17.1.tar

Repeat the flashing process one more time. This should only take a second, since it's just replacing the kernel.

Step 7: Restore data, apply lagfix etc

That's about it, really... just restore your data in whatever way you prefer and run those APK's for the lagfix and MyAccount. You now have a beautifully working Froyo Galaxy S running in Australia!

I've been running this now for 5 days, no problems whatsoever. A friend (also on Optus) followed the same process and is having the same level of success. I'd like to point out that the gain in battery life alone is well worth the upgrade, I've gone from 60-70% drain during a day at the office with Eclair down to 20-25%, pretty good! But best of all it's stock firmware so you don't have to have Optus' ****ty smiley button on the keyboard :D