EDIT - THE FILES I ORIGINALLY LINKED TO IN THIS TUTORIAL WERE HOSTED ON MULTIUPLOAD.COM - THE FBI HAVE NOW SHUT THAT SITE DOWN SO THE LINKS WON'T WORK ANYMORE. SORRY.
THIS TUTORIAL IS FOR i9000 HANDSETS ONLY. (That means 1st generation Galaxy S, NOT GALAXY S2, NOT GALAXY VIBRANT, NOT GALAXY ACE etc...)
This tutorial is in response to a number of requests about upgrading to FroYo (Android 2.2) from Eclair (Android 2.1) using Odin. Using this method will flash a standard FroYo installation to your phone, devoid of any bloatware that is added by network providers.
As I am based in the UK, this tutorial is really for UK users. However, the same version of FroYo is being released all around Europe with the exception of the Nordic regions ( Denmark, Finland, Iceland, Norway, Sweden, The Faroe Islands, Greenland, Svalbard and Åland). If you are from the Nordic area then you should be aiming for a JPA firmware, but the principle is the same. Note also, that you should be on JM1, JM2, JG1, JF1 etc... to use this tutorial. If you are on JPA or JPM firmware already then check out my OTHER THREAD HERE. Find your existing firmware version by dialing *#1234# on your phone, and looking at the PDA version. While you are looking at that screen, check that you have valid values for all three areas. If any of them (PDA, PHONE or CSC) start with anything other than "I9000" or have the word "unknown" in them then there is a very high chance you will have some sort of trouble with this flash.
Update : It has been confirmed by MariosX that the Greek language for text input isn't supported by the CSC file included with this tutorial. The locale option is there (you can have your menus and options in Greek) but actual text input support isn't included.
Bootloader - Flashing this firmware won't touch the bootloader part of your existing firmware. This is intentional. The bootloader is where the code sits that allows recovery mode/download mode to work the way it does. If your Recovery Mode doesn't work now, it won't work after flashing this ROM, there is a separate guide available for sorting that out
OK, first some disclaimers...
Flashing firmware using any method (even Kies) always contains a slight inherent risk and I, nor anyone on this forum can or will be held responsible if things go wrong. By following this - or any of my tutorials - you are agreeing to this. Having said that, the only incident I have heard of when something went wrong is when the guy unplugged the USB cable mid-flash - go figure
By installing this firmware there is a very good chance that you are invalidating any warranty you have on your phone, whether it be on a contract or bought outright. While firmware flashing is by no means illegal, Samsung don't really like us doing it, and the network providers sure as hell don't. But if they weren't so slow at dishing out updates and didn't fill them with bloatware we wouldn't do it, right ?
Finally, I highly recommend you do some research on Rooting, grab an app that can access files on your phone at the Root level, and backup the /efs folder and all its contents. This contains important data that is unique to your phone and it will be invaluable should things go horrendously wrong. While this isn't an essential step in this guide, I really want you to back that folder up first unless you like to live life on the edge.
OK, so that's all the pseudo-legal crap out of the way, now onto the 2 golden rules of firmware flashing..
1) If you can't use the 3-button boot to get to recovery mode, don't do this. Seriously. Recovery mode will save your ass if you bugger something up. I will explain how to get to recovery mode in a sec...
2) If you have applied a "lagfix" - no matter which one it is - remove it before doing this. Lagfixes alter the file system. If you flash a new firmware that is expecting to see 'File system A' and you've changed it to 'File system B' then all hell can break loose. Remove the lagfix before flashing. You have been warned!
Another important tip - make sure your battery is charged to above 75% before doing the flash, even higher if possible.
This flash requires that you have working windows Android drivers installed. Basically, if you can use your PC to browse your phone, or if Kies works for you, you should be fine.
Checking if you can get to recovery mode using the 3-button boot combination.
Turn off your phone and give it time to shut down completely. Now hold the Volume Up button as well as the Home button and then the Power button. As soon as you see the White "I9000" logo, release the Power button but keep the other two held in. When you see some coloured text start to scroll up the screen, release all the buttons. You can move up and down through the options using the Volume Up and Down buttons, and using the Home button to select your chosen option. For now, just choose "reboot system". This will restart your phone.
If you can't get into recovery mode this way, don't attempt this flash. There is a chance that you won't need recovery mode, but I STRONGLY advise not taking the risk. If you think flashing this new firmware will make your recovery mode start working - it won't. As stated earlier, this flash won't touch the bootloader. If you want to get your 3 button recovery mode working, CHECK OUT THIS THREAD.
OK, pre-requisites. You will need to download a number of files before you start. It's best to get them all downloaded and uncompressed and ready to use before you actually need them, so here goes...
GRAB WINRAR FROM HERE - You will need to grab this and install it before you carry on. That link will get you the demo version but it will be fine for what we are doing here.
GRAB ODIN FROM HERE - This is the program you will use to actually flash the firmware onto your phone. If you have installed WinRAR properly from the previous step, you should be able to double click on the downloaded file to uncompress it. It should contain Odin, a configuration file, and a pit file called "s1_odin_20100803.pit". There is no need to install Odin like you did with WinRar, it is a standalone program.
OK, next up you will need another pit file, GRAB THIS FROM HERE. This one will be called "s1_odin_20100512.pit".
OK, next you will need some firmware files, two lots in fact. I will explain why later, but for now, just download them...
GRAB THE JM8 FIRMWARE HERE. When you have downloaded it, uncompress it and save it somewhere safe. The file will be encrypted, the password is "samfirmware.com". This will uncompress into 2 seperate files, one called "CODE_I9000XWJM8.tar" and the other called "MODEM_I9000XXJM4.tar".
Now GRAB THE JPO CODE AND MODEM FIRMWARE HERE and then GRAB THE JPO CSC FIRMWARE HERE.
Uncompress those two files and they should give you the following three files (yes three, again one of those expands into two when you uncompress it)...
OK checklist time. You should have all this stuff downloaded, uncompressed and ready to use...
- Odin3 v1.3
Now you might have been wondering why you needed the Eclair JM8 firmware if you want to flash FroYo JPO on to your phone. Well Kies formats certain things within the hardware of the phone as it flashes a new firmware. Odin can't do that, so we need to flash to JM8 first, in order to prepare it for the JPO firmware. It sounds dodgy, but trust me you don't want to flash JPO straight on top of a JM1 (or any other) firmware.
So, onto the flashing
Turn your phone off now, and unplug it from the USB cable. It might be wise to remove your SIM card and external SD card now. This isn't essential but it can't hurt
Right-click on the Odin file and choose "Run as Administrator". This will start up Odin. Now we need to add some files, and set some stuff up. First, make sure there are ticks in the "Re-partition", "Auto Reboot" and "F.Reset Time" boxes. Do NOT tick "Dump" , "Phone EFS Clear" or "Phone Bootloader Update" - very important.
Now click on the PIT button and a browse dialogue will open. Navigate to the area you stored all your downloaded stuff from earlier and select the "s1_odin_20100512.pit" file.
Now click the PDA button and select the "CODE_I9000XWJM8.tar" file from earlier.
Now click the PHONE button and select the "MODEM_I9000XXJM4.tar" file.
Now you need to start your phone in download mode. To do this press and hold the VOLUME DOWN, HOME and POWER buttons together, and you should see the picture of the Android on a yellow triangle with the message ""Downloading... Do not turn off Target!!!" below it. Now plug the phone into the USB cable, and Odin should assign it a comms port which will be highlighted in yellow. It won't matter which port it is, as long as it assigns it one. If it doesn't, then you have a problem with your windows drivers and you cannot continue. You will need to remove the battery from your phone to get out of download mode.
So if everything went to plan, your Odin screen should look just like this (maybe with a different port in Yellow)...
Make sure all the ticked boxes match the ones in that image.
Take a big gulp of air, hold your breath and click the start button
As the flash happens, you will see a Green progress bar making it's way across the screen in Odin. At the same time, a Blue progress bar will be showing on your phone. IT IS IMPERATIVE THAT YOU DON'T DISTURB THIS PROCESS. Do not unplug the phone, press any buttons, touch the PC, don't do anything. Don't even fart.
OK, hopefully the flash has completed without issue and the phone has rebooted*. Odin says "PASS!" and you can breath again (and let out any other bodily gasses)
*NOTE: some people are reporting an error on bootup which looks something like this: "E: can't mount /dev/block/stl11 (invalid argument)". Now this happens for some people, and not for others. It's to do with partitioning and the missing CSC file from the first part of the flash. Thankfully, it's not too serious. So far, everyone has been able to just select "reboot" from the menu and carry on as if nothing went wrong.
Now let the phone boot fully - it will take a lot longer than usual to boot. Let it scan the media and everything. After you've let it boot up fully, unplug it from the USB and turn it off. Don't bother setting anything up because now we are about to flash to FroYo
Close Odin down, then start it up again by right-clicking it and choosing "Run as Adminstrator". Now we need to set Odin up slightly differently, and again it's very important that you get these settings exactly right.
First, make sure the only boxes ticked are "Auto Reboot" and "F.Reset Time". There should be no tick in "Re-Partition" this time.
Click on the PIT button and select the "s1_odin_20100803.pit" file. Note this is a different pit file to the one you used last time.
Click the PDA button and select the "CODE_I9000XXJPO.tar" file.
Click the PHONE button and select the "MODEM_I9000XXJPP.tar" file.
Click the CSC button and select the "CSC_I9000OXAJPO.tar" file.
Again, boot your phone up in download mode (press and hold the VOLUME DOWN, HOME and POWER buttons together) until you see the digging Android. Now connect your phone to the USB cable and Odin should again assign a port to it. Your screen should look pretty much like this now...
Check that your ticked boxes match that image, and double check again that you have the right files in the right places. Then go ahead and click start.
Once again, the progress bar shows in Odin and on your phone. When it's finished, Odin will say "PASS!" and your phone will reboot.
Note - After flashing this firmware there might be a long delay while the phone reboots. Mine stayed on the animated "S" for a good 2 - 3 minutes during this phase. This is normal and nothing to worry about...
Let it boot completely before you try and do anything.
Now you will probably be asked to set up a few things like what kind of keyboard you prefer and some google position monitoring crap. Set that up and there is one more thing we need to do. We need to tell the phone to use the "XEU" CSC which is the correct region code for the UK and most of Europe.
The CSC file which you added earlier actually contains a number of CSC's for various areas, and is known as a MultiCSC. So to change to the correct region we first need to know the IMEI number of your phone. Go to the dialer as if you were going to make a call and dial *#06# and this will show your IMEI number. It will be a 15 digit code. Write it down very carefully.
Now dial *#272*Your IMEI# but replace the words "Your IMEI" with the 15 digit code you just wrote down. So for example you would dial something like *#272*213245765434567#
You will get a list of CSC's to choose from. You should select "XEU" and click install. Your phone will probably reboot now and you might need to set the keyboard type and location stuff again.
The following step is optional but I always do it, from what I've read on this forum and a few others, it does make quite a difference to how FroYo performs. We should do a factory reset of the phone, so you are left with a completely blank canvas so to speak.
So once again, shut down your phone but this time reboot it into recovery mode (Volume UP, Home and Power). Select 'Wipe Data/Factory Reset' and press the Home button.
This will result in you getting a shiny SGS, running FroYo JPO with a CSC of 'XEU' as if it was brand new, out of the box