yashsingh1/xdaforums huggingface dataset:
[Galaxy S I9000 General] RyanZA:
Android generic source won't actually help you much. Samsung has made a huge number of changes to it, and while it is all open source, backporting their changes to get your stock source running on the phone is a major undertaking. I believe cyanogenmod was actually working on this, but it seems without much success so far.

What the other rom makers you see are doing is taking a snapshot of a running rom, copying over all of the APKs and the files on a running device, and then tweaking those. ie. Opening up framework-res.apk and changing the image files inside.

The update.zip roms that are what most people are doing are really just using the Android recovery to replace files on the phone with their own versions. Since the underlying system is linux, and everything is a file, this actually works pretty well.

The kernel development effort is completely separate from the rest of the system though, and Samsung has provided the entire source tree that just has to be compiled. I'm a bit stumped myself on all the details of setting it up, but I have seen some threads on this forum about it, and it didn't seem too bad to set up. Apparently you shouldn't use the codesourcery toolchain though, or something. Not too clued up on it, sorry. :) Hopefully someone with the details can chime in, or give us a link to the old post on it (I'm failing to find it using the search function! ;) )
[Galaxy S I9000 General] Raykoid666:
Alright sounds good!

So these recovery files you are talking about (the contents of /system) how do i retrieve those from a base ROM such as JM7 or the likes after a clean flash?)
[Galaxy S I9000 General] RyanZA:
Root your phone, zip them up onto the sdcard, and then copy them off. :)

There are probably better methods, but this works fine. ;)

Also, with credits to Unhelpful, he has told me that the correct toolchain to be using is 'uClibc or eglibc toolchain with ct-ng'. I have no idea what to do with that yet, but it's a start. :)
[Galaxy S I9000 General] Tayutama:
You don't even need to root your phone to pull /system Ryan :)

adb pull /system <random folder>

is all you need ^^
[Galaxy S I9000 General] Raykoid666:
Alright thank you, I managed to get all the /system files using abd pull /system

now next thing up would be de-odexing right, before I go editing stuff?

Now before I go de-odexing. Can anyone tell me what exactly de-odexing is and why I need it?

and what do I need to do to create an update.zip again?

thanks a lot all!
[Galaxy S I9000 General] RyanZA:
Haha cool, didn't know you could pull whole folders! :D

The apk files in Android are odexed - that means they have a special index applied for dalvik that speeds them up somehow! I don't know how, I haven't checked how it actually works.

The important point is though:

odexed is faster, but you can't edit it because of signatures or something technical

deodexed means you can change it however you want

More useful info can be found from google - lots of it! :D

update.zip is easy - it's a zip file in a special format that can be understood by Android's recovery console. The easiest way to do it is to grab an existing update.zip and modify it as needed. Tayutama has millions of em around, so use his! :D

Then you need to sign it once you're finished with it so that the SGS will accept it. Samsung made a boo-boo and didn't disable the test keys for the 2.1 SGS firmwares. That makes it easy!

http://www.londatiga.net/it/how-to-sign-apk-zip-files/

Just use the test keys to sign it, and then copy it to /sdcard/update.zip and reboot into recovery and it'll work. :)