[Miscellaneous Android Development] bunta126:
Sure thing, most of the information can be found in these forums which is what I used to figure out how to make mine.

I used the android kitchen software to do the basic functions to my ROM like adding root access and such.

The easiest way to do this is to build a Linux VM but the kitchen can also be run from windows using cygwin.

Check this post here:

http://xdaforums.com/showthread.php?t=633246

It has a download for the kitchen software as well as detailed guides of how to use it in the third post.

From clockworkmod perform a nandroid backup of your phone and then copy the system.img and boot.img files into the kitchens original_update folder and then create your working folder from that.

(If you go through the guide on the kitchen thread you'll understand what I mean)

After you have your working folder ready you can go through the various kitchen options to add root, superuser & busybox, deodex all your apps, etc, etc.

You will then want to go through your /system/app folder and remove any apps you don't want and also move and add apps to /data/app for ones that you can run from the user partition (do not move the market out of /system/app).

There are several guides around of what the system apps do and be carfeul what you remove as some are very important for functionality.

Check this thread for some basic steps of the things you will want to do to start with.

If you want to make some modifications of apps and functionality you will need to get a bit deeper into things.

You can use tools like apkmanager to decompile the apk files so that you can edit them and recompile.

To change the interfaces and such you will want to do this to files such as /system/framework/framework-res.apk and /system/app/SystemUI.apk.

The interfaces are basically made up of a series or xml files that define where everything is and the images that are being displayed.

There is also a website called UOT Kitchen that can be used to modifiy the interface for you.

You just need to upload your framework-res.apk and SystemUI.apk and choose the look you like and it will alter them for you.

I used it to modify the interfaces I used but unfortunately it doesn't work on our phones too well because the dual sim features use different images and relations and the kitchen can't modify them properly. They also don't look so good with the colored sim backgrounds our phones use so I had to modify the images and recreate the interfaces manually for most things but it should work pretty well for any other phone type.

To go further into coding changes you will need to learn how to use smali/baksmali to dissasemble the dex files that are stored in the apps.

When you use baksmali to dissasemble a file it will be a plain text representation of the dalvik code which is kind of a cross between assembly code and java.

As an example of how to work with that see this guide of how to modify your boot menu options.

Depending on what you want to do to your ROM depends on how much you want to delve and learn but luckily there is plenty of information out there since it is an open source platform.

http://developer.android.com/sdk/index.html

http://www.kandroid.org/online-pdk/guide/index.html