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!!
thanks for info mate exactly wat im looking for
cheers
Thx for this. Working very well.
Very nice guide
Just what i was looking for great
Sent from my GT-I9000 using xda premium
Thanks works very well! *5 stalls *
So i made my first selfmade rom for samsung s5660 Gio but i am getting errors trying to flash in cwm. First error i managed to solve as in the updater-script there were # missing at the mount and unmount options.
Now im having "assert failed: write_raw_image("/tmp/boot.img","boot")" error. Reading up on XDA i saw u mentioned that it has to do with wrong update-binary and someone solved it by adding "edify_def" but i have no clue what that might be.
Any help would be much apreciated.
Also u mention there are 3 update-binary. Any link to all 3 and can i just try with each one of them first?
Edit: adding the updater-script and update-binary
Gvdn said:
So i made my first selfmade rom for samsung s5660 Gio but i am getting errors trying to flash in cwm. First error i managed to solve as in the updater-script there were # missing at the mount and unmount options.
Now im having "assert failed: write_raw_image("/tmp/boot.img","boot")" error. Reading up on XDA i saw u mentioned that it has to do with wrong update-binary and someone solved it by adding "edify_def" but i have no clue what that might be.
Any help would be much apreciated.
Also u mention there are 3 update-binary. Any link to all 3 and can i just try with each one of them first?
Edit: adding the updater-script and update-binary
Click to expand...
Click to collapse
The Gio is not a Galaxy S device. This is where your problem lies. I am not sure how a ROM is constructed for that device.
dsixda said:
The Gio is not a Galaxy S device. This is where your problem lies. I am not sure how a ROM is constructed for that device.
Click to expand...
Click to collapse
So no matter what i try it wont work with kitchen? Damn too bad i was starting to know my way around it now
Kitchen made the whole rom without a problem tho. Using the boot.img option and following Perka guide. Just seems its not generating the Meta file correct.
Do u have any idea to what i asked earlier? If there is only 3 different update-binaries , can i get all 3 and test em out and 1 will work for sure or it wont work no matter what?
I don't know anything about your device, dude. Just copy one from an existing ROM that someone made for your device. Anyways you're asking about a non-Galaxy S phone so you'll probably find more help in the Chef section of the forum or in your device's subforum.
dsixda said:
I don't know anything about your device, dude. Just copy one from an existing ROM that someone made for your device. Anyways you're asking about a non-Galaxy S phone so you'll probably find more help in the Chef section of the forum or in your device's subforum.
Click to expand...
Click to collapse
Ok thx alot. Sadly no subforum for Gio
CWM issue
I'm having a big problem using the kitchen with regards to entering recovery in any custom ROM I make using the kitchen.
Once I flash the ROM everything is fine and dandy in the OS itself, works 100% and all customizations work flawlessly, but once I try to reboot into CWM whether via 3Button or extended power menu/adb, CWM gives a ton of errors saying it cannot mount volumes and basically recovery is useless. The errors are numerous, I'll see if I can post a pic if needed. The important one I'm thinking is "E:/unknown volume for path /sdcard" repeated for /data, /system, /cache, everything.
I tried eliminating sources of error by basically just inserting a JVS rom and pasting in a kernel (Semaphore JVS) without any customizations, and the error still occurs.
Any help?
krazykipa said:
I'm having a big problem using the kitchen with regards to entering recovery in any custom ROM I make using the kitchen.
Once I flash the ROM everything is fine and dandy in the OS itself, works 100% and all customizations work flawlessly, but once I try to reboot into CWM whether via 3Button or extended power menu/adb, CWM gives a ton of errors saying it cannot mount volumes and basically recovery is useless. The errors are numerous, I'll see if I can post a pic if needed. The important one I'm thinking is "E:/unknown volume for path /sdcard" repeated for /data, /system, /cache, everything.
I tried eliminating sources of error by basically just inserting a JVS rom and pasting in a kernel (Semaphore JVS) without any customizations, and the error still occurs.
Any help?
Click to expand...
Click to collapse
I'm having the same problem here with CF-Root-XX_OXA_JVS-v4.1-CWM3RFS, I tried to move to DarkCore_4.0_JVS and the device get into reboots (just after activating lagfix).
its 2 days now that im working on stock rom and trying only to root and deOdex... help?
Will this work for galaxy s 4g? If not, is there any way I can help to add support for it?
bhundven said:
Will this work for galaxy s 4g? If not, is there any way I can help to add support for it?
Click to expand...
Click to collapse
Sorry for the late reply. Check your build.prop's ro.product.device value. If the name doesn't exist under the kitchen's tools/samsung_files/sgs_variants folder then just create a file there with same name.
Unfortunately I don't have the Galaxy S so I cannot test on my own.
dsixda said:
Sorry for the late reply. Check your build.prop's ro.product.device value. If the name doesn't exist under the kitchen's tools/samsung_files/sgs_variants folder then just create a file there with same name.
Unfortunately I don't have the Galaxy S so I cannot test on my own.
Click to expand...
Click to collapse
Looks like the SGH-T959V file exists. Thanks for helping me figure that out!
I am having an issue with wi-fi not be able to connect after i have flashed my build.. and thats about it. I'm not sure whats causing it any ideas?
EDIT:
Was the updater-script, i swapped it out with another and all is well.
There are problem with kernels. I can't change?
is this supported by the sidekick since it has similiar specs to the samsung vibrant?
xtrem88 said:
is this supported by the sidekick since it has similiar specs to the samsung vibrant?
Click to expand...
Click to collapse
If it's basically the same device then it should support it. Just make sure you have an entry in the kitchen for the ro.product.device value. See the note in the 2nd step in Post #1.
Hello everybody,
I don't know if this has been done already, but I couln't find it so I thought why not make a version of my own.
Next to WhiteXP i'm also working on a version of CyanogenMOD 7.2, but with a different approach.
In my oppinion before even trying to release something it's important to have a permanent and working version of instead of the stock recovery.
The difference between this phone and many other phones is the fact that the recovery is included in the boot.img file.
My own phone for example, a Samsung Galaxy S Plus, has a seperate standalone recovery.img.
Because I don't own this phone myself I hope another developer can test if this is working properly.
I didn't change the kernel or important boot files other than the recovery itself, so booting into android shouldn't be a problem and remember it's build upon the stock kernel for now.
Here is the downloadable boot.img: http://depositfiles.com/files/90ye57wtm
The kernel should be flashable through the existing CWM which is already posted in the forums with this file:
http://depositfiles.com/files/e21qacxo9
Hopefully somebody is willing to give me some feedback.
Greetings PsychoGame
Hello
Here I am again with a little update.
This version doesn't seem to work okay, it gets into a bootloop.
I will try to fix these problems at a later time.
Greetings
Psycho Game
Thanks...for your work merge CWM into stock kernel...:thumbup:
Sent from my GT-S5360 using xda app-developers app
Here's a little update of the work i'm doing right now.
As I already said I'm also working on a version of CyanogenMod myself.
The problem is not anymore the availability of the drivers, because BroadCom released their drivers to the public.
In my opinion the next bottleneck is the Kernel. I didn't own a Galaxy Y at first, but I recently bought one to make it easier to test different configurations.
My main phone is a Samsung Galaxy S Plus which already has a realy stable CM9 version, but also the kernel is already updated to version 3 from 2.6.35.14.
This is also my goal ultimatly, but the Galaxy Y uses RFS filesystem in combination with FSR. These are closed source modules from Samsung, which make it difficult to update kernels.
There is a known hack that you can alter the version in the make file of the kernel to 2.6.35.7 while it realy is patched up to 2.6.35.14, but i'm not very fond of such hacks.
I'm a daily linux user already since the year 2000 or so, and build many kernels for Linux computers from source. I can say I have good knowledge of the compilation proces and what's going on in the kernel.
Now back to what i'm doing at the moment:
I already converted the complete galaxy y to EXT4 file system, incl. the EFS partition, and yes I still have my IMEI data etc. so this is considered done [status: complete]
Next step is getting rid of the RFS & FSR kernel modules, which are proprietary [status: complete]
At the moment I'm busy updating the kernel to version 2.6.35.14 the proper way, so I have a stable base kernel to build CM on [status: WIP]
After this I will add CWM recovery to the updated kernel, and make sure everything works as it should, like ADB in recovery mode, formatting, and all these things. [Status: Planned]
When CWM recovery functions as it should work, the proces of building CWM into the Galaxy Y can begin [Status: WIP -> Stalled until kernel stable].
This is a little update on the things I have in mind.
If you like it, please post a comment, that also lifts my spirit in the lots of things that have to be done.
Greetings
Psycho Game
Hello friends,
I wanted to start kernel developing for the N910F. So i wanted to start compiling the original samsung sources.
Please excuse me, I'm pretty new to android/linux development.
I managed to get the kernel compiling, which gives me an output folder with some GB of stuff and as i could point out a zImage-file, which is hopefully the compiled kernel
To get my kernel working, extracted a stock boot.img with umkbootimg, which gave me a warning, that i can't repack the boot.img without using a modified mkbootimg executable.
A mkbootimg is included in the sammy-source so i used this to pack my zImage together with the extracted initfs.gz, resulting in a boot.img.
Which I flashed ofc, but the reason why i opened this thread is the result of this
The kernel is obviously not booting, it shows for maybe 0.5s the sammy logo and directly starts into download mode.
I guess it has something todo, how i pack my kernel. because i didnt even manage to unpack the stock kernel and repack it and get it booting.
So where is my mistake? Do i miss something?
greez d4rk
Deleted - I notice I replied to an old thread
Hi, as I began to port MIUI ROMs some month ago, I started by always reusing the same kernel, but I would like to understand a little bit more.
So I tried to use Android Image Kitchen, but I was wondering what to do to change the "kernel". Is it some specific files in the ramdisk, or does it represent the whole boot.img file ?
In fact I wanted to rebuild a "clean" boot.img from stock rom (including offline battery animation) and make it compatible with MIUI, and eventually try to add the last version of Vegito kernel for battery life and performance.
Does anyone have the knowledge to help me and clarify all this for me ?
right
HOW TO MOD MIUI 13 /12 BASED ROMS ? I want to learn how to mod miui rom ,do some changes like other developers who changed miui logo from setting and putted their own logo ,changed boot animation,,putted magisk module so we dont need to flash it via magisk or recovery ,i was set by default ,,,how do they also changed the kernel ,,,,,,after all these they builded one new flashable zip file for us ,,,,,,,,,,,,,,,,anyone here who can help me to learn all these stuff, I'm highly interested........Which unpacker ,repacker or other tools they use ???????? HELPP HELP HELLP :3
Thanks in Future
TG: @SELinuxEnforcing
Evolution (author of pulse) use BatchAPKTool to compile/recompile apk. Than he find some files (smali) and following the manual changes it. I explained very superficially, everything is quite difficult for a beginner there, and if it is the same f a mentor as evolution who will constantly help, it will be a little easier. Moreover, two people helped me.