Credit for this goes to @mirGantrophy and @AdhvanIt. If it wasn't for either of them, I wouldn't know as much as I do.
First off, this will be made as noob friendly as possible but we all know that there will be things that just can't be made noob friendly. Don't ask for a "one click" for this it will never happen because It's a manual process you have to do yourself. I am not in any way, responsible if you brick. You should have some knowledge as to what you're doing. If you're not confident/comfortable doing this... DON'T EVEN THINK ABOUT IT!!!
Any and all questions, please post in the thread. You're also more than welcome to PM me and I'll help as much as possible.
Now, let's explain what porting is.
In the easiest terms I can put it.. It's just taking a ROM from your device as your BASE ROM, then finding a ROM on a different device that's the same build number. As in, 4.1.X won't work with 4.2.X. You delete certain system files in you base, and copy those same files you deleted from your PORT ROM. Compile, test, decompile, fix: repeat.
PATIENCE - this is most important because it won't always work the way you want it too. a working computer apktool smali/baksmali Android Kitchen - I use dsixda's kitchen in the dev/hacking forum a diff tool - I use Meld as it's the easiest to use Android SDK or just ADB/Fastboot
Also, let's make sure we aren't trying to port TouchWiz/Sense onto AOSP/AOKP that just won't work. As much as you try, it won't.. And I will probably laugh at you if I find out you tried doing that... Make sure your porting Sense/Sense, AOSP/AOSP, AOKP/AOKP.
Download your BASE ROM of choice
Download your PORT ROM of choice
Use your android kitchen to set up a WORKING_Folder for your BASE ROM
Repeat step three for your PORT ROM, be careful here... It might explode into bright rainbow confetti. ;)
take your BASE ROM WORKING_folder, open it and navigate to /system DELETE: /app /fonts /framework /media
The files you just deleted from your BASE ROM, yeah. Let's take those from your PORT ROM and put them in your BASE ROM.
Open build.prop from BASE ROM and PORT ROM compare them side by side
at the top, it will have something like
ro.build.id= ro.build.display.id= ro.build.version.incremental=
Find your updater-scripts from both ROMS /meta-inf/com/google/android
compare these files side by side and make any necessary changes. DON'T TOUCH THE SYMLINKS, ACT LIKE THEY AREN'T THERE.