In this tutorial of rishabh.raj37 @ XDA, you will
learn the basics on how to port ROMs that are
developed from other devices to your own
device.
Ill add soon:

Fix patches for MIUI ROMs
Some patches for ParanoidAndroid an
PAC
Fix for htc port bugs (network auto
select & Graphichal issues)

REQUIREMENTS:

WinRar for extracting archives
Notepad++ for editing text-based files
(build.prob, updater-script) Note:
simple notepad will corrupt the files.

DEFINITIONS:

PORT ROM- The ROM that is developed
for other device and the ROM you
wanted to port to your device.
BASE ROM- The ROM that is developed
for your device.
THINGS YOU MUST REMEMBER:
To-be ported ROMs must be from a
device with the same resolution with
your device.
Same device manufacturer is preferred
(ex. LG P500 ROM to LG GT540). But
this is not always true, you may still
port ROMs from another manufacturer
to your device (ex. Samsung Gio ROM to
LG GT540)
Same CPU is preferred (ARMv6 ROMs to
ARMv6). But you can also use this
tutorial to port ARMv6 ROMs to ARMv7,
Not vice versa.
Port and Base ROM must have the same
android version (ex. Gingerbread to
Gingerbread) or ROM type (ex. CM7 to
CM7).
It is recommended that the base ROM is
clean, meaning no tweaks are added to
it yet. (Optional)

STEP 1

Take out the PORT and BASE ROMs and extract
both of it. Place the extracted PORT ROM to a
folder named PORT, and the BASE ROM to a
folder named BASE.

STEP 2

Delete app, framework,
fonts and media folders in
the system Folder of the
extracted BASE ROM. Now, copy app,
framework, fonts and media folders in
the system Folder of the extracted PORT
ROM folder to the BASE system folder.

STEP 3

Now, open etc folder ( ) of both
ROMS.
We will focus on the init.d and permissions
folders

STEP 4

In etc folder of base ROM,
open permissions folder and delete
all permissions files wihthin BASE ROM
folders
files Then, opy all the permissions
files from PORT to BASE ROM folders
files.

STEP 5

And then open init.d folder in BASE ROM folder
and delete everything and
then copy all the files inside init.d folder of
PORT to BASE ROM folders,
.
STEP 6
Open the build.prop file (system/buil.prop) using
notepad++. Edit values according to preference.
Edit this according to preference
For the date:
For language and location:
Change the values of
the same with the build.prop of PORT
ROM.
Edit the following according to preferrence.
If you find any lines related to theme (like
below), copy it from PORT ROM build.prop to
BASE ROM build.prop

STEP 7

Open the updater-script ( META-INF/com/
google/android/updater-script) file of both
ROMs using notepad++. Delete all set_perm lines
within the BASE ROM updater-script. Then, copy
all set_perm lines from the PORT ROM upater-
script to BASE ROM updater-script.

STEP 8

If you find any extra file or folder in system
folder of PORT ROM then copy them to your
BASE ROM system folder.

STEP 9

Finally, Zip it. Select META-INF folder, system
folder, boot.img ( ), data .
Right click and select Add to archive. Select ZIP
as Archive format. Enter Archive name. Click
OK.

STEP 10

ROM.zip is now ready to be flashed in recovery.

I wish I could give out the image tutorial too. Learn android dream android live android be a porter and an android developer.