[Android Software/Hacking General [Developers Only]] jacobmacek:
Easy step-by-step guide on how to port CM10.1 (Windows, Mac, Linux...)

by: MaceksMod

Prerequisites

​

Computer (duh)

Rooted phone/tablet/phablet with recovery of choice installed (do not ask me how to do this)

7-Zip or WinRar for editing our .zip files

Notepad++ for editing our build.prop file and our updater-script

AOSP based ROM for your device

CM10.1 ROM from a similar device

Basic knowledge of computers and custom Android ROMs

​

Step 1: Setting up your work space

First, we will make a folder where we will be doing all of our work, you can name it what you like but for this demonstration, I will be naming mine CM10.1 PORT. Inside of this folder we will need to make 2 sub-folders, name them "PORT" and "BASE".

Step 2: Extracting and placing our initial ROM files

Put your AOSP based ROM in the BASE sub-folder

Put the CM10.1 ROM we are porting in the PORT sub-folder

Extract the build.prop (/system) and the updater-script (/META-INF/com/google/android) from each ROM into their folder

Step 3: Prepping the BASE ROM

Delete every app except for the following from syste/app:

Phone.apk

Telephony.apk

Gallery2.apk

SystemUI.apk

Step 4: Importing CM10.1's System apps

Copy over all of the system apps from your CM10.1 ROM (except for the ones listed in step 3) in to the system app folder of your AOSP BASE ROM.

Optional Depending on ROM outcome: Swap the SystemUI.apk and the framework folder

Step 5: Editing the updater-script (EDIT THE BASE's FILE, NOT PORT's)

Remove any title (the lines will start with "ui_print (") (don't delete any line that doesn't start with that)

Paste the following code in, edit all ares surrounded by { }

ui_print("*********************************************");
ui_print(" UNOFFICIALL CyanogenMod 10.1 ");
ui_print("*********************************************");
ui_print(" PORTED BY: {YOUR NAME} ");
ui_print("*********************************************");
ui_print("Ported Using MaceksMod's CM10.1 Porting guide");
ui_print("*********************************************");
ui_print(" Credits ");
ui_print(" {Developer of CM10.1 PORT ROM} ");
ui_print(" {Developer of AOSP BASE ROM} ");
ui_print("*********************************************");

Step 6: Put the newly edited script back into the proper folder of the BASE ROM

Step 7: Editing the build.prop

Change the following lines in the BASE's build.prop to match the PORT's build.prop

ro.build.id=
ro.build.display.id=
ro.build.version.incremental=
ro.build.date=
ro.build.user=
ro.goo.rom=
ro.goo.developerid=
ro.goo.version=
ro.CyanogenMod.version=
ro.config.ringtone=
ro.config.notification_sound=
ro.config.alarm_alert=
ro.buildzipid=

Step 8: Place your newly edited zip in the system folder of the BASE ROM

Step 9: Swap the BASE ROM's media folder with the PORT's

Step 10: Swap the BASE ROM's fonts folder with the PORT's

Showtime!

Step 11: Rename the BASE ROM to CM10.1_{your devices codename}_PORT

Step 12: Flash the ROM using the CM10.1 install instructions

PS: This will not fix any bugs either one of the ROM's has, it will most likely create 1 or 2 more, or if you're lucky, maintain the same stability your base rom has :)