Home How to's

How to port mtk (mediatek) roms

SHARE

HOW TO PORT ROM FROM A DIFFERENT SoC
Works for-
MT6589 to MT6577

MT6582 to MT6572

MT6577 to MT6575

Only ICS to ICS & JB to JB

May also work with 4.1 to 4.2

No Need of Source Code

No Need of Kernel Source

No Need of **ANDROID KITCHEN

No Need of LINUX…

Requirements:

* A Brain
* Patience
* Windows XP/7/8
* 7-Zip
* Notepad++
* Bootimg Unpack/Repack Tools for Windows!
* Stock ROM
* And a Little Respect!!

So now Lets Begin…

PORTING For Same SoCs ( Ex: MT6572 to MT6572)

* Replace these from your Stock ROM to the ROM u want to PORT!! Lets Call it “PORT”

FILE LIST FOR REPLACING:

Code:
	*system/vendor
	*system/usr
	*system/lib/modules
	*system/lib/hw
	*system/lib/libncurses.so
	*system/etc/firmware
	*system/etc/vold.fstab
	*system/etc/vold.fstab.nand
	*system/etc/bluetooth

For Fixing Problems…

Code:
	*system/etc/permissions
	*system/etc/security
	*system/etc/audio
	*system/etc/wifi
	*system/lib/drm
	*system/lisystem/lib/soundfx

* Now Replace the Stock Boot.img to Port ROM!

* Now Open The Port ROM folder and go to META-INF/google/android and open updater-script in Notepad++

* Do the same for the Stock ROM

* Now In the Port ROM’s Updater Script, find a line that starts with this…

format(“…….

and only replace the mmcblk0p.. with the stock one!

* Do the same for this line…

mount(“…

Example:

This is the PORT one!!!

Code:
	format("ext4", "EMMC", "/dev/block/mmcblk0p5", "0", "/system");
	mount("ext4", "EMMC", "/dev/block/mmcblk0p5", "/system");

This is the Stock one!!

Code:
	format("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");
	mount("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");

Now just Replace the “mmcblk0p3” from STOCK to PORT!!

It should look like this:

Code:
	format("ext4", "EMMC", "/dev/block/mmcblk0p3", "0", "/system");
	mount("ext4", "EMMC", "/dev/block/mmcblk0p3", "/system");

DO NOT REPLACE THE WHOLE LINE!

Also Read:  How to create your own ehi file 2017

* Now go back to the Folder of Port ROM and You’ll see 2 folders & 1 file named

-META-INF
-system
-boot.img

* Now Select these three and Click Right Mouse Button and Click on 7-Zip ->> Add to Archive

* Now a dialouge box should appear!

* Configure the Format like This:

Archive format: ZIP

Compression Level : Normal

Compression Method: Deflate

Dictoioany Size: 32k

Word Size 32

* Now Start Zipping and Push the ZIP to your Memory Card

* Go to Recovery >> Install ZIP & Wipe Data

Finished!!

Now was that so hard?? Its a Really Easy thing to d0!!

Now Come to the Hard Part!!

Porting From Different SoCs ( Ex: MT6582 to MT7572 )

Read this carefully & apply the way i say!

* Take the ROM u want to port & name it PORT!
* Take your Stock ROM & Name it Stock
* Now Replace These files from Stock to PORT–

Code:
	*system/vendor
	*system/usr
	*system/lib/modules
	*system/lib/hw
	*system/lib/libncurses.so
	*system/etc/firmware
	*system/etc/vold.fstab
	*system/etc/vold.fstab.nand
	*system/etc/bluetooth

* Now Open build.prop in notepad++ & Search for this line

Code:
ro.mediatek.platform=MT65xx

Now Replace this (MT65xx) with your CPU!!

For Example

Code:
ro.mediatek.platform=MT6572

* Now Go To META-INF/google/android and open updater-script in notepad++

* Add this line between the lines of “set_perm”

Code:
set_perm(0, 0, 0644, "/system/vendor/lib/hw/gralloc.mt65xx.so");

[Replace the mt65xx with your cpu]

Example:

Code:
set_perm(0, 0, 0644, "/system/vendor/lib/hw/gralloc.mt6572.so");

* Now Go back to the Rom folder and Take the boot.img and decompile it with any bootimg-unpack tool!

Also Read:  How to Create a Recovery Flashable ZIP for Android Apps (2017)

* Now delete the zimage and rename boot.img-ramdisk to PORT-Ramdisk

* Now Do the Same for Stock boot.img and open the folder named PORT-ramdisk and copy all the fil PORT-[QUOTE]ramdisk to boot.img-ramdisk of your Stock boot.img

* Now Go to boot.img-ramdisk and open init.rc

* Now find these lines and replace with your cpu

Code:
	#Create Chip Property
	on early_property:ro.hardware=mt6582
		setprop ro.mtk.hardware mt6589
		
	on early_property:ro.hardware=mt6589
		setprop ro.mtk.hardware mt6589

example :

Code:
	#Create Chip Property
	on early_property:ro.hardware=mt6582
		setprop ro.mtk.hardware mt6572
		
	on early_property:ro.hardware=mt6589
		setprop ro.mtk.hardware mt6572

* Now Compile your New boot.img and Pack your New ROM and Flash!!

Cheers!!!!

Porting Lewa OS5 ROM:

* Replace These files from Stock to LeWa OS5 ROM

Code:
	*system/vendor
	*system/usr
	*system/lib/modules
	*system/lib/hw
	*system/etc/firmware
	*system/etc/vold.fstab
	*system/etc/vold.fstab.nand
	*system/etc/bluetooth

* Replace Stock boot.img to Lewa OS5 ROM

* Unpack boot.img

* Open init.rc

* Find these lines

Code:
	on early_property:ro.build.type=user
		write /proc/bootprof "INIT: user build setting"
		export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/secondary-framework.jar:/system/framework/CustomProperties.jar:/system/framework/mediatek-telephony-common.jar:/system/framework/mediatek-op.jar

	on early_property:ro.build.type=userdebug
		write /proc/bootprof "INIT: userdebug build setting"
		export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/secondary-framework.jar:/system/framework/CustomProperties.jar:/system/framework/mediatek-telephony-common.jar:/system/framework/mediatek-op.jar


	on early_property:ro.build.type=eng
		write /proc/bootprof "INIT: eng build setting"
		export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/secondary-framework.jar:/system/framework/CustomProperties.jar:/system/framework/mediatek-telephony-common.jar:/system/framework/mediatek-op.jar:/system/framework/emma.jar

* Now Add this line in the end of 1t and 3rd line

:/system/framework/lewa-framework.jar

Example:

Code:
	on early_property:ro.build.type=user
		write /proc/bootprof "INIT: user build setting"
		export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/secondary-framework.jar:/system/framework/CustomProperties.jar:/system/framework/mediatek-telephony-common.jar:/system/framework/mediatek-op.jar:/system/framework/lewa-framework.jar

	on early_property:ro.build.type=userdebug
		write /proc/bootprof "INIT: userdebug build setting"
		export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/secondary-framework.jar:/system/framework/CustomProperties.jar:/system/framework/mediatek-telephony-common.jar:/system/framework/mediatek-op.jar


	on early_property:ro.build.type=eng
		write /proc/bootprof "INIT: eng build setting"
		export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/secondary-framework.jar:/system/framework/CustomProperties.jar:/system/framework/mediatek-telephony-common.jar:/system/framework/mediatek-op.jar:/system/framework/emma.jar:/system/framework/lewa-framework.jar

* Now Compile the new boot.img and Repack your New Lewa OS5 ROM

Porting MiUI ROM

Replace These files from Stock to MiUI ROM


Code:
	*system/vendor
	*system/usr
	*system/lib/modules
	*system/lib/hw
	*system/etc/firmware
	*system/etc/vold.fstab
	*system/etc/vold.fstab.nand
	*system/etc/bluetooth

* Replace Stock boot.img to Lewa OS5 ROM

* Unpack boot.img
* Open init.rc
* Find these lines

Also Read:  How To Create Your Own Run Commands In Windows (4 Methods)

Code:
	on early_property:ro.build.type=user
		write /proc/bootprof "INIT: user build setting"
		export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/secondary-framework.jar:/system/framework/CustomProperties.jar:/system/framework/mediatek-telephony-common.jar:/system/framework/mediatek-op.jar

	on early_property:ro.build.type=userdebug
		write /proc/bootprof "INIT: userdebug build setting"
		export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/secondary-framework.jar:/system/framework/CustomProperties.jar:/system/framework/mediatek-telephony-common.jar:/system/framework/mediatek-op.jar


	on early_property:ro.build.type=eng
		write /proc/bootprof "INIT: eng build setting"
		export BOOTCLASSPATH /system/framework/core.jar:/system/framework/core-junit.jar:/system/framework/bouncycastle.jar:/system/framework/ext.jar:/system/framework/framework.jar:/system/framework/telephony-common.jar:/system/framework/mms-common.jar:/system/framework/android.policy.jar:/system/framework/services.jar:/system/framework/apache-xml.jar:/system/framework/mediatek-common.jar:/system/framework/mediatek-framework.jar:/system/framework/secondary-framework.jar:/system/framework/CustomProperties.jar:/system/framework/mediatek-telephony-common.jar:/system/framework/mediatek-op.jar:/system/framework/emma.jar

* Do the Same as Lewa and add this line in the end of 1st and 3rd line.

Code:
:/system/framework/miui-framework.jar

* Compile the New Boot.img and Repack your new ROM and FLash!!

Cheers!!

Enjoy your New ROM and Give Credits to me for if I Helped you!

For Advanced Users:

PORTING FIX:

Framework:

* decompile framework.jar

* Go to

Code:
\smali\com\mediatek

* Replace All Files from STOCK to this Folder

* Now go to

Code:
\smali\com\android\server

* Replace All Files from STOCK to this Folder

* Compile framework.jar and Push to Device!

* This Should FIX Bootloop, Mms.apk, Phone.apk, Settings.apk, Contacts.apk Force Close

* Fixing Other Problems:

Files related to Specific hardware:

* Replace if Not Working!!

* Camrea:

Code:
\system\lib\libcamalgo.so
\system\lib\libmhaldrv.so
\system\lib\libcamera_client.so
\system\lib\libcameracustom.so
\system\lib\libcameraprofile.so
\system\lib\libcameraservice.so

* GPS:

Code:
/system/xbin/libmnlp

* Bluetooth & Wifi:

Code:
/system/lib/libbluetooth_mtk.so
/system/lib/libbluetoothem_mtk.so

* Radio:

Code:
\system\lib\libaudio.a2dp.default.so
\system\lib\libaudio.primary.default.so
\system\lib\libaudiocompensationfilter.so
\system\lib\libaudiocustparam.so
\system\lib\libaudioeffect_jni.so
\system\lib\libaudioflinger.so
\system\lib\libaudiosetting.so
\system\lib\libfmar1000.so
\system\lib\libfmcust.so
\system\lib\libfmjni.so
\system\lib\libfmmt6616.so
\system\lib\libfmmt6620.so
\system\lib\libfmmt6626.so
\system\lib\libfmmt6628.so

* For Fixing Wifi & FM-Radio do this!

(NOT NEEDED IN MT6572)

Code:
fmradio.driver.chip=1

(Change it to 3 if yours is MT6628)

Code:
mediatek.wlan.chip=MT6620

(Replace mediatek.wlan.chip=MT6620 to your WLAM Chip Type Ex: mediatek.wlan.chip=MT6628 for MT6628)

Code:
mediatek.wlan.module.postfix=_mt6620

(Replace mediatek.wlan.module.postfix=_mt6620 to your WLAM Chip Type Ex: mediatek.wlan.module.postfix=_mt6628 for MT6628)

* Now open updater-script and Find this line or ADD a New one(If Not Found)!!

symlink(“wlan_mt6620.ko”, “/system/lib/modules/wlan.ko”)

(Replace wlan_mt6620.ko to your WLAM Chip Type Ex: wlan_mt6628.ko for MT6628)