EDIT: If you are coming from eclair, install a froyo ROM and make sure it has a bootloader. Remember, if you cancel an installation that changes your bootloader, or stop it in anyway, you may hardbrick your phone. MAKE SURE YOU DON'T CANCEL OR TRY TO PAUSE THE INSTALLATION, JUST LET IT FLASH SMOOTHLY. use a laptop if you can, just in case an unlucky power surge would stop the flashing process
EDIT2: Here is a good Tutorial video from xda user Tejas Ahobala (if you don't know what he is doing at the start, dont worry. He is doing a factory reset before flashing):
EDIT3: A word from one of the commenters:
Thanks a ton for this guide. I had rooted my phone a couple of months back but wasn't really able to figure out how to use ODIN to install a custom ROM all this while. A few pointers for others noobs...
1. The tip about some custom ROMs requiring a wipe data is important.
2. If you're already using CWM, use the 'shutdown' option and not the 'reboot' option when the phone reboots during the flashing process.
Here we go...
Terms and words -->
Flashing ==> means installing a new ROM
ROM ==> is the operating system, any version of modded or un-modded android
Android ==> Google made operating system!!!
ODIN ==> Here, it means the program that you can use to flash ROMs on your phone (the phone im going to use here is samsung galaxy 3)
Soft brick ==> No, not the construction brick, this means you've got no working operating system or you have one but its damaged and you can't use it, so you cant see your homescreen, you only see a boot-loop when it wants to come up. You can view your recovery and boot loader (The download screen) when soft bricked, so you can easily fix this problem by re-flashing.
Hard brick ==> Similar to the construction brick, your phone with little hope of recovery without sending to the samsung base for repairs To avoid hard bricks, open the .TAR file which contains your ROM using winRAR, and check if it contains sbl.bin and boot.bin files or not. If it does contain, and you are nervous or this is your first time flashing etc, simply go and flash Kyrillos' ROM or Kyora ROM instead. (I'm not advertising, just stating a couple of ROMs that I know are safe) these ROMs can only soft brick your phone should the worse happen and there is no chance of hard brick
Should this guide be followed carefully, nothing harmful can happen to your phone. Yet I wont take responsibility if something happens to your phone.
Remember to Backup your contacts and apps!
Stuff to download:
1) ODIN and a .OPS file, found Here, Or alternatively here.
2) The ROM, depending on what ROM you want there are different versions available. check This thread, the kitchens/ stock ROM packs part for stock ROMs, or if you want to try a custom ROM, try any other. I personally use Kyrillos' ROM, or Hillbeast's KyoraROM. Marcellusbe is praised highly by all for giving us the Cyanogenmod.
1) Extract 'Flash tools.rar'
2) open Odin multi-downloader. This is how it's meant to look like.
NOTE: Sometimes some random error message with a korean writing pops up. dont worry, it's nothing, just press OK every time you see it
3) Press the OPS button located in the 'Select OPS' section, as shown in the image below. NOTE THAT YOU SHOULD ONLY USE THIS OPS FILE IF YOU HAVE SAMSUNG GALAXY 3. YOU MAY ENCOUNTER SERIOUS PROBLEMS IF YOU USE THIS OPS FILE WITH A DIFFERENT PHONE. (works with i5800 and i5801 as far as I know.)
4) Browse for the 'apollo_0531.ops' that came in the rar file with odin and select it.
5) Tick the One Package option located on the left side of the application.
6) The ROM that you have downloaded should have a .tar extension. If its a .rar file, open it. If it has a .tar file inside it, extract it and use it, but if it has some weird ass stuff in it that only Jesus and Chuck Norris understand the meaning of, you need to use the 'free rar extraction frog' application to turn it into a .tar file. Download it for free from here.
7) The above step was just to confirm if you have the right file, so you dont get any errors. Now just select One Package button that is highlighted in the picture and browse and select the .tar file.
8) Make sure you have ticked everything that I have ticked. Use picture from part 5.
9) Go to your phone. go to Settings->Applications->Development and tick USB debugging if its not already ticked.
10) make sure you have the device drivers, just install Samsung KIES from HERE to make sure you do have the drivers. If the page doesn't show, just Google 'download samsung KIES'
11) turn the phone off, take the USB out, and press volume up, home button (the big fat button in between the menu and back buttons) and the power button together. hold them until you see the 'FORCE UPLOAD BY KEY PRESSING' screen. Now plug the USB back in.
12) Odin will immediately recognize your phone, and there will be a yellow label, like so:
13) Double check that you haven't missed anything.
14) Press start! HERE
15) You will see a blue download screen, saying please don't interrupt. PLEASE DON'T INTERUPT IT!!!!
16) The process will finish and system will reboot one or two times. go have some tea and come back 15 minutes later. You should have the Rom of your desire working on your phone.
NOTE: Some custom ROMs require you to wipe system data and then wipe cache. don't forget to do that! restart phone after wiping the data etc. If you've flashed a custom Rom and the device is showing a stupid triangle with an exclamation mark inside it, dont panic, press the menu button and you will see the menu (This menu is called the recovery menu).
EDIT4: How to flash kernels (on galaxy3/apollo/5800/5801)
1--> you go to the kernel thread and download their kernel. it is to be a .tar file. (eg g3mod.tar)
2--> follow steps 3 to 5 from above tutorial
3--> put phone in download mode (step 11) and connect with usb
4--> in odin, select the 'select as one package file' option and browse for the kernel .TAR file. select it.
5--> check youve done everything. YOU SHOULD HAVE DONE EVERYTHING IN THE TUTORIAL EXCEPT THIS TIME INSTEAD OF USING A ROM YOU'RE USING A KERNEL!!
6--> There is no need for wipe unless otherwise stated by the developer.
7--> congratz man, you got yourself a new kernel!!
OPTIONAL 8--> download setcpu from xda (you can also download off market and pay for it for the donation)
its really usefull, it lets you control how much your phone uses the cpu and you can undervolt the cpu etc, you will find more info on the setcpu thread.
METHOD2==> (Only works for some kernels)
1--> go to the g3mod website and download the .zip version of the kernel. (there is a .tar and .zip)
2--> put the .zip in the root of your sd card
3--> go to recovery mode by either using kyrillos' rom (press & hold power
then choose reboot into recovery) or by turning the phone off and pressing volume up and down and the power button all together. select install .zip from sdcard and then select your .zip you downloaded before.
4--> it will install. no wipe needed unless the dev says so. reboot. HAVE FUN!!
HOW TO FLASH ROMS USING SYSTEM.IMG
1) Download system.img from safe source, preferably provided by dev, or any other trusted member who knows what they are doing.
2) Flash g3mod ROM.
3) Copy the system.img and paste into this path in your sdcard:
sdcard/android/data/g3mod/roms/**there are several folders here, just paste the system.img to the folder that suits the rom's name**
4) Boot into recovery.
5) Go to Multiboot.
6) Select desired ROM.
THE GODDAMNED END.