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

Search This thread

Nonta72

Senior Member
Mar 27, 2013
1,547
743
Speed Force
MediaTek-Helio-P10.jpg

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.
 
Last edited:

Nonta72

Senior Member
Mar 27, 2013
1,547
743
Speed Force
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 mega.nz
  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 Cross6.0_device-name.zip (Cross6.0_Y6.zip)
  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 mega.nz

B) The other method

  1. Download or clone this repo https://github.com/Deepflex/android_vendor_elephone_p9000
  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 mega.nz
  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 audio.primary.mt6750.so. It is the same as audio.primary.mt6755.so
  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 mega.nz , 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.
 
Last edited:

Nonta72

Senior Member
Mar 27, 2013
1,547
743
Speed Force
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 camera.mt6755.so
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:

Code:
*** BIN ***
6620_launcher
akmd8963
akmd8975
akmd09911
ami304d
applysig
audiocmdservice_atci
bmm050d
ccci_fsd
ccci_mdinit
emdlogger1
factory
fuelgauged
geomagneticd
gsm0710muxd
gzip_static
kpoc_charger
mc6420d
md_ctrl
mdlogger
memsicd
memsicd3416x
meta_tst
mobile_log_d
msensord
mtk_agpsd
mtkrild
muxreport
netdiag
nvram_daemon
orientationd
pq
s62xd
slpd
terservice
thermal_manager
vold
wifi2agps
wmt_loader

*** ETC ***
audio_param (whole folder)
firmware (whole folder)
fmr (whole folder)
mddb (whole folder)
ecc_list.xml
factory.ini
mtklog-config.prop

*** PERMISSIONS ***
android.hardware.bluetooth.xml
android.hardware.bluetooth_le.xml
android.hardware.camera.xml
android.hardware.faketouch.xml
android.hardware.location.gps.xml
android.hardware.microphone.xml
android.hardware.sensor.accelerometer.xml
android.hardware.sensor.light.xml
android.hardware.sensor.proximity.xml
android.hardware.telephony.gsm.xml
android.hardware.touchscreen.multitouch.distinct.xml
android.hardware.touchscreen.multitouch.jazzhand.xml
android.hardware.touchscreen.multitouch.xml
android.hardware.touchscreen.xml
android.hardware.usb.accessory.xml
android.hardware.usb.host.xml
android.hardware.wifi.direct.xml
android.hardware.wifi.xml
android.software.live_wallpaper.xml
android.software.managed_users.xml
android.software.sip.voip.xml
android.software.sip.xml
android.software.webview.xml
com.android.location.provider.xml
com.android.media.remotedisplay.xml
com.android.mediadrm.signer.xml
com.google.android.maps.xml
com.google.android.media.effects.xml
com.google.widevine.software.drm.xml
handheld_core_hardware.xml
media_codecs.xml
platform.xml

*** FRAMEWORK ***
com.google.widevine.software.drm.jar

*** LIB ***
lib3a.so
lib3a_sample.so
libacdk.so
libaed.so
libaudiocompensationfilter.so
libaudiocomponentengine.so
libaudiocustparam.so
libaudiopolicymanager.so
libbessound_hd_mtk.so
libblisrc.so
libblisrc32.so
libbluetooth_mtk.so
libbluetooth_mtk_pure.so
libbt-vendor.so
libbwc.so
libcam.camadapter.so
libcam.camnode.so
libcam.camshot.so
libcam.client.so
libcam.device1.so
libcam.device3.so
libcam.exif.so
libcam.exif.v3.so
libcam.hal3a.v3.dng.so
libcam.hal3a.v3.so
libcam.halsensor.so
libcam.iopipe.so
libcam.metadata.so
libcam.metadataprovider.so
libcam.paramsmgr.so
libcam.sdkclient.so
libcam.utils.cpuctrl.so
libcam.utils.sensorlistener.so
libcam.utils.so
libcam_hwutils.so
libcam_mmp.so
libcam_platform.so
libcam_utils.so
libcam1_utils.so
libcam3_app.so
libcam3_hwnode.so
libcam3_hwpipeline.so
libcam3_pipeline.so
libcam3_utils.so
libcamalgo.so
libcamdrv.so
libcameracustom.so
libccci_util.so
libcustom_nvram.so
libcvsd_mtk.so
libdngop.so
libdpframework.so
libdrmmtkutil.so
libdrmmtkwhitelist.so
libfeatureio.so
libfeatureiodrv.so
libfgauge.so
libfile_op.so
libfmcust.so
libgas.so
libged.so
libgpu_aux.so
libgralloc_extra.so
libHEVCdec_sa.ca7.android.so
libhwm.so
libimageio.so
libimageio_plat_drv.so
libion_mtk.so
libJpgDecPipe.so
libJpgEncPipe.so
libm4u.so
libmal.so
libmatv_cust.so
libmdfx.so
libmdloggerrecycle.so
libmemoryDumpEncoder.so
libmhalImageCodec.so
libMiraVision_jni.so
libmmprofile.so
libmmsdkservice.so
libmnl.so
libmp4enc_sa.ca7.so
libmrdump.so
libmsbc_mtk.so
libmtcloader.so
libmtk_drvb.so
libmtk_mmutils.so
libmtkcamera_client.so
libmtkjpeg.so
libmtklimiter.so
libMtkOmxCore.so
libMtkOmxVdecEx.so
libMtkOmxVenc.so
libmtkshifter.so
libn3d3a.so
libnvram.so
libnvram_daemon_callback.so
libnvram_platform.so
libnvram_sec.so
libnvramagentclient.so
libperfservicenative.so
libpq_prot.so
libpqservice.so
librilmtk.so
libshowlogo.so
libSonyIMX230PdafLibrary.so
libspeech_enh_lib.so
libstagefrighthw.so
libSwJpgCodec.so
libvc1dec_sa.ca7.so
libvcodec_oal.so
libvcodec_utility.so
libvcodecdrv.so
libvp8dec_sa.ca7.so
libvp9dec_sa.ca7.so
mtk-ril.so
mtk-rilmd2.so

*** LIB/EGL ***
egl.cfg
libGLES_mali.so

*** LIB/HW ***
audio.primary.mt6750.so
audio_policy.default.so
bluetooth.default.so
camera.mt6750.so
gps.mt6750.so
gralloc.mt6750.so
hwcomposer.mt6750.so
lights.mt6750.so
memtrack.mt6750.so
sensors.mt6750.so

*** LIB/SOUNDFX ***
libdownmix.so

*** LIB64 ***
lib3a.so
lib3a_sample.so
libacdk.so
libaed.so
libaudiocompensationfilter.so
libaudiocomponentengine.so
libaudiocustparam.so
libaudiopolicymanager.so
libbessound_hd_mtk.so
libblisrc.so
libblisrc32.so
libbluetooth_mtk.so
libbluetooth_mtk_pure.so
libbwc.so
libcam.camadapter.so
libcam.camnode.so
libcam.camshot.so
libcam.client.so
libcam.device1.so
libcam.device3.so
libcam.exif.so
libcam.exif.v3.so
libcam.hal3a.v3.dng.so
libcam.hal3a.v3.so
libcam.halsensor.so
libcam.iopipe.so
libcam.metadata.so
libcam.metadataprovider.so
libcam.paramsmgr.so
libcam.sdkclient.so
libcam.utils.cpuctrl.so
libcam.utils.sensorlistener.so
libcam.utils.so
libcam_hwutils.so
libcam_mmp.so
libcam_platform.so
libcam_utils.so
libcam1_utils.so
libcam3_app.so
libcam3_hwnode.so
libcam3_hwpipeline.so
libcam3_pipeline.so
libcam3_utils.so
libcamalgo.so
libcamdrv.so
libcameracustom.so
libccci_util.so
libcustom_nvram.so
libcvsd_mtk.so
libdngop.so
libdpframework.so
libdrmmtkutil.so
libdrmmtkwhitelist.so
libfeatureio.so
libfeatureiodrv.so
libfile_op.so
libfmcust.so
libgas.so
libged.so
libgpu_aux.so
libgralloc_extra.so
libhwm.so
libimageio.so
libimageio_plat_drv.so
libion_mtk.so
libJpgDecPipe.so
libJpgEncPipe.so
libm4u.so
libmal.so
libmatv_cust.so
libmdfx.so
libmdloggerrecycle.so
libmhalImageCodec.so
libminiui.so
libMiraVision_jni.so
libmmprofile.so
libmmsdkservice.so
libmrdump.so
libmsbc_mtk.so
libmtk_drvb.so
libmtk_mmutils.so
libmtkcamera_client.so
libmtkjpeg.so
libmtklimiter.so
libMtkOmxCore.so
libmtkshifter.so
libn3d3a.so
libnvram.so
libnvram_daemon_callback.so
libnvram_platform.so
libnvram_sec.so
libnvramagentclient.so
libperfservicenative.so
libpq_cust.so
libpq_prot.so
libpqservice.so
librilmtk.so
libSonyIMX230PdafLibrary.so
libspeech_enh_lib.so
libstagefrighthw.so
libterservice.so
libvcodec_oal.so
libvcodec_utility.so
libvcodecdrv.so
mtk-ril.so

*** LIB64/EGL ***
libGLES_mali.so

*** LIB64/HW ***
audio.primary.mt6750.so
audio_policy.default.so
camera.mt6750.so
gps.mt6750.so
gralloc.mt6750.so
hwcomposer.mt6750.so
lights.mt6750.so
memtrack.mt6750.so
sensors.mt6750.so

*** LIB64/SOUNDFX ***
libdownmix.so

*** VENDOR/LIB ***
libwvdrm_L3.so
libwvm.so
libWVStreamControlAPI_L3.so

*** VENDOR/LIB/DRM ***
libdrmwvmplugin.so

*** VENDOR/LIB/MEDIADRM ***
libwvdrmengine.so

*** XBIN ***
mnld

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:
    Code:
    boot.img-base
    boot.img-board
    boot.img-cmdline
    boot.img-kernel
    boot.img-kernel_offset
    boot.img-pagesize
    boot.img-ramdisk_offset
    boot.img-ramdisk-compress
    boot.img-tags_offset
  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!
 
Last edited:

Nonta72

Senior Member
Mar 27, 2013
1,547
743
Speed Force
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!

THE FIXES

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
    gatekeeper.mt6750.so
    gatekeeper.device_name.so
    keystore.mt6750.so
    libMcGatekeeper.so
    For MT6755
    gatekeeper.mt6755.so
    gatekeeper.device_name.so
    keystore.mt6755.so
    libMcGatekeeper.so
    Note: device_name depends on the device you’re porting the ROM from. For Meizu U10 Flyme ROM, it was gatekeeper.u10.so
  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!

Notes

  • 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 gatekeeper.mt6755.so in port ROM and gatekeeper.mt6750.so 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:
    bin/fingerprintd
    lib64/hw/fingerprint.default.so
    lib64/fprint-x64.so

    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

Literature

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.

FIXES

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
    disabled
    oneshot
    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):
    libradio.so
    libradio_metadata.so
    libradioservice.so
    libreference-ril.so
    libril.so
    librilmtk.so
    librilmtkmd2.so
    librilutils.so
    mtk-ril.so
    mtk-rilmd2.so
    volte_imsm.so
  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 audio.primary.mt6750.so 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 camera.mt6750.so and camera.default.so 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 libcameraservice.so, libcamera_client.so, libcamera_metadata.so
    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:

libGatekeeper.so
gatekeeper.mt67xx.so
gatekeeper.mt67xx.so
gatekeeper.device_name.so (device_name refers to the device codename).
libMcGatekeeper
keystore.mt67xx.so
keystore.mt67xx.so

That's all for now. Thanks for reading!
 
Last edited:

justsoso

Member
Sep 7, 2017
5
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!:eek::eek::eek:
 

justsoso

Member
Sep 7, 2017
5
0
How do you fix huawei emui fingerprint bug?I tried all the methods, but it was still not work。
 

Nonta72

Senior Member
Mar 27, 2013
1,547
743
Speed Force
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!:eek::eek::eek:

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.
 

Anstonfern

Member
Jan 31, 2018
9
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
 

Anstonfern

Member
Jan 31, 2018
9
1
@Nonta72 Sir,Can You please reupload the Simplified process(A) mega link plox....

---------- Post added at 04:55 PM ---------- Previous post was at 04:55 PM ----------

[/COLOR @Nonta72 Sir,Can You please reupload the Simplified process(A) mega link plox....
 

aljoscha81

Senior Member
Apr 23, 2016
1,339
105
MediaTek-Helio-P10.jpg

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.
Can You please reupload all the mega links they are all down
 

moda20

Senior Member
Aug 21, 2014
73
5
Hey ! I am trying to port a rom for my device and I couldn't understand exactly the kernel porting method. my stock rom is on the left and the port rom is lineage Os made for a same chipset (MTK6755) device (Vernee Mars). I can't figure out if I need to copy boot_verified.img from stock and replace with it boot.img on port or should I go by unpacking ( which I did try but didn't work while I am on osx 10.13 ) and packing. please help me here.
QRx1fgm
 

jellybean13

Senior Member
Aug 16, 2017
64
43
Linyi
I tried to port MT6735 to MT6797 several days ago, but I failed (When the device showed boot logo, after 5 seconds, the device rebooted automatically).
Info:
Base (MT6797):
Android version: 6.0 MRA58K
OS: MIUI
Kernel version: 3.18.22+
Port (MT6735):
Android version: 7.1.1 NMF26O
OS: MediaTek AOSP
Kernel version: 3.18.35

What should I do?
How to port boot image when base ROM and port ROM have different Android version and kernel version?

Sent from my nikel using XDA Labs
 

jellybean13

Senior Member
Aug 16, 2017
64
43
Linyi
Problems porting boot image:
Files not found.
Tool: Image Factory.

Sent from my nikel using XDA Labs
 

Attachments

  • Screenshot_20180817-213830.jpg
    Screenshot_20180817-213830.jpg
    192.2 KB · Views: 282
  • Screenshot_20180817-213633.png
    Screenshot_20180817-213633.png
    167.2 KB · Views: 282

xdamodded

Member
Jul 16, 2012
19
1
HTC Desire 10 Pro Dual Sim ...

Just a thought - I am no developer, but it seems my HTC Desire 10 Pro Dual Sim fits same Chipset

Wondering if possible to do Porting on it too!

I checked and re-checked before buying this phone [used almost new!] and the only thing I did NOT check was if there was a Qualcomm in it!

I trusted HTC - this is last time I do!

Mind it is a great phone and I am super happy and passed my old M8s to my partner!

Shall I get it back?
:confused:
 

Top Liked Posts

  • There are no posts matching your filters.
  • 5
    MediaTek-Helio-P10.jpg

    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.
    5
    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!

    THE FIXES

    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
      gatekeeper.mt6750.so
      gatekeeper.device_name.so
      keystore.mt6750.so
      libMcGatekeeper.so
      For MT6755
      gatekeeper.mt6755.so
      gatekeeper.device_name.so
      keystore.mt6755.so
      libMcGatekeeper.so
      Note: device_name depends on the device you’re porting the ROM from. For Meizu U10 Flyme ROM, it was gatekeeper.u10.so
    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!

    Notes

    • 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 gatekeeper.mt6755.so in port ROM and gatekeeper.mt6750.so 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:
      bin/fingerprintd
      lib64/hw/fingerprint.default.so
      lib64/fprint-x64.so

      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

    Literature

    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.

    FIXES

    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
      disabled
      oneshot
      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):
      libradio.so
      libradio_metadata.so
      libradioservice.so
      libreference-ril.so
      libril.so
      librilmtk.so
      librilmtkmd2.so
      librilutils.so
      mtk-ril.so
      mtk-rilmd2.so
      volte_imsm.so
    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 audio.primary.mt6750.so 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 camera.mt6750.so and camera.default.so 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 libcameraservice.so, libcamera_client.so, libcamera_metadata.so
      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:

    libGatekeeper.so
    gatekeeper.mt67xx.so
    gatekeeper.mt67xx.so
    gatekeeper.device_name.so (device_name refers to the device codename).
    libMcGatekeeper
    keystore.mt67xx.so
    keystore.mt67xx.so

    That's all for now. Thanks for reading!
    5
    Very educative in a way.
    Well scripted.
    Thumbs Up buddy .

    Thanks buddy,
    I hope it helped ;)
    3
    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 mega.nz
    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 Cross6.0_device-name.zip (Cross6.0_Y6.zip)
    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 mega.nz

    B) The other method

    1. Download or clone this repo https://github.com/Deepflex/android_vendor_elephone_p9000
    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 mega.nz
    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 audio.primary.mt6750.so. It is the same as audio.primary.mt6755.so
    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 mega.nz , 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.
    3
    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 camera.mt6755.so
    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:

    Code:
    *** BIN ***
    6620_launcher
    akmd8963
    akmd8975
    akmd09911
    ami304d
    applysig
    audiocmdservice_atci
    bmm050d
    ccci_fsd
    ccci_mdinit
    emdlogger1
    factory
    fuelgauged
    geomagneticd
    gsm0710muxd
    gzip_static
    kpoc_charger
    mc6420d
    md_ctrl
    mdlogger
    memsicd
    memsicd3416x
    meta_tst
    mobile_log_d
    msensord
    mtk_agpsd
    mtkrild
    muxreport
    netdiag
    nvram_daemon
    orientationd
    pq
    s62xd
    slpd
    terservice
    thermal_manager
    vold
    wifi2agps
    wmt_loader
    
    *** ETC ***
    audio_param (whole folder)
    firmware (whole folder)
    fmr (whole folder)
    mddb (whole folder)
    ecc_list.xml
    factory.ini
    mtklog-config.prop
    
    *** PERMISSIONS ***
    android.hardware.bluetooth.xml
    android.hardware.bluetooth_le.xml
    android.hardware.camera.xml
    android.hardware.faketouch.xml
    android.hardware.location.gps.xml
    android.hardware.microphone.xml
    android.hardware.sensor.accelerometer.xml
    android.hardware.sensor.light.xml
    android.hardware.sensor.proximity.xml
    android.hardware.telephony.gsm.xml
    android.hardware.touchscreen.multitouch.distinct.xml
    android.hardware.touchscreen.multitouch.jazzhand.xml
    android.hardware.touchscreen.multitouch.xml
    android.hardware.touchscreen.xml
    android.hardware.usb.accessory.xml
    android.hardware.usb.host.xml
    android.hardware.wifi.direct.xml
    android.hardware.wifi.xml
    android.software.live_wallpaper.xml
    android.software.managed_users.xml
    android.software.sip.voip.xml
    android.software.sip.xml
    android.software.webview.xml
    com.android.location.provider.xml
    com.android.media.remotedisplay.xml
    com.android.mediadrm.signer.xml
    com.google.android.maps.xml
    com.google.android.media.effects.xml
    com.google.widevine.software.drm.xml
    handheld_core_hardware.xml
    media_codecs.xml
    platform.xml
    
    *** FRAMEWORK ***
    com.google.widevine.software.drm.jar
    
    *** LIB ***
    lib3a.so
    lib3a_sample.so
    libacdk.so
    libaed.so
    libaudiocompensationfilter.so
    libaudiocomponentengine.so
    libaudiocustparam.so
    libaudiopolicymanager.so
    libbessound_hd_mtk.so
    libblisrc.so
    libblisrc32.so
    libbluetooth_mtk.so
    libbluetooth_mtk_pure.so
    libbt-vendor.so
    libbwc.so
    libcam.camadapter.so
    libcam.camnode.so
    libcam.camshot.so
    libcam.client.so
    libcam.device1.so
    libcam.device3.so
    libcam.exif.so
    libcam.exif.v3.so
    libcam.hal3a.v3.dng.so
    libcam.hal3a.v3.so
    libcam.halsensor.so
    libcam.iopipe.so
    libcam.metadata.so
    libcam.metadataprovider.so
    libcam.paramsmgr.so
    libcam.sdkclient.so
    libcam.utils.cpuctrl.so
    libcam.utils.sensorlistener.so
    libcam.utils.so
    libcam_hwutils.so
    libcam_mmp.so
    libcam_platform.so
    libcam_utils.so
    libcam1_utils.so
    libcam3_app.so
    libcam3_hwnode.so
    libcam3_hwpipeline.so
    libcam3_pipeline.so
    libcam3_utils.so
    libcamalgo.so
    libcamdrv.so
    libcameracustom.so
    libccci_util.so
    libcustom_nvram.so
    libcvsd_mtk.so
    libdngop.so
    libdpframework.so
    libdrmmtkutil.so
    libdrmmtkwhitelist.so
    libfeatureio.so
    libfeatureiodrv.so
    libfgauge.so
    libfile_op.so
    libfmcust.so
    libgas.so
    libged.so
    libgpu_aux.so
    libgralloc_extra.so
    libHEVCdec_sa.ca7.android.so
    libhwm.so
    libimageio.so
    libimageio_plat_drv.so
    libion_mtk.so
    libJpgDecPipe.so
    libJpgEncPipe.so
    libm4u.so
    libmal.so
    libmatv_cust.so
    libmdfx.so
    libmdloggerrecycle.so
    libmemoryDumpEncoder.so
    libmhalImageCodec.so
    libMiraVision_jni.so
    libmmprofile.so
    libmmsdkservice.so
    libmnl.so
    libmp4enc_sa.ca7.so
    libmrdump.so
    libmsbc_mtk.so
    libmtcloader.so
    libmtk_drvb.so
    libmtk_mmutils.so
    libmtkcamera_client.so
    libmtkjpeg.so
    libmtklimiter.so
    libMtkOmxCore.so
    libMtkOmxVdecEx.so
    libMtkOmxVenc.so
    libmtkshifter.so
    libn3d3a.so
    libnvram.so
    libnvram_daemon_callback.so
    libnvram_platform.so
    libnvram_sec.so
    libnvramagentclient.so
    libperfservicenative.so
    libpq_prot.so
    libpqservice.so
    librilmtk.so
    libshowlogo.so
    libSonyIMX230PdafLibrary.so
    libspeech_enh_lib.so
    libstagefrighthw.so
    libSwJpgCodec.so
    libvc1dec_sa.ca7.so
    libvcodec_oal.so
    libvcodec_utility.so
    libvcodecdrv.so
    libvp8dec_sa.ca7.so
    libvp9dec_sa.ca7.so
    mtk-ril.so
    mtk-rilmd2.so
    
    *** LIB/EGL ***
    egl.cfg
    libGLES_mali.so
    
    *** LIB/HW ***
    audio.primary.mt6750.so
    audio_policy.default.so
    bluetooth.default.so
    camera.mt6750.so
    gps.mt6750.so
    gralloc.mt6750.so
    hwcomposer.mt6750.so
    lights.mt6750.so
    memtrack.mt6750.so
    sensors.mt6750.so
    
    *** LIB/SOUNDFX ***
    libdownmix.so
    
    *** LIB64 ***
    lib3a.so
    lib3a_sample.so
    libacdk.so
    libaed.so
    libaudiocompensationfilter.so
    libaudiocomponentengine.so
    libaudiocustparam.so
    libaudiopolicymanager.so
    libbessound_hd_mtk.so
    libblisrc.so
    libblisrc32.so
    libbluetooth_mtk.so
    libbluetooth_mtk_pure.so
    libbwc.so
    libcam.camadapter.so
    libcam.camnode.so
    libcam.camshot.so
    libcam.client.so
    libcam.device1.so
    libcam.device3.so
    libcam.exif.so
    libcam.exif.v3.so
    libcam.hal3a.v3.dng.so
    libcam.hal3a.v3.so
    libcam.halsensor.so
    libcam.iopipe.so
    libcam.metadata.so
    libcam.metadataprovider.so
    libcam.paramsmgr.so
    libcam.sdkclient.so
    libcam.utils.cpuctrl.so
    libcam.utils.sensorlistener.so
    libcam.utils.so
    libcam_hwutils.so
    libcam_mmp.so
    libcam_platform.so
    libcam_utils.so
    libcam1_utils.so
    libcam3_app.so
    libcam3_hwnode.so
    libcam3_hwpipeline.so
    libcam3_pipeline.so
    libcam3_utils.so
    libcamalgo.so
    libcamdrv.so
    libcameracustom.so
    libccci_util.so
    libcustom_nvram.so
    libcvsd_mtk.so
    libdngop.so
    libdpframework.so
    libdrmmtkutil.so
    libdrmmtkwhitelist.so
    libfeatureio.so
    libfeatureiodrv.so
    libfile_op.so
    libfmcust.so
    libgas.so
    libged.so
    libgpu_aux.so
    libgralloc_extra.so
    libhwm.so
    libimageio.so
    libimageio_plat_drv.so
    libion_mtk.so
    libJpgDecPipe.so
    libJpgEncPipe.so
    libm4u.so
    libmal.so
    libmatv_cust.so
    libmdfx.so
    libmdloggerrecycle.so
    libmhalImageCodec.so
    libminiui.so
    libMiraVision_jni.so
    libmmprofile.so
    libmmsdkservice.so
    libmrdump.so
    libmsbc_mtk.so
    libmtk_drvb.so
    libmtk_mmutils.so
    libmtkcamera_client.so
    libmtkjpeg.so
    libmtklimiter.so
    libMtkOmxCore.so
    libmtkshifter.so
    libn3d3a.so
    libnvram.so
    libnvram_daemon_callback.so
    libnvram_platform.so
    libnvram_sec.so
    libnvramagentclient.so
    libperfservicenative.so
    libpq_cust.so
    libpq_prot.so
    libpqservice.so
    librilmtk.so
    libSonyIMX230PdafLibrary.so
    libspeech_enh_lib.so
    libstagefrighthw.so
    libterservice.so
    libvcodec_oal.so
    libvcodec_utility.so
    libvcodecdrv.so
    mtk-ril.so
    
    *** LIB64/EGL ***
    libGLES_mali.so
    
    *** LIB64/HW ***
    audio.primary.mt6750.so
    audio_policy.default.so
    camera.mt6750.so
    gps.mt6750.so
    gralloc.mt6750.so
    hwcomposer.mt6750.so
    lights.mt6750.so
    memtrack.mt6750.so
    sensors.mt6750.so
    
    *** LIB64/SOUNDFX ***
    libdownmix.so
    
    *** VENDOR/LIB ***
    libwvdrm_L3.so
    libwvm.so
    libWVStreamControlAPI_L3.so
    
    *** VENDOR/LIB/DRM ***
    libdrmwvmplugin.so
    
    *** VENDOR/LIB/MEDIADRM ***
    libwvdrmengine.so
    
    *** XBIN ***
    mnld

    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:
      Code:
      boot.img-base
      boot.img-board
      boot.img-cmdline
      boot.img-kernel
      boot.img-kernel_offset
      boot.img-pagesize
      boot.img-ramdisk_offset
      boot.img-ramdisk-compress
      boot.img-tags_offset
    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!