Mediatek Helio P10 Development (Porting guides, bug fixes and more)

1,547 posts
Thanks Meter: 818
Post Reply Email Thread

Welcome to my all in one thread for Meditake Helio P10 thread.

The thread contains porting guides, bug fixes, general informations about the Helio P10 Chipset.
It goes on 3 parts:
Part 1: General Information
Part 2: Normal Porting guides, go to post #2
Part 3: Crossporting guides, go to post #3
Part 4: Bugs fixes (all in one place), go to post #4

Part 1: General information

Helio P10 is a SoC manufactured by MediaTek Inc. in the Q3 of 2015. It has 8 Cortex-A53 Cores clocked between 1.5 GHz and 2.0 GHz depending on the manufacturer. It supports the big.LITTLE technology and is an improved version of the MT6752. In the 8 cores, 4 are clocked at either 1.5 GHz, 1.8 GHz or 2.0 GHz. The other 4 cores are clocked between 1.0 GHz and 1.5 GHz.
It integrates the Mali-T860 GPU with 2 cores clocked between 500 MHz and 700 MHz. The Chipset supports LTE and other various technologies we could find on the MT6752. Compared to the MT6753, the Helio P10 is way faster but still appears to be somewhat slower than some MT6752. The fact is that the latter has all the 8 cores clocked at 1.7 GHz. That gives it the advantage in benchmarks for the price of the battery, however.

Currently, the following processors are built-on Helio P10 hardware:
  • MT6738 = 1.5 GHz + 1.0 GHz (Mali-T860MP2 - 500 MHz)
  • MT6750 = 1.5 GHz + 1.0 GHz (Mali-T860MP2 - 500 MHz)
  • MT6750T = 1.5 GHz + 1.0 GHz (Mali-T860MP2 - 700 MHz)
  • MT6755 = 1.8 GHz + 1.2 GHz (Mali-T860MP2 - 700 MHz) or 2.0 GHz + 1.2 GHz (Mali-T860MP2 - 700 MHz)
  • MT6755T (Helio P15) = 2.2 GHz + 1.2 GHz (Mali-T860MP2 - 800 MHz)

So, it's clear now that:
MT6738, MT6750 and MT6750T are the same. Just called differently ...
MT6750 is an underclocked version of MT6755. Both use the same hardware which is Helio P10 board. It is like MT6735 & MT6753; both use MT6735 board.
The Following 6 Users Say Thank You to Nonta72 For This Useful Post: [ View ] Gift Nonta72 Ad-Free
29th August 2017, 04:13 PM |#2  
Nonta72's Avatar
OP Senior Member
Flag Speed Force
Thanks Meter: 818
Donate to Me
Normal Porting guides
Now that you know your hardware, let's move on with porting.
I will not tell you how to get your stock ready. I assume you already how to do that.
I will instead go straight with the porting guides.
There are: normal porting and crossporting.

Before you start, understand that:
These guides have been tested on a MT6750 device i.e Doogee Y6. The software is AOSP with a slightly modified frameworks. Devices with custom skins are usually known to be hard to handle. AmigoOS based devices are always hard to manage when it comes to rom porting. Same way, it is hard to port AmigoOS to another device.
I take no responsiblility if anything go wrong. Your device, your choices, your responsibility.

Normal Porting guides

Note: By normal, I meant MT6755 to MT6750 and vice-versa.

Method 1: Port just the kernel

Unpack it with carliv image kitchen and copy boot.img-kernel from stock unpacked boot to port unpacked boot folder and repack. Use the modded boot.img. If the rom doesn’t boot, then move to crossport method. Bug fixing is after that method.

Method 2: Files replace method

Note: Go with either A or B.

A) Simplified process

  1. Download this archive from here
  2. Unpack it. Replace its files with those from your stock rom. You can delete those that aren’t in your stock rom but present in the archive.
  3. Repack the archive. And name it for example (
  4. Now, download any rom for 6750 or 6755. Port kernel as stated in the beginning of this guide. Flash the ROM and the ported boot.img. You can use SPFT or TWRP.
  5. Boot to TWRP if you flashed with SPFT.
  6. Flash the patch you made in step 3. Reboot and test. You can also on step 4 copy the contents of your patch and paste them into the unpacked ROM that you want to port. And then port the kernel and make the flashable ROM directly. I have also attached a file having the files you need to make the patch. You can download it if you don’t like the step 2 of this guide. Here is the file

B) The other method


  1. Download or clone this repo
  2. Unpack it (if you’ve downloaded it instead of cloning).
  3. Make your own vendor folder by referring to the files in the unpacked p9000 repo. If a file is in p9000 repo but isn’t in your stock rom, then skip it. You can also download this file
  4. Refer to the files stated inside it to make your own repo folder. Remember: file names in lib/hw and lib64/hw will differ according to your CPU. For MT6750, it will be for example It is the same as
  5. After making your own repo as stated in step 3, copy files from this repo folder to your port rom and replace when prompted. You can also make a flashable zip file so that you can flash that zip on every rom you want to port without unpacking its system.img. Download the META-INF from this link , move it in a folder called PATCH. Make another folder inside that one alongside META-INF and name it system, copy folders from your own repo (bin, etc, lib, lib64 and vendor), paste them in system folder of PATCH. Zip both META-INF and system folders.
  6. It is important to edit the build.prop IF YOU ARE CROSSPORTING 6755 to 6750 and vice-versa! Edit it and change these values: ro.board.platform=mt6750 (or MT6755, depending on your CPU). ro.sf.lcd_density=320 (or your stock or preferred DPI, 320 for HD displays; 480 for FHD displays)
  7. Port the kernel as stated in the first method. But you’ve to also copy this file from ramdisk: fstab.mt6755. Some roms will refuse to boot with this method, like EMUI 4.1. So instead, do this: Copy these files from port ramdisk to stock ramdisk: default.prop; init.environ.rc; sepolicy; services_contexts. Repack stock boot.img and use it. Some roms will still bootloop even with that. So instead, copy these from stock ramdisk to port ramdisk: all files with mt6755 in their name in your stock ramdisk. Replace when prompted. Repack port boot.img and flash it.

The Following 4 Users Say Thank You to Nonta72 For This Useful Post: [ View ] Gift Nonta72 Ad-Free
29th August 2017, 04:13 PM |#3  
Nonta72's Avatar
OP Senior Member
Flag Speed Force
Thanks Meter: 818
Donate to Me
Crossporting guides
Before you start, note that this part is intended for advanced users. Expect least support in this section as it's all about experimenting. If it works, horray! Great! Else, I ... DON'T ... KNOW, MAN;

Here I will share how to port ROMs from MT6735 and MT6753 to MT6750 and MT6755.
Since MT6735 and MT6753 use the same hardware e.g MT6735 and also MT6750 and MT6755 use the same hardware MT6755 ; it’s possible to port ROMs from MT6735 and MT6753 to MT6750 and MT6755.

The guide goes on four parts:
Part 1: System Folder patching
Part 2: Boot.img patching
Part 3: Additional steps
Part 4: Bug fixes

All steps are important. You cannot skip one of them.
Before you start, note that the guide has been tested on a MT6750 device. It should work on any MT6750 or MT6755 device, technically. CyanogenMod/LineageOS based ROMs may not be ported using this guide.

Part 1: System Folder patching

Notes :
If the name is in italic it means it’s a folder and you have to copy it entirely.
If you have MT6755, you should copy the files having MT6755 in their names in lib/hw & lib64/hw i.e
If you can’t find a file in your stock ROM, skip it.


1) Now, copy these from your stock rom to the port one:

*** BIN ***

*** ETC ***
audio_param (whole folder)
firmware (whole folder)
fmr (whole folder)
mddb (whole folder)



*** LIB ***

*** LIB/EGL ***

*** LIB/HW ***


*** LIB64 ***

*** LIB64/EGL ***

*** LIB64/HW ***

*** LIB64/SOUNDFX ***

*** VENDOR/LIB ***



*** XBIN ***

2) After that, remove the files with 6735 or 6753 in their names from Port rom’s lib/hw and lib64/hw.
3) Edit build.prop and change all instances of 6735 or 6753 to 6750 or 6755. And change the DPI to the one that matches your stock DPI as well as the rotation line value (usually 0).

Part 2: Boot.img patching

You can patch boot.img using various methods. Try them all if needed!


Method 1: Stock boot.img directly

Use stock boot.img directly (will likely cause bootloop)

Method 2: Patch the Stock boot.img

  1. Unpack Stock and Port boot.img
  2. Copy these from port: default.prop, init.environ.rc, sepolicy, services_contexts.
  3. Paste them in stock boot.img and replace the existing ones.
  4. If there is a proprietary rc file (for example: init.huawei.rc, init.miui.rc, init.flyme.rc etc), copy it from port to stock and then open the stock init.rc file and add import /init.proprietary_file_name.rc at the beginning. Note that the proprietary_file_name corresponds to the name given by the OEM to the file (init.miui.rc for instance, miui is the name here).
  5. Pack the boot.img
    The ROM should boot, but chances are that few things will force close. if so, add the extra files from port ramdisk. This step is too sensitive! Apply with care. Some proprietary files in the ramdisk can cause the device to bootloop or worst stuck on the kernel logo.

Method 3: Patch the port boot.img
  1. Open your unpacked stock boot. Copy these files from stock boot to port boot:
  2. Open stock ramdisk and copy all the files with 6755 in their names.
  3. Paste them in port ramdisk. Delete any file in port ramdisk that has 6735 in its name.
  4. Select all the files in port ramdisk folder. Click edit with Notepad ++ (you need to have installed Notepad ++ of course).
  5. In Notepad ++, click “Ctrl + H”. In “Find what” column, write 6735. In “Replace with” column write 6755. Click “Replace All in All opened documents”.
  6. Now, right click on a file name in Notepad ++ (on the top), choose “Close all BUT this”. You’ll be prompted if you want to save the changes to the files modified. Always choose “Yes”.
  7. Pack the boot.img
    At this point, your ROM should boot but you’ll eventually suffer wifi and bt switches problems (or even the camera opening). If those happen, copy init.project.rc and meta_init.project.rc from your stock ramdisk to port ramdisk. Replace existing ones and pack the boot.img

Part 3: Additional steps

Note: Because it says additional doesn’t mean it’s expandable!


After copying the files in part 1 to the port ROM, your ROM should boot (80% of the cases). But you will need this step to fix the bugs like camera, audio and everything else.

  1. Open your Stock ROM and the Port ROM side by side.
  2. Go to stock/bin and copy everything, paste the files in port/bin. When prompted, DO NOT REPLACE!
  3. Repeat the same process for these folders: ETC, PERMISSIONS, LIB, LIB/HW, LIB64, LIB64/HW, VENDOR, XBIN.

That’s it for now. Enjoy it!
The Following 4 Users Say Thank You to Nonta72 For This Useful Post: [ View ] Gift Nonta72 Ad-Free
29th August 2017, 04:14 PM |#4  
Nonta72's Avatar
OP Senior Member
Flag Speed Force
Thanks Meter: 818
Donate to Me
Bug fixes (all in one place)
So, you've booted your ROM?
Awesome! But I'm 100% sure that everything doesn't work. So, we need to try to fix the things that don't work.

This part contains fixes for Fingerprint, Audio, Camera, RIL (network) and more.

Fingerprint bug fix

This guide is intended to be used on MT6750 and MT6755 devices. It might work on other MT67xx devices like MT6797, MT6753 and MT6735. You’ll have to try and find out!


Please follow these steps. All of them!


  1. Open your stock ROM and port ROM side by side.
  2. Go to system/lib/hw in both ROMs.
  3. Compare the files in both hw folders.
    Check your stock ROM for these files:
    For MT6750
    For MT6755
    Note: device_name depends on the device you’re porting the ROM from. For Meizu U10 Flyme ROM, it was
  4. 5. If stock ROM DOES NOT HAVE the above files and Port ROM also DOES NOT HAVE them. Then it’s fine! Move to step 8.
  5. If your stock ROM DOES HAVE the above files, copy them and paste them in port. If they are in port, replace them. If they are not in port, just add them.
  6. If Stock ROM DOES NOT HAVE them but Port ROM DOES HAVE them; then remove them from port. THIS IS IMPORTANT.
  7. Copy fingerprintd from sotck system/bin and paste it in port system/bin. REPLACE when prompted.
  8. Copy all files from stock system/bin and paste them in port system/bin. DO NOT REPLACE anything when prompted. The goal is to have stock extra files in port ROM.
  9. Repeat the above step with lib, lib64 (and their subfolders), etc root directory files, permissions, vendor/lib & vendor/lib64 and xbin.
  10. Repack the ROM and test it!

  • I did not need to patch boot.img. But if you need it, you can do it. I just don’t know how to help you here ... The best solution would be to replace mt675x files in port ramdisk with stock ones.
  • Common sense is required to properly understand this guide. For instance, if you’re porting an MT6755 rom to an MT6750, you should be looking for files like in port ROM and in stock ROM.
  • After everything, you MUST remove all mt6750 or mt6755 files from hw folders if you’re doing a crossport (6755 to 6750 or vice-versa).
  • Sometimes the fingerprint works but the fingerprint option in settings still force close. So, you might want to set up fingerprint for the first time the ROM boots.
  • If everything fails, open Terminal Emulator and type fingerprintd. If the terminal then appears to be stuck, then your fingerprint is initialized, something else is wrong. Recheck the steps above then.
  • Fingerprint bug is hard to fix. Each device has its own fingerprint drivers. You have to identify your fingerprint drivers and copy them to the appropriate locations. After that, you MUST remove the other fingerprint files for the port device to avoid conflict between the files.
    For my device, the fingerprint files are:

    Most of the time, you will need to remove or add all the files that start with fp or goodix or gx from lib, lib64 and bin folders.

RIL (network signal and IMEI issue) fix



RIL bug is a minor bug that can normally be fixed by using firmware and mddb folders from your stock rom. Sometimes, it doesn’t help. You’ll still face RIL issue like network drop, no 3G/4G/LTE, no VOLTE etc. This happens when you try to port a chinese ROM. Chinese roms mostly use a different kind of VoLTE called SrLTE (sometimes ViLTE). I’m not sure what’s the difference, but they are apparently not the same. So, this is the report of my research.


To fix RIL. You have to try one or all of these methods:
I assume you’ve already replaced firmware and mddb from stock to port! If not, start with that! And then follow one or all of these steps.

Build.prop method


  1. Compare your stock build.prop to port build.prop
  2. Remove the extra lines that are related to RIL from port build.prop
  3. Add extra lines from your stock build.prop to port one
  4. Make sure to remove any line where ViLTE or SrLTE has been mentioned unless your stock build.prop does have such lines.
  5. Use the edited build.prop

Boot.img method


  1. Unpack your stock boot.img and port boot.img
  2. Copy init.modem.rc and meta_init.modem.rc from stock to port ramdisk.
  3. Compare your stock ramdisk to port ramdisk (the ramdisk folder contents themselves).
  4. If your stock ramdisk has files like init.volte.rc, go to B), otherwise, go to A). You SHALL NOT follow A) and B) for the same device at the same time. It will not make sense.
    A) Remove any extra file from port ramdisk that is related to RIL. These, mostly, are:
    - init.mal.rc
    - init.volte.rc

    B) If the above files are in your stock ramdisk, then copy them to port ramdisk.
    Open init.mt6755.rc and make sure that these lines are defined in the very first section:
    import /init.volte.rc
    import /init.mal.rc
  5. Repack boot.img and flash it.

Binary replace method


  1. Open init.modem.rc of your stock ramdisk
  2. Scroll down until you see “start service”
    For example:
    service gsm0710muxd /system/bin/gsm0710muxd -s /dev/ttyC0 -f 512 -n 8 -m basic
    class core
    user root
    group radio cache inet misc
    Here, we take note of gsm0710muxd
  3. Take note of the files mentioned in this section. Keep taking note until you reach the end of the file.
  4. Copy the mentioned files from stock system/bin. If you can’t find a file in stock but it has been mentioned in init.modem.rc; just skip it!
  5. Paste them in port system/bin and replace.
    Hint: You do not need to make a flashable zip every time. Just copy these files with Root explorer (use v3.8.8 for easy use), create a folder in system/bin and name it “ril”, paste the files in that folder, select all of them and change permissions to “755” or “rwxr-xr-x”. Copy them to system/bin, paste them and replace if prompted.
  6. Go to your stock system/lib and copy these files (skip those that don't exist):
  7. Paste them in port system/lib and replace
  8. Repeat the previous step for system/lib64
  9. Reboot and RIL should be good now.
  10. If RIL still has issues. Then go to stock system/lib and check if there is any file with volte and/or viarild in its name. If not, then check port system/lib for the same files, if they’re there; remove them.
  11. Repeat the same for system/lib64.

That's it for RIL!
If you don’t read the entire guide, please don’t ask why, what or how!

Audio Bug fix

Normally Audio works if the ROM is properly ported! But if for some reasons it does, then try these:

  1. Copy from lib/hw and lib64/hw of your stock ROM and paste them in port one.
  2. If it still doesn’t, then you can copy libaudio*.so (meaning all files with audio in their names) from your stock rom’s lib and lib64 to port rom. Use with care, some audio files can cause bootloop.
  3. You might also need to copy all the files starting with audio from etc folder of your stock rom to the port rom. That should fix Bluetooth Headset Audio bug as well.

Camera bug fix

Camera bug is the most irritating of all them, yet the hardest one to fix! The following steps allowed me to fix the camera on various ROMs on my Doogee Y6. It might definitely not work on your phone because each device has its own camera files. Here are the steps:

  1. Copy and from lib/hw and lib64/hw of your stock ROM to port ROM.
  2. Copy all camera files from your stock rom’s lib and lib64 folders except,,
    If camera still doesn't work, try using another camera app. This is important especially when you crossport a MT67xx ROM to another MT67xx! Due to platform differences, the MT6735/MT6753 camera apps for instance are mostly incompatible with MT6750/MT6755. So, the stock camera apps in these roms will likely not work in your ported ROM. There is no solution to that besides using another camera app.

Settings Force, Security Settings force bugs fix


If you get settings app for close or security settings force close, remove these from port rom’s lib/hw and/or lib64/hw: (device_name refers to the device codename).

That's all for now. Thanks for reading!
The Following 6 Users Say Thank You to Nonta72 For This Useful Post: [ View ] Gift Nonta72 Ad-Free
30th August 2017, 10:18 PM |#6  
Nonta72's Avatar
OP Senior Member
Flag Speed Force
Thanks Meter: 818
Donate to Me
Originally Posted by iykeDROID™

Very educative in a way.
Well scripted.
Thumbs Up buddy .

Thanks buddy,
I hope it helped
The Following 5 Users Say Thank You to Nonta72 For This Useful Post: [ View ] Gift Nonta72 Ad-Free
29th January 2018, 08:28 AM |#7  
Junior Member
Thanks Meter: 0
Very educative in a way.
Thumbs Up buddy .
I‘m ported all doogee y6 rom to my huawei enjoy6 (it is MT6750 device),but fingerprint and c2k not work,expect this post is helpful to me, thank you!
30th January 2018, 11:00 AM |#8  
Junior Member
Thanks Meter: 0
How do you fix huawei emui fingerprint bug?I tried all the methods, but it was still not work。
3rd February 2018, 08:31 AM |#9  
Nonta72's Avatar
OP Senior Member
Flag Speed Force
Thanks Meter: 818
Donate to Me
Originally Posted by justsoso

Very educative in a way.
Thumbs Up buddy .
I‘m ported all doogee y6 rom to my huawei enjoy6 (it is MT6750 device),but fingerprint and c2k not work,expect this post is helpful to me, thank you!

Requires that you remove incompatible files from the rom and put the compatible ones.
Of course, for that you need to identify files responsible for C2K and fingerprint.
3rd February 2018, 08:31 AM |#10  
Nonta72's Avatar
OP Senior Member
Flag Speed Force
Thanks Meter: 818
Donate to Me
Originally Posted by justsoso

How do you fix huawei emui fingerprint bug?I tried all the methods, but it was still not work。

See here
The fixes fingerprint.
5th February 2018, 12:44 PM |#11  
Junior Member
Thanks Meter: 1
will this working on YU YUNICORN(MTK-6755)? which rom should i choose to port from elephone p9000(which would make porting easier)?
can we port 7.1.2 nougat using base rom as 6.0 mm (using this guide ) help me bruh....i'm newbie
Post Reply Subscribe to Thread


Guest Quick Reply (no urls or BBcode)
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes