Related
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.
Made By :Spacecaker
What u need
windows or linux
ROM (that u wanna port to ace )
Dev Tools (like pack/unpack boot.img) Like this for windows and or linux
What u need to do??
unpack your boot.img
Change file on ramdisk
init.rc need to change >> (unpack the boot img from rom u wanna port
open init.rc and copy the stuff after BOOTPATH
change ramdisk/lib/modules >>> your modules ( not really importatnt )
repack ramdisk boot.img
Download the Guide below to get some pictures +
more tips download http://www.mediafire.com/download.php?u2ff9tthrrc29h1
Click to expand...
Click to collapse
orginel thread : http://forum.xda-developers.com/showthread.php?t=1574332
have you tried to port a kernel before? this guide doesn't mention about some spesific important stuff. it will definetely brick our device.
cool
a cool guide. find as pdf attached
this is only an example. our kernel partition is only 5mb. any size bigger wont work. then how about initbcrm2153 file?the zImage file? i've made two kernel. its difficult. port a kernel is more difficult and definetely not as easy as described in this post.
kurotsugi said:
this is only an example. our kernel partition is only 5mb. any size bigger wont work. then how about initbcrm2153 file?the zImage file? i've made two kernel. its difficult. port a kernel is more difficult and definetely not as easy as described in this post.
Click to expand...
Click to collapse
this guide is made by Spacecaker
he is developer ... so defenetly it will not brick our device .........
kurotsugi said:
this is only an example. our kernel partition is only 5mb. any size bigger wont work. then how about initbcrm2153 file?the zImage file? i've made two kernel. its difficult. port a kernel is more difficult and definetely not as easy as described in this post.
Click to expand...
Click to collapse
porting is too easy
if you have any doubts just check the attached file ! !
he also provided with SS ........
we can easily port it into our deveice
then...prove it. try to port a kernel from mini.
you also forgot this part. whithout this part our device won't work
===============================
then add/replace these in the rom it self ( copy from stock or cm7 )
These are Always needed !!
/lib/libril.so
/lib/libsecril-client.so
/lib/libsec-ril.so
/lib/libdiag.so
/system/hw
/system/modules
/system/etc/firmware , ppp, security, wifi, permission vold.stab
/system/user/keychars, keylayout
========================
one problem also comes from our recovery mode. unfortunately in our device it was stored inside kernel while in other device it was stored in different place.
It can Brick our Device
First Check it is Working and Then Post
thx for it i will try it
i dont think its that easy.. if it would hav been then we would hav had a kernel long back!!
hell_lock said:
i dont think its that easy.. if it would hav been then we would hav had a kernel long back!!
Click to expand...
Click to collapse
if porting means use kernel binary from one device to other device, not only not easy, but near to impossible. unlike pc which architecture is standardized, every cellphone have their own architecture make it impossible create generic kernel like you find in linux distro. you change hardware, it does't work. you mix with module from different version, it does't work. you mix with module from different compiler version, it does't work.
if porting means source code modification, that could be work, but need a lot of work. if someone ask how hard, last time i write my patch, i need about 6 hour just to add 2 lines modification in kernel source. i use linux in last 9 years and in real life i am a programmer, so reading c source code is something that i do almost everyday. still, i need that 6 hour because linux kernel source code is very complex.
and why op give this thread's title kernel. the tutorial is about using rom from other device using your original kernel.
irfanbagus said:
if porting means use kernel binary from one device to other device, not only not easy, but near to impossible. unlike pc which architecture is standardized, every cellphone have their own architecture make it impossible create generic kernel like you find in linux distro. you change hardware, it does't work. you mix with module from different version, it does't work. you mix with module from different compiler version, it does't work.
if porting means source code modification, that could be work, but need a lot of work. if someone ask how hard, last time i write my patch, i need about 6 hour just to add 2 lines modification in kernel source. i use linux in last 9 years and in real life i am a programmer, so reading c source code is something that i do almost everyday. still, i need that 6 hour because linux kernel source code is very complex.
and why op give this thread's title kernel. the tutorial is about using rom from other device using your original kernel.
Click to expand...
Click to collapse
thank you. i just wanna post the same thing before saw your post, and you're right indeed. theres no such thing as "porting kernel". binary kernel is specific, it'll only work with the device it were originally compiled for.
ROFL.....
BTW dont post tutorials , ports, etc that are somewhat copy paste and not tested it yourself..
Hey what about drivers... I wanted to get usb otg drivers on galaxy ace plus... Some dev ported it from galaxy s2 to galaxy s... But i dont have much knoladge of kernel development as i have windows... And i also found few lines about otg in my volt.fstab
# otg sdcard
{
ums_path = /dev/zero
asec = disable
}
usb_mount sdcard2 /mnt/sdcard/usbStorage auto /devices/platform/msm_hsusb_host.0
#end line ## keep this line
So i think it can support usb otg but doesnot have drivers...
Can any one help....or suggest something...
Sent from my GT-S7500 using xda premium
NICE!
Nice thanks!
kurotsugi said:
then...prove it. try to port a kernel from mini.
you also forgot this part. whithout this part our device won't work
===============================
then add/replace these in the rom it self ( copy from stock or cm7 )
These are Always needed !!
/lib/libril.so
/lib/libsecril-client.so
/lib/libsec-ril.so
/lib/libdiag.so
/system/hw
/system/modules
/system/etc/firmware , ppp, security, wifi, permission vold.stab
/system/user/keychars, keylayout
========================
one problem also comes from our recovery mode. unfortunately in our device it was stored inside kernel while in other device it was stored in different place.
Click to expand...
Click to collapse
Right. A Boot image is not completely independent of other partitions
Hello All,
This may be in the wrong place so if it is, I am sorry, anyway to my question I'm trying to build CM for my S4 Mini LTE Serranoltexx everything was going fine until I got this message after running extract-files.sh
Code:
Extracting /system/lib/egl/libGLESv2S3D_adreno200.so ...
remote object '/system/lib/egl/libGLESv2S3D_adreno200.so' does not exist
Now after adding "libGLESv2S3D_adreno200.so" (if you search Google for it it's the top github link) I managed to get it to build the actual .zip and it does flash properly but it doesn't seem to have the correct graphics drivers (I thought this process wouldn't work and I was right), the guide on the how to build it doesn't help with this problem either so any help would be extremely appreciated
I've attached the logcat for reference (if it's needed) as a .docx file as the .txt file was 1.1mb and because I don't have a pro account on pastebin.
The problem with newer Android versions is that if often require new libraries which are not available in stock rom, so the extract method is actually not very useful unless we have a stock rom of the same version we are building for. To bypass this issue we use libraries from other phones that have the matching Android version. I suggest using the blobs that's on TheMuppets github, as those are up to date.
https://github.com/TheMuppets/proprietary_vendor_samsung
hi guys I just found 2 old wave s8500 that I had forgot about for a few years :laugh: anyways whats the best way forward as for android install, I am confused with all the development
1) dual boot , any advice on this!
2) android which works the best at the min?
3) any complete guides for a complete setup ?
hope some kind person can take the time to help me out :angel:
whatabody said:
hi guys I just found 2 old wave s8500 that I had forgot about for a few years :laugh: anyways whats the best way forward as for android install, I am confused with all the development
1) dual boot , any advice on this!
2) android which works the best at the min?
3) any complete guides for a complete setup ?
hope some kind person can take the time to help me out :angel:
Click to expand...
Click to collapse
Dual (triple boot) -> see my Fota/Fboot thread in android dev on bada section, it has some explaination about waht is fota and how it's work.
On this project we only have : -a kernel (called zImage, boot.img or whatever), a Fota to load the kernel (all Fota are compatible with all kernels) and of course a ROM.
You'll see several version of installation (Nand, SD, Loop), and several rom (omni, cm11, Paranoid Android).
About ROM (omni, cm11...) your choice.
About installation :
Nand is installed on internal memory (erase bada), SD is installed on SD (doesn't erase bada), Loop is installed next to bada on internal memory (doesn't erase bada). Loop is slower than Nand. Speed of SD rom depend of SD speed.
Don't go to ROM older than Badadroid 4.4, it's outdated.
Any complete guide ? each rom have a little guide in its thread, often clear enough.
Requirement :
Bada 2.0 (it's important, find a bada 2.0 firmware here (like Turko CFW or Firefly) if you have bada 1.2)
Android-friendly bootfiles (common to ALL android rom, if you find one in a thread it will work with ALL rom----
A FOTA (there is a lot of FOTA, all compatible with all ROM as soon as this is an android Fota). It decide which system boot first, what key combination does, and what kernel must be named. Needlessly to say, i like my Fota
Flash all these thing with Multiloader v5.65.
If you have any question, read some threads first (at least first posts), read this again, and then ask
Hey xdas,
i just received my new Samsung Galaxy z Fold 4
SAOMC_SM-F936B_OXM_EUX_12_0045 EUX /-/EUX/EUX
Kernel : 5.10.81-afaneh92-gd8d6af751972 (flashed for twrp)
I would like to install nethunter on the device with a working kernel
I tired my best to understand the docu on kali but its not the best
i am also new to compiling kernels at that level so maybe someone can help here
I attached as much as i could
So the steps i took so far is
Unlocked Bootloader
installed the twrp ( like descriped here : https://forum.xda-developers.com/t/recovery-unofficial-twrp-for-galaxy-z-fold4-snapdragon.4498743/ )
installed magisk
Then for nethunter
(https://www.kali.org/docs/nethunter/)
i downloaded the kernel source :
https://opensource.samsung.com/uploadSearch?searchValue=SM-F936 (my device is EUX see infos for device above)
downloaded the proper=? toolchain , there is an readme_kernel inside the kernel_source with a link to the toolchain , i am unsure about this
https://opensource.samsung.com/uploadSearch?searchValue=toolchain
there are two options i took the S22(Exynos) file ( hope thats right ?)
now we come to the difficult part :-(
first i tried to compile via the instructions on kali docs
unpack the kernel file i did and there a subfolders so i decided to use the subfolder common as the root mentioned in the docs:
you can begin by cloning our kernel builder to the root of your kernel’s folder, and prepare the environment:
from common folder i did git clone https://gitlab.com/kalilinux/nethunter/build-scripts/kali-nethunter-kernel
cd kali-nethunter-kernel
I did not change the configs as i am new to that so i know there are some exports inside the build config inside the kernel file but i dont know how get them together
./build.sh
S. Setup Environment and download toolchains.
2. Configure & compile kernel from scratch
It found the devconfig so i took it as mentioned in the docs (Select your device’s defconfig, then save and exit to start the building process.)
did not edit the kernel config till jet
and ran into the error attached in the error txt
I would like to understand how i can build the kernel the normal way , without the nethunter tool
and maybe someone could help to make this working with nethunter that would be great !
i want to understand the process and i am willing to help , so i am not asking for a final kernel , more for the way to go in general to also give the community a benefit for the next new kernel we want to port
as mentioned the docs are not the best !
thanks for your time
@yesimxev / @V3rB0se / @afaneh92 need some help here
Which toolchain to you use in nethunter kernel builder? I'd recommend clang-12.
https://android.googlesource.com/platform/prebuilts/clang/host/linux-x86/+archive/refs/tags/android-12.0.0_r12/clang-r416183b1.tar.gz
Download, extract somewhere and add it's path to kali-nethunter-kernel/config (clang-10 is the default). no need for setup environment again.
Any luck with this? i am in the same situation trying to build a nethunter kernel for my zfold4
Wanttoknowthings said:
Hey xdas,
i just received my new Samsung Galaxy z Fold 4
SAOMC_SM-F936B_OXM_EUX_12_0045 EUX /-/EUX/EUX
Kernel : 5.10.81-afaneh92-gd8d6af751972 (flashed for twrp)
I would like to install nethunter on the device with a working kernel
I tired my best to understand the docu on kali but its not the best
i am also new to compiling kernels at that level so maybe someone can help here
I attached as much as i could
So the steps i took so far is
Unlocked Bootloader
installed the twrp ( like descriped here : https://forum.xda-developers.com/t/recovery-unofficial-twrp-for-galaxy-z-fold4-snapdragon.4498743/ )
installed magisk
Then for nethunter
(https://www.kali.org/docs/nethunter/)
i downloaded the kernel source :
https://opensource.samsung.com/uploadSearch?searchValue=SM-F936 (my device is EUX see infos for device above)
downloaded the proper=? toolchain , there is an readme_kernel inside the kernel_source with a link to the toolchain , i am unsure about this
https://opensource.samsung.com/uploadSearch?searchValue=toolchain
there are two options i took the S22(Exynos) file ( hope thats right ?)
now we come to the difficult part :-(
first i tried to compile via the instructions on kali docs
unpack the kernel file i did and there a subfolders so i decided to use the subfolder common as the root mentioned in the docs:
you can begin by cloning our kernel builder to the root of your kernel’s folder, and prepare the environment:
from common folder i did git clone https://gitlab.com/kalilinux/nethunter/build-scripts/kali-nethunter-kernel
cd kali-nethunter-kernel
I did not change the configs as i am new to that so i know there are some exports inside the build config inside the kernel file but i dont know how get them together
./build.sh
S. Setup Environment and download toolchains.
2. Configure & compile kernel from scratch
It found the devconfig so i took it as mentioned in the docs (Select your device’s defconfig, then save and exit to start the building process.)
did not edit the kernel config till jet
and ran into the error attached in the error txt
I would like to understand how i can build the kernel the normal way , without the nethunter tool
and maybe someone could help to make this working with nethunter that would be great !
i want to understand the process and i am willing to help , so i am not asking for a final kernel , more for the way to go in general to also give the community a benefit for the next new kernel we want to port
as mentioned the docs are not the best !
thanks for your time
Click to expand...
Click to collapse
Great research bro , same as here.
Difference is I am doing it for M21 .
And to flash the kernel I need to do port twrp for vA12 M21 too.
Great respect bro.
Anyone can help with kernel? u need AR9271 and rtl8188EUS drivers on ysl Android 9
https://forum.xda-developers.com/t/arm64-rom-unofficial-9-0-0-ysl-lineageos-16-0-18-08-2019.3958696/ <----- this rom
Phone: codename-[ysl]
Redmi s2
i have been trying to make it myself but always gets fails
im having the same issue at this step... anyone willing to show the part on how to setup the toolchain properly>?
heres a screenshot of my issue
this is local.config file
kluongo said:
heres a screenshot of my issue
Click to expand...
Click to collapse
It shows the error, do apt install flex
yesimxev said:
It shows the error, do apt install flex
Click to expand...
Click to collapse
Will do, thanks... You know I was looking through the process and missed that line... I suppose next time I should take more time and look more carefully
kluongo said:
Will do, thanks... You know I was looking through the process and missed that line... I suppose next time I should take more time and look more carefully
Click to expand...
Click to collapse
Great, I'll add to the setup env script so it won't be missed. It shouldn't happen in the first place though