[Samsung Galaxy R i9103] UnknownzD:
Q. Why there is a need to repack the firmware?

A. As you may know, the stock kernel in the stock firmware has the emmc hard brick feature enabled which is believed to be the reason of 2 hard brick incident reported in the forum. And even worse, the emmc hard brick bug (mmc_erase) can be called @ anytime after the system is booted with a buggy kernel, which means that your device can immediately get bricked after the first reboot.

Q. So is it okay to flash the ROM via odin with a different bootloader (i.e. boot.img)?

A. Theoretically, yes. But the problem is that when we repack the odin package with a modified boot.img. The download counter will rise and a yellow triangle will appear on every boot.

Q. So is there any way to flash the stock bootloader but without letting it get booted?

A. Yes. There is a way to do so. After you have successfully flashed a package via odin, the odin bootloader (based on BCT partition) will invoke the recovery bootloader to finish the install process. And if you are not using the stock recovery, the process will get halted and then leave you at the recovery (CWM) screen. And then you can flash a kernel via CWM at this point.

Q. Is there anything that I should aware of?

A. Yes. Just like flashing any firmware, After flashing the ICS package, it is important for you to backup all the important files before flashing.

Guideline 1 [For people who is willing to use CWM6 (provided by Adam77Root)] (prefered way) :

1. Turn on your device and connect it to a computer

2. Place the kernel file, superuser file (which can be flashed via CWM) and new_sec_csc.zip into your internal SD card first and make sure all your important data on /sdcard are backed up (You are free to select any kernel but make sure the mmc erase part get disabled from the kernel completely)

3. Turn it off and remove the external sdcard from the device

4. Download the ICS firmware files which contains GB kernel and CWM6

5. Put the device into download mode and flash the above package via odin 3.07. Place the package file (*.tar.md5) into PDA part (You can now flash with pit file as well, however the internal sdcard data will get wiped so it is important for you to make a backup for important files before flashing) (DO NOT attemp to flash any ICS package via odin 1.85 as there is a high risk that the download process get stuck in odin v1.x series, and you have to unbrick your device with nvflash tool if error occurs)

6. After the device is restarted, it will get into recovery (CWM) mode. And the script provided by Samsung will be failed to execute due to a assert call. (Don't worry, you can execute the script again by using the patched new_sec_csc.zip)

7. Backup any important data in /sdcard (external sdcard) now if you didn't do so. You can do this @ 'Mount and storage' -> 'Mount USB devices'.

8. 'Wipe cache' and 'Wipe data / factory reset' (make sure you have all your important data on /sdcard backed up and your have removed your external sdcard device)

9. If the above stage has wiped your CWM flashable zip file as well, you can mount the device to a computer via mount menu and you can place the zip file to the phone as mass storage again.

10. Install the CWM flashable zip file (superuser, new_sec_csc.zip and your kernel file) from sdcard (For an unknown odd reason, all the packages you gonna install in this step will have signature verification error, but it is safe to proceed. Just switch off the signature verification from the menu or choose to 'Install untrusted package'.)

11. After you flashed kernel, you are free to flash anything and free to reboot now.

12. If you have used a pit file for flashing the package in odin, a message will be appeared in notification center telling you the filesystem on /sdcard cannot be recognized. Just click on it to format the sdcard and then you are free to use anything now.

13. If you are still afraid of breaking system integrity as you were not using the samsung recovery script to finish the update process, navigate to 'Options -> Back up and reset -> Factory data reset' and totally reset the device there.

P.S. If you accidentally pressed reboot the system now in CWM 6, don't worry, the system will not be able to boot into normal mode. And you can redo all the things since the beginning.

Update #1 : During testing the flash process, I have found that the repacked firmware cannot be flashed with odin 1.83. It is important to get all the ICS firmware being flashed with odin 3.07 (or 3.x sereis) instead v1.x series. Otherwise you have made a risk that your partition (PIT) table is messed up so srsly that you have to use nvflash tool to restore everything. I will tell this to cooleagle to get everyone knows of it.

XXLQ9 :

Stock package with GB kernel and CWM6 which is based on safe stock GB ZSLE6 kernel (just extract the file in the splited zip files) : http://www.mediafire.com/?uq5tg9o7nli04b2 and http://www.mediafire.com/?b5i571br0x07c38

CWM flashable package :

- Superuser CWM flashable package : http://downloads.noshufou.netdna-cdn.com/superuser/Superuser-3.2-RC3-arm-signed.zip or Superuser-3.2-RC3-arm-signed.zip in attachments (But you will be unable to update with the 3.2 RC3 build, use 3.1.3 one if you want)

- My own kernel (flashable via CWM) : UnknownzD_Kernel_with_superuser.zip (with superuser, good for first time install) and UnknownzD_Kernel.zip in the attachments

- Patched Samsung install script (the one which failed to run) : new_sec_csc.zip in the attachments

Odin v3.07 : Odin307.zip in the attachments

Credits go to Adam77Root for his CWM image and someone(!?) who has uploaded odin 3.07 to xda forum. Will try to check his name later.

Short change log about my kernel (The longer one will get posted when I start another thread for it) :

4 IO scheduler added

Voodoo sound patch added

Full fp calculation based on hardware fp opcode only (which should makes the device consumes less energy while providing the same performance level)

MMC erase function tootally disabled

Default.prop get modified to increase the performance

Based on ICS 3.x kernel src code released by Samsung

If you gonna use my kernel, please make sure that you have efs_backup.img backed up safely after flashing my kernel package, as it contains your device's IEMI info, which can save you from future disaster as you can use the unbrick tool with it. You can backup the efs_backup.img by :

1. Flash my kernel in CWM

2. Mount and storage -> Mount USB devices

3. Copy the efs_backup.img from the sdcard to your own computer (it is vital for you as you can use the unbrick tool later)