[GUIDE] How To Port Any Custom Recovery To MTK

Port CWM/TWRP/PhilZ To Any MTK Device



Due to lack of development on many MTK devices there aren't any recoveries and people have a hard time flashing ROMs on their MTK Device. Today I am here with a guide to show you how to port a custom recovery to your MTK device. And I have been asked multiple times on how to port a recovery, so I finally decided to make a guide.

This guide will work on MT6572, MT6582, MT6577, MT6589, MT6592. MT6571 and it will also work on other variants of the above chipsets such as MT6582M, MT6589T, MT6592M and so on

This guide was written by Ajit Guraya at www.mtkroms.com
Do not replicate, duplicate and copy any of the content of this site

Things you need :
CarlivImage Kitchen : This is needed to unpack and repack the recovery (it will unpack any type of recovery)
- Stock boot.img and recovery.img
- A little time and patience
Carliv Touch Recovery (Download the recovery for your resolution)
Note : You can use port any recovery but make sure the resolution and chipset matches

How To :
- Rename stock recovery.img to stock_recovery.img and port recovery.img as port-recovery.img
- Just drag the recoveries in the .bat file in CarlivImage Kitchen and it will unpack them. 
- Replace from stock to port :
* meta_init.project.rc
* meta_init.rc
meta_init.modem.rc
* ueventd.rc
* ueventd.goldfish.rc
* fstab
* /etc/recovery.fstab
* replace kernel
* kernel_header (depends on the tool you used)

Note : Repack and test the recovery, whether it boots or not. After done unpack the new recovery and make the following changes 

- Compare default.prop of stock and port and only change the following lines (colored in red)
#
# ADDITIONAL_DEFAULT_PROPERTIES
#
ro.secure=0
ro.allow.mock.location=1
persist.mtk.aee.aed=on
ro.debuggable=1
persist.service.acm.enable=0
persist.sys.usb.config=mass_storage,adb
ro.bootloader.mode=download
ro.mount.fs=EXT4
# begin build properties
# autogenerated by buildinfo.sh
ro.build.id=KTU84Q
ro.build.display.id=cm_new-eng 4.4.4 KTU84Q 347d7427a4 test-keys
ro.build.version.incremental=347d7427a4
ro.build.version.sdk=19
ro.build.version.codename=REL
ro.build.version.release=4.4.4
ro.build.date=Tue Dec  9 16:23:16 EET 2014
ro.build.date.utc=0
ro.build.type=eng
ro.build.user=carliv
ro.build.host=max
ro.build.tags=test-keys
ro.product.brand=mtk
ro.product.name=cm_new
ro.product.board=
ro.product.cpu.abi=armeabi-v7a
ro.product.cpu.abi2=armeabi
ro.product.manufacturer=mtk
ro.product.locale.language=en
ro.product.locale.region=US
ro.wifi.channels=
ro.board.platform=mt6582
# ro.build.product is obsolete; use ro.product.device
ro.build.product=new
ro.product.model=new
ro.product.device=new
# Do not try to parse ro.build.description or .fingerprint
ro.build.description=cm_new-eng 4.4.4 KTU84Q 347d7427a4 test-keys
ro.build.fingerprint=mtk/cm_new/new:4.4.4/KTU84Q/347d7427a4:eng/test-keys
ro.build.characteristics=default
ro.cm.device=new
# end build properties
#
# from device/mtk/new/system.prop
#
#
# system.prop for new
#

#
# ADDITIONAL_BUILD_PROPERTIES
#
ro.rommanager.developerid=cyanogenmod
ro.com.google.clientidbase=android-google
keyguard.no_require_sim=true
ro.url.legal=http://www.google.com/intl/%s/mobile/android/basic/phone-legal.html
ro.url.legal.android_privacy=http://www.google.com/intl/%s/mobile/android/basic/privacy.html
ro.com.android.wifi-watchlist=GoogleGuest
ro.setupwizard.enterprise_mode=1
ro.com.android.dateformat=MM-dd-yyyy
ro.com.android.dataroaming=false
ro.build.selinux=1
persist.sys.dalvik.multithread=false
persist.sys.dun.override=0
persist.sys.root_access=1
ro.cm.version=11-20141209-UNOFFICIAL-new
ro.cm.releasetype=UNOFFICIAL
ro.modversion=11-20141209-UNOFFICIAL-new
ro.cmlegal.url=http://www.cyanogenmod.org/docs/privacy
persist.sys.recovery_update=false
ro.cm.display.version=11-20141209-UNOFFICIAL-new
ro.config.notification_sound=Argon.ogg
ro.config.alarm_alert=Hassium.ogg
ro.config.ringtone=Orion.ogg
ro.carrier=unknown
ro.ril.hsxpa=1
ro.ril.gprsclass=10
ro.adb.qemud=1
persist.sys.dalvik.vm.lib=libdvm.so
ro.kernel.android.checkjni=1
net.bt.name=Android
dalvik.vm.stack-trace-file=/data/anr/traces.txt

That's it you are good to go now. Hope you were able to port the recovery successfully.
Note : Please do not report minor bugs like USB storage not mount in PC from recovery. You can easily push files to sdcard if you mount it in recovery (not USB storage) and then push it via adb.
Some useful adb commands which are important and will help you to send files to sdcard while in recovery mode : 
http://www.mtkroms.com/2015/10/windows-guide-for-adb-mtk.html

Thanks To :
- Carliv : For his recovery and his tool
- Ajit Guraya : For The Guide
- Xtreme Porting Team : https://www.facebook.com/groups/mtkroms/

8 comments:

  1. Replies
    1. hi bro i port the twrp 3.0.0-0 for my laude pulse s800 mtk6582 bu dont recognizes the external sd :( can you help me

      Delete
  2. This guid is not working on MT6580 LP. I've used MT6582's Recoverys, MT6592 Recoverys & CTR recovery from XDA but I faild to port :(

    But I've ported CTR, COT, Philz, TWRP Recoverys using this method on MT6582 KK.

    is there any solution for MT6580 LP

    ReplyDelete
    Replies
    1. you must port a recovery for MT6580 LP

      Delete
    2. Which recovery/version will work on MT6580?

      Delete
  3. Then i can't port TWRP from qualcomm to mediatek?

    ReplyDelete
  4. Hey sir can you please teach me how to port a twrp recovery for lollipop mtk devices :(,, uevent.goldfish.rc and fstab are not present on my stock recovery :(

    ReplyDelete

Powered by Blogger.