[Galaxy S I9000 Android Development] dsixda:
dsixda's Android Kitchen - Now for Samsung Galaxy S

Compatible with Windows (Cygwin) / Linux / Mac OS X

The following is a guide to assist you with creating your own Samsung Galaxy S custom ROMs with the kitchen. This is NOT a guide to help you become Cyanogen or do fancy things with AOSP, but it may be your springboard to bigger things in the future.

Some of you already know about the Android Kitchen. It is a project I started on back in February 2010 to help newbies create their own custom ROMs and learn more about Android. As of version 0.178, you can now create your own Galaxy S ROMs with the kitchen.

I'd like to thank Perka for testing and providing feedback, and also for giving me some ideas through his tutorial in his Ultimate ROM Cooking Guide.

[MAIN PAGE] [RELEASE NOTES] [FAQ - page 1] [FAQ - page 2]

​

PROCEDURE

This guide may be a bit basic right now but I will update it later if required.

First, you need a rooted Samsung Galaxy S with a ClockworkMod custom recovery. The kitchen supports the GT-I9000, but should also support most of its variants, such as the Captivate, Fascinate, Vibrant and Epic.

Visit the Android Kitchen thread to download the kitchen. Then, follow the link to the FAQ which will show you how to install it on Windows, Linux or Mac OS X. Ensure you read the FAQ carefully.

IMPORTANT (DO NOT IGNORE THIS STEP): To verify your variant of the Galaxy S works in the kitchen, read this post.

Put your base ROM(s) under the original_update folder. For the Samsung Galaxy S, there is support for the following formats which can be placed in that folder (you can place multiple ROMs there):

Stock firmware:

factoryfs.rfs (and optionally: cache.rfs, zImage)

PDA.tar.md5 (and optionally: CSC.tar.md5, PHONE.tar.md5)

PDA.tar (and optionally: CSC.tar, PHONE.tar)

TAR/ZIP file containing factoryfs.rfs (optional: cache.rfs, zImage, modem.bin)

TAR/ZIP file containing PDA.tar and others

TAR/ZIP file containing PDA.tar.md5 and others

Custom ROM:

ZIP file originally created by the kitchen from the stock firmware (NOTE: The kitchen does NOT support custom ROMs created through other methods, due to potential file structure incompatibility issues)

Nandroid backup from ClockworkMod recovery

system.img and boot.img

Here are some basic steps to creating your first ROM after you have your base of files under original_update (more options are available in the kitchen):

Start the kitchen with: ./menu

Create a working folder (by choosing your base ROM)

If you used a factoryfs.rfs but then didn't include the cache.rfs, then you have the option to add a cache.rfs later using the Extract CSC script in the Advanced menu's 'Plugins' section.

Optional: Add a rooted kernel (zImage) to the base of your working folder

You can create a ROM without a zImage and thus keep the existing kernel on your device, although keep in mind that a newer ROM may not work with a kernel meant for older ROMs!

If you use the stock kernel (zImage), you can always replace it later with the CF-Root kernel or any other custom/rooted kernel. Just replace the stock zImage anytime before you build the ROM.

Optional: Add a modem.bin to the base of your working folder, or remove the existing modem.bin if you don't want it. You can flash the ROM with or without a modem.bin.

Root your ROM

Add Busybox

In the Advanced options menu: De-odex your ROM

Build ROM

The ROM is built into a ZIP file meant for flashing from the custom recovery menu. No Odin.

Some notes:

Just select the defaults whenever you are asked about something in the kitchen and are unsure whether to type 'y' or 'n'.

There are lots of questions answered in the FAQ in Posts 3 and 4 of the main Android Kitchen thread. So please go through that first if you have any issues.

For the benefit of other readers, and to prevent confusion, please only discuss Samsung Galaxy S in this thread!

Most of all, have patience, take your time and enjoy!!