[Guide]How To Port & Modify Roms For Mediatek[Everything]

Search This thread

greatpapa

Senior Member
Apr 15, 2012
136
67
BEst guide from beast

Thanks for your Ultimate and beautiful detailed guide.....I also ported more than 15 custom roms with help of this guide.:good::good::good:
 

BB23482

Senior Member
Feb 22, 2017
91
6
S0MEWHERE IN S0MEWHERE
ADDING CUSTOM KERNEL

CUSTOM KERNEL ZIP STRUCTURE:-
->>Meta-inf
->>system/lib/modules
->>boot.img




  • For Adding it to your rom extract your kernel zip or drag and drop system/lib/modules/all files to port rom and replace all.
  • Then switch to kitchen and press "0" for advance option and then 12 for extracting boot.img.Here press "a" for extracting boot.img from any folder.Hit enter,you will see a folder created named like "bootimg_041114_230352" and put your custom kernel boot.img in it.
  • Now press Enter then kitchen will extract it in same folder.
  • Then back to kitchen 12 th menu of extraction of boot.img,here press "w" to extract boot.img from working folder,so it will extract boot.img from port rom(which is present in working folder) to BOOT-EXTRACTED folder under Kitchen.
  • Now copy zImage from previous extracted folder "bootimg_041114_230352" to BOOT-EXTRACTED folder and replace it.
  • Press b in kitchen to repack boot.img.All done.

What we have done above- We used zImage(from boot.img) of custom kernel in port rom boot.img and used all system/lib/modules folder from Custom kernel zip.

How can i overclocked my custom kernel?
 

Sal_X9

New member
Apr 13, 2018
1
0
Can I Port a rom of nougat 7.1 to a device running lollipop 5.0? I have both base and Port rooms with Same kernel version (3.10.54+)
Currently my device Doesn't have any custom kernel...
 

rauliordache

Senior Member
Sep 13, 2017
89
25
Hi.

I have two OFFICIAL builds for my device:
- the first one, 3.10.65+ kernel, with Lollipop 5.1 and
- the second one, 3.18.35+ kernel, with Nougat 7.0

1. The first build, has the bootloader locked, and in FastBoot, the volume-UP button doesn't work (for confirming the fastboot oem unlock)
2. The second build can be unlocked (the bootloader) - and thus custom ROMs can be booted.

I want to port some ROMs with 3.10.65+ (because all ROMs with 3.18.35+ have some problems on my device).
I have changed the partition layout, and TWRP works great in flashing the new build (3.10.65+), but I got a bootloop.

Porting ROMs with the same kernel (3.18.35+) works "great", but have several bugs (related to vendor libs, GPS libs, and maybe even kernel). As the original ROM (it also has those problems)
Porting ROMs with the 3.10.65+, even after changing the fstab, kernel (from boot.img) + partition layouts, cannot be booted.

The question is: Is it possible to have the second build flashed (which has another preloader + lk.bin) from 3.18.35+ - whos bootloader can be unlocked - , and then, using the files from the first build to port a ROM with kernel 3.10.65+ ? Or I am trying the "impossible" ?

In fact, I am not mixing "kernels" regarding boot.img. I am "mixing" a preloader+lk.bin (from a build, which runs Nougat, on 3.18.35+ kernel and with different partition names) with boot.img+system (based on 3.10.65+)

Thank you!
 

Munk.3

Senior Member
Nov 26, 2023
106
17
I've always seen porting threads but is It possible to port a system.IMG from actual stock firmware from manufacture?

(You know, the sp flash tools img.s)

I've always tried but always failed.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 73
    PORTING ROMS FOR MEDIATEK​


    FEATURE OF THIS GUIDE- NOOB -> EXPERT

    I DONT KNOW THE METHOD I USE TO PORT WILL WORK FOR OTHER CHIPSET DEVICES OR NOT AS I ONLY USED MEDIATEK DEVICE.


    IF YOU ARE IN A HURRY THEN SEE HERE MY 1-MIN PORTING GUIDE.

    AND YOU CAN FIND HERE MY TRICKY CONCEPT- "X" TO SAVE MONEY,TIME,NET DATA.


    Credits
    @dsixda for awesome android kitchen @rua1 for Mtk Dorid Tools @knzo for tweaks @https://www.otaupdatecenter.pro/ and their team for OTA. @tech mashido As Helper

    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    WORK BEGINS
    --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

    THINGS NEEDED


    (INSTALL BELOW THINGS AS PER YOUR OS BIT VERSION,IF YOU HAVE 32 BIT OS THEN INSTALL 32 BIT STUFFS AND IF YOU HAVE 64 BIT OS THEN CHOOSE 64 BIT STUFFS.
    • WIndows Running PC or Laptop.
    • JAVA - Download
    • Cygwin - Download
    • 7zip Compressor-Download
    • Notepad++ -Download
    • Android Kitchen- Download
    • Time(as per you how much take to understand)
    • Your Base Rom(stock Rom,in any format-CWM flashable or SP_tools Flashable,Prefer to have Both)
    • CWM Recovery
    • SD card & Card Reader.(some phones do not have SD slot so no worry for them,i have alternative way)
    • APKTOOL- DOWNLOAD
    • SP_Flash Tools to Unbrick In case Device Get Bricked- Download



    SETTING UP IMPORTANT THINGS FIRST

    JAVA

    • Download Java From Above link as per your OS type.
    • Install it by running its setup like normal softwares.


    CYGWIN

    • Download Cygwin From Above link.
    • Extract the Zip
    • By default it will be installed at c:\cygwin .i also recommend to install at default location.
    • Run Setup and Select "Install from Local Directory"
    • Then is will ask for packages location.Verify it.
    • Hit next-next and finish at the end.
    • Now you see a Cygwin folder under "C" drive and a shortcut Icon at desktop.
      *For some 64 BIT users this method might not work,they can download setup from here-Download & install it from internet instead from local packages and select all packages during installation.


    7ZiP

    • Download 7Zip From Above link as per your OS type.
    • Install it by running its setup like normal softwares.


    Notepad++

    • Download Notepad++ From Above link as per your OS type.
    • Install it by running its setup like normal softwares.



    dsixda's Android Kitchen

    • Download dsixda's Android Kitchen From Above link.
    • Extract it and then it will be like this- Android-Kitchen-0.224\Android-Kitchen-0.224\orgianal_update,tools etc....
    • Now open Android-Kitchen-0.224 folder and you will again find Android-Kitchen-0.224 folder,then rename it to only " kitchen " (small letters).
    • Now directory will look like this- Android-Kitchen-0.224\kitchen\orgianal_update,tools etc....
    • Now copy that kitchen folder which we renamed and paste to c:\cygwin\home"your_username""paste here"
    • Now your cygwin directory will look like this- C:\cygwin\home\your_username\kitchen\orignal_update,tools,etc.....
    • To check Kitchen is working,open cygwin from desktop and type - "cd kitchen" and hit enter(small letters).
    • If no error shown then you have sucessfully installed it or if error like- bash:cd :kitchen:No such file or dirctory hen you should check above steps again.
    • >>OPENING KITCHEN- open cygwin,type "cd kitchen" hit enter,now type " ./menu " and hit enter.Now kitchen will load.




    PORTING CWM RECOVERY(PORT IF YOUR DEVICE DO NOT HAVE IT)- ROOT REQUIRE


    • Download and install ADB drivers on PC first.DOWNLOAD
    • Get MTK Droid tools From Here and Extract-HERE
    • Now go to developers option and enable USB debugging.If you cant find Developers option then go to settings/about Phone and press 7 times on BUILD NUMBER then you will see Developers option under settings.
    • Open MTK Droid tools on pc and then plug your device(turned on) via usb cable.Now the tool will recognise your device and connect to it(if asked for root permission on device then grant).
    • If the colour indicator in the bottom left corner is green in MTK Droid Tools,then you already have root shell,and can go on to the next step, if it is yellow, click on the root button at the bottom, and wait for the progress bar, if the indicator stays yellow, or you get an error message, this probably means you do not have Busybox installed, you can install it from the Google play store. When the indicator turns to green you have root shell which is necessary for this operation.
    • Now click on 'root,backup,recovery' and then select 'to use boot from phone'
    • Now click on 'recovery and boot'
    • Then you will see a dialogue box will appear asking if you want to 'make cwm recovery automatically' click yes.
    • The tool will then create the recovery and then another dialogue box will appear asking to 'install created recovery to phone', click yes.
    • Now you reboot into recovery mode and check that it is working fine or not.
    • You can find generated cwm recovery under MTK Droid Tools location.
    • If you want to revert to stock recovery then take recovery.img from your stock rom(sp_tools) and paste into sd card.And then install mobileuncletools from playstore and click on update recovery and select your stock recovery from SD.Same method for installing CWM recovery.


    WHICH ROMS YOU CAN PORT

    • Port rom should be of same android version as your stock rom.Like if your stock rom is 4.2 then you should only try with 4.2.In some cased you can port higher versions like kikat too,it will require Custom kernel but we are skipping that.
    • The device from you porting should have same chipset,like if your device is MT6589 then you shoul only try with MT6589 chip-sets.You can port from MT6589T to MT6589 or MT659M but you cannot port from MT6592.
    • Choose the port rom from most close specification device,like screen size,screen resolution,dual-sim,etc....higher resolution to lower resolution resolution or lower to higher can be ported but not all boots up.
    Some Sites To get Port Rom:-
    anzhuodiy.com
    romzj.com
    dashi.com
    shendu.com
    needrom.com
    39
    PORTING

    PORTING​

    >>>>Follow STEP I if you have port rom flashable via cwm.To check that your rom is flashable vai cwm see above post for structure.Those who having SP Tools flashable port rom follow StepII directly.<<<<



    First we will port and check that rom boots or not by simple way,then if it boots then we will modify it and tweak it by using kithcen.Or you can skip this step I and directly follow step II but you have to do almost all things from step I in Step II except modifying updater script.If you do these things in step I then no need to do in Step II.

    STEP I​




    • [*]Make a folder and name it as you want and copy and paste your port rom zip in it,means make a clone file of it and we will be working with clone zip,always keep in mind.I said to copy paste as if your rom did not boot up then you have a backup of clean port rom.

      [*]Now create a folder under original update of kitchen- " WORKING_XXXX "

      [*]Then open zip using 7zip(make 7zip is as default app) and drag drop boot.img to " WORKING_XXXX " folder.Now Open kitchen and Press 1 to setup working Folder.And go with default in all steps forward.(keep 7zip opened,you will need to drag back boot.img in it)

      [*]After working folder setuped.Now press 0 for advance option and hit enter.Now press 12 and hit enter.Now you press "w" to extract boot.img from working folder.

      [*]After sucessful extraction you will find a folder under kitchen named BOOT EXTRACTED.

      [*]Now you have to copy zImage from stock boot extracted folder(which was created by you in second post last step) to this BOOT EXTRACTED folder and replace it.

      [*]Then switch to kitchen and press "b" to build boot.img from BOOT EXTRACTED folder then after repacking boot.img finish,you have to drag and drop only boot.img(kitchen/working folder)(not meta-inf) to port rom zip.



      [*]Now Open System Folder In port Zip and drag drop build.prop file out of it to anywhere you wish.

      [*]Now edit it with Notepad++.

      [*]Add this line if you are porting from a higher resolution device- ro.sf.lcd.density=220 .Change its value after rom boots as to your display resolution.If after rom boots up and everything looking large then reduce the value and if looking small then increase it.

      [*]You can Edit These Values as desired:-

      Code:
      ro.build.id=
      ro.build.display.id=
      ro.custom.build.version=
      ro.build.version.release=This is Andriod version That Displays in Settings
      ro.product.model=
      ro.product.brand=
      ro.product.name=
      ro.product.device=
      ro.product.manufacturer=
      ro.build.bluetooth.name=

      [*]EDIT BELOW LINES TO SET YOUR TIMEZONE AND AREA REGION.You can find your default details in your stock rom's build.prop which you extracted earlier.
      Code:
      ro.product.locale.language=(en for English,ru for Russian and other similar codes for other language)
      ro.product.locale.region=(us for usa, IN for india etc.)
      persist.sys.timezone=( Asia/kolkata for india,Asia/... different for different regions)

      [*]Now after editing done drag build.prop to port zip.



      [*]Now keep opened port zip one side and open stock rom system folder which we extracted in post 2.

      [*]Open System/etc/firmware in both zip and stock folder.Now drag modem.img from stock folder to zip and drop it.

      [*]Now head to lib folder in both.Here you have to drag and drop libcamercustom.so file to port zip.

      [*]Go to system/lib/modules now,here drag and drop mtk_stp_wmt.ko file to port zip.If rom did not boots forward then you should drag and drop whole modules folder under system/lib of port zip.

      [*]Go to usr/keylayout in both and drag drop Generic.kl file from stock to port zip.

      [*]Lastly drag and drop a launcher like nova,apex or any to system/app/ of port zip in case port launcher did not worked.

      [*]IF you rom did not booted by applying all above steps then replace these folder/files from stock to port:-
      1)system/etc/firmware
      2)system/lib/hw
      3)system/lib/modules
      4)system/vendor



      [*]If your cwm port rom zip have these files then delete those.
      ---uboot.bin
      ---preloader
      ---logo.bin(you can keep it but you need your stock logo.bin which is available in sptool flahable roms.I will also tell you how to create own logo.bin and bootanimation in below post.)

      [*]Your zip should look like this-
      --Meta-inf
      --system
      --boot.img
      --data (in some roms)



      [*]After deleting the extra files you need to modify the updater script which can be found under,Meta-inf/com/google/android/updater-script...we are modifying by own only this time as we have to check only.During building rom from kitchen,it will be automatically created
      as we registered our device.If we do not register our device in kitchen then during making roms from kithcen our current updater script will converted to update script which will be again converted to updater script and that will cause installation aborted error.

      [*]Now drag and drop updater script from zip to anywhere and open it with notepad++,now find lines below-
      Code:
      format("ext4", "EMMC", "/dev/block/[COLOR="DarkOrange"]mmcblk0p7[/COLOR]", "0");
      format("ext4", "EMMC", "/dev/block/[COLOR="DarkOrange"]mmcblk0p5[/COLOR]", "0");
      mount("ext4", "EMMC", "/dev/block/[COLOR="Red"]mmcblk0p7[/COLOR]", "/data");
      mount("ext4", "EMMC", "/dev/block/[COLOR="Red"]mmcblk0p5[/COLOR]", "/system");

      [*]Here you have to deal with text in red.Your updater script may be different so use your brain and understand what i am saying forward.Text in red is mount point.In above mmcblk0p7 is mount point of data folder and mmcblk0p5 is mount point of system folder.So you need to replace mount points of updater script with your device mount points.You must found mount points of your device during registering device to kitchen.So open recovery.fstab or that kitchen/tool/edify_defs/your file with notepad++ and copy replace mount points from your device file to updater-script of port zip.If you find those lines any more places in updater script then also replace there.Here you only need some mind to use.For example if you edited and replaced red text then you must also replace orange text as they are also same.

      [*]Remove the lines of the files which you removed in zip if there,like uboot.bin,logo.bin,preloader etc...they will look like below codes,you only need to find the line matching to the file you removed and deleat that.

      Code:
      package_extract_file("uboot.bin", "/dev/uboot");
                      or
      assert(package_extract_file("uboot.img", "/tmp/uboot.img"),
             write_raw_image("/tmp/uboot.img", "uboot"),
             delete("/tmp/uboot.img"));
                     or
      assert(package_extract_file("preloader.img", "/tmp/preloader.img"),
             write_raw_image("/tmp/preloader.img", "preloader"),
             delete("/tmp/preloader.img"));

      [*]And replace this line
      Code:
      assert(package_extract_file("boot.img", "/tmp/boot.img"),
             write_raw_image("/tmp/boot.img", "bootimg"),
             delete("/tmp/boot.img"));

      From this if any error occurs during installtion like boot.img assert failed.

      Code:
      package_extract_file("boot.img", "/dev/boot");

      [*]Drag back the updater-script to zip from where it was taken from.

    What we have done above is that we drag and drop some stock files from stock rom to port zip without extrating it.

    Now you are good to flash your ported rom.Make CWM backup if you want to go back to previous rom or rom did not booted.After that wipe data factory reset,wipe cache partition,wipe dalvic cahce under advance option and then format system under mount and storage OF CWM RECOVEY then install zip from sd card and install your zip.I said SD card in first post if your rom did not booted and you understood your mistake and modified your port rom zip then you can do that directly by transferring zip to sd and flash instead of installing or restoring another rom.But for the users with not sd card must save their CWM backup or a working cwm flahable Rom zip otherwise they will have to reflash the rom by SP tools if rom didnot booted.


    STEP II​

    NOTES BEFORE BEGINNING STEP II :-

    • If you ported your ROM using STEP I and booted then for modifying use this STEP II.
    • If you tried porting rom using STEP I but it is showing installation aboted then follow this STEP II directly.
    • IF you have SP Flash tools format port rom and you extracted system folder and boot.img from your stock rom using my method then Follow STEP II directly.
    • STEP II contains some steps from STEP I,so if you already did those steps in STEP I and using same zip here then you can skip steps here.If you get confused then again do all steps.




    STEP(A)- ADDING A WORKING FOLDER IN KITCHEN
    FOR CWM ROM:-


    • Create a folder " WORKING_XXXX " under kitchen/original _update if you haven't.If you having it then check that it is empty.
    • Now open your port zip (or zip you ported through STEP I and was booted) and extract its System and boot.img to "WORKING_XXXX " folder.
    • Open kitchen and press "1" to setup a working folder.
    • Press Enter and select "WORKING_XXXX " folder by it assigned digit and hitting Enter
    • Now it will ask for name,you may change it or leave it,it does not matter.Skip it by pressing Enter.
    • It will start copying files to a working folder,wait sometime.
    • After it will ask to view Rom info,then press Y and see its info as your wish.
    • Now you have a working folder setup-ed.


    FOR SP TOOLS ROM:-


    • Extract system.img & boot.img from port rom zip to C;\cygwin\home\username\kitchen\original_update
    • Run Kitchen and press "1" to setup working folder and hit enter.
    • Now again hit Enter,this time it will ask you to choose an option to select working folder,Select system.img&boot.img one folder by pressing its value and hitting enter.
    • Now it will ask about changing working folder name,leave it as default and hit enter.So kitchen will now start copying rom to working folder.
    • After Copying files it will auto prompt and open Ext2Explore application.In some cases it will show that error message that "unable to read disk,please make sure you are running appliacation with administrative rights."But don't worry,click ok.
    • Now after Ext2Explore opened,click on "FILE" on upper left corner and click on "OPEN IMAGE".Now browse to kitchen directory and go through newly created working folder and you will find "ext4_system.img" under system folder.Select it.
    • Right click on file selected in Ext2Explore and Click on SAVE,now browse to same folder where "ext4_system.img" was.Means newly created working folder/system under kitchen directory.
    • Then it will extract "ext4_system.img" to same folder.After finishing extraction close the Ext2Explore application.Now hit Enter in kitchen and go with default then Press y to view ROM info as per your wish.
    • Now you have a working folder setup-ed.



    STEP(B)-Porting Rom
    PATCHING BOOT.IMG:-

    • After successful creation of working folder you will find a new folder created named like-"WORKING_041214_135729".
    • Open kitchen then Press 0 for advance option and hit enter.Now press 12 and hit enter.Now you press "w" to extract boot.img from working folder.
    • After sucessful extraction you will find a folder under kitchen named BOOT EXTRACTED.
    • Now you have to copy zImage from stock boot extracted folder(which was created by you in second post last step) to this BOOT EXTRACTED folder and replace it.
    • Now switch to kitchen and press "b" to build boot.img from BOOT EXTRACTED folder then after repacking boot.img finish press x to exit and back to main menu.

    Editing Build Prop:-

    • you will find build.prop under kitchen/your_working_folder/system/
    • Edit build.prop with notepad++
    • You can Edit These Values as desired:-
      Code:
      ro.build.id=
      ro.build.display.id=
      ro.custom.build.version=
      ro.build.version.release=This is Andriod version That Displays in Settings
      ro.product.model=
      ro.product.brand=
      ro.product.name=
      ro.product.device=[B][U][COLOR="Red"]NAME OF FILE WHICH YOU USED TO REGISTER YOUR DEVICE TO KITCHEN[/COLOR][/U][/B]
      ro.product.manufacturer=
      ro.build.bluetooth.name=
    • EDIT BELOW LINES TO SET YOUR TIMEZONE AND AREA REGION.You can find your default details in your stock rom's build.prop which you extracted earlier.
      Code:
      ro.product.locale.language=(en for English,ru for Russian and other similar codes for other language)
      ro.product.locale.region=(us for usa, IN for india etc.)
      persist.sys.timezone=( Asia/kolkata for india,Asia/... different for different regions)
    • Add this line if you are porting from higher resolution deice or lower resolution device.If from higher to lower then put lower values and if lower to higher then put higher values.
      Code:
      ro.sf.lcd_density=xxx
    • Now after editing done save it and exit.


    Patching Rom With Some STOCK Rom Files:-

    • Copy modem.img from stock Rom- System/etc/firmware to kitchen/working_folder/system/etc/firmware and replace it.
    • Copy libcamercustom.so file from stock Rom- System/lib to kitchen/working_folder/system/lib and replace it.
    • Copy mtk_stp_wmt.ko file from stock Rom- System/lib/modules to kitchen/working_folder/system/lib/modules and replace it.If ROM not booted then replace whole modules.
    • Copy Generic.kl file from stock Rom- System/usr/keylayout to kitchen/working_folder/system/usr/keylayout and replace it.
    • Download any launcher apk from net link nova,apex etc and paste into kitchen/working_folder/system/app/
    • If after Building rom from next step,your rom did not booted then replace these files from stock to port then build rom.
      1)system/etc/firmware
      2)system/lib/hw
      3)system/lib/modules
      4)system/vendor

    Building Rom
    • After all above steps done,now switch to kitchen and press 99 to build ROM.
    • But before pressing 99 check that you put name of file by which you registered your device to kitchen in build.prop/ro.product.device="".If you registered with name x then put like this-ro.product.device="x"
    • If you have not done above step then you will get installation aborted error during installation.If you are confused to register device send me required fies as asked by me in above post.
    • After all checked now press 99
    • Select Build Option 1 then hit Enter
    • Now it will ask to zip-lang the apk,do as your wish.
    • After that step it will convert Updater Script and ask two option,Proceed or cancel,then Proceed by pressing "y".
    • It will then start making update.zip.Wait some time.
    • Next it will ask to sign the zip or not?You should go with default by signing update zip by hitting Enter or Pressing "y" then pressing enter.It will take some time.
    • After that if you want to change your ROM name then put desired name by pressing y or leave as it is by hitting Enter or 'N' then enter.
    • Collect you rom.zip from Output_zip folder created under kitchen directory.
    • Flash it and check it.
    • If you find some bugs then see post below to solve bugs or if you are not able to find bug solution below then post it.I will tell you how to solve it if i know.

    I have ported 10+ Roms using this method,this should work for you too.Hopes that your ROM will boot.Good Luck.​
    36
    SOLVING BUGS

    BUG SOLVING USES HIT AND TRIAL METHOD.I mentioned one or more ways to solve,you try one by one and see which works for you.

    FM NOT WORKING:-

    COPY THESE FILES FROM STOCK TO PORT:-
    \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

    OR try this
    system/etc/firmware/mt6620_patch_e3_hdr.bin
    system/etc/firmware/mt6620_patch_e6_hdr.bin-> If yours is MT6628, you'll need to patch all mt6628_fm_*_*.bin too
    system/etc/firmware/WMT.CFG-> This is the antenna cfg, without this, FMradio cannot receive clearly

    system/lib/modules/mtk_fm_drv.ko
    system/lib/libfmcust.so


    For WiFi Bluethooth:-

    system/lib/modules/mtk_wmt_wifi.ko -> After patching, both works & can be individually switch on/ off

    system/lib/libbluetooth_mtk.so
    system/lib/libbluetoothem_mtk.so -> MTK Engineering will show MT6628 if not patch...

    system/etc/firmware -> if yours is MT6628, you'll need to patch all WIFI_RAM_CODE_* too



    For GPS:-

    ->>>> system/xbin/libmnlp
    or, If you porting From MT6628 to MT6620, some apps at system/vendor/operator/ is blocking GPS so just delete all apps & use MTK Engineering mode to confirmed it...

    Edit in build.prop
    fmradio.driver.chip=1 -> if yours is MT6628 then change it to 3
    mediatek.wlan.chip=MT6620 -> if yours is MT6628 then change last digit to 8
    mediatek.wlan.module.postfix=_mt6620 -> if yours is MT6628 then change last digit to 8


    For Camera:-

    ->Unpack boot.img again and go to BOOT-EXTRACTED/boot.img-ramdisk/init.project.rc and edit with notepad++,also open stock bootextracted/ramdisk/init.project.rc.Now find camera permissions and replace whole camera line with stock camera lines.
    ->then open init.rc of both port and stock and find camera lines and copy/replace camera lines from stock to port.
    ->Now repack boot.img
    OR
    copy these from stock to port
    system\lib\hw\camera.default.so --- (if you have two files like camera.goldfish.so delete this the one with the goldfish)
    \system\lib\libcamera_client.so
    \system\lib\libcameracustom.so
    \system\lib\libcameraprofile.so
    \system\lib\libcameraservice.so

    or
    copy from system/lib of stock to port.
    - libmhal.so
    - libmhalcontent.so
    - libmhaldrv.so
    - libmhalmdp.so
    - libmhalpipe.so
    - libmhalscenario.so
    - libmhalutility.so

    or

    Put libcamdrv.so of rom only or campare the file of size of your porting rom file and the base rom then whose size is same leave it and whose size is greater in ur stock rom jst add and replace that file only.

    or

    lib3a.so
    liba3m.so
    libacdk.so
    libaudioflinger.so
    libc.so
    libcam.camadapter.so
    libcam.campipe.so
    libcam.camshot.so
    libcam.client.so
    libcam.paramsmgr.so
    libcam.utils.so
    libcam_camera_exif.so
    libcamalgo.so
    libcamdrv.so
    libcamera_client.so
    libcamera_jni_eglfence.so
    libcamera_metadata.so
    libcameracustom.so
    libcameraservice.so
    libgn_camera_feature.so
    libexif
    libfeatureio.so
    libfrsdk.so
    libft.so
    libgcomm_jni.so
    libgoggles_clientvision.so
    libgui.so
    libimageio.so
    libja3m.so
    libjni_mosaic.so


    (Skip if any missing)

    or

    Replace camera.apk in sysyem/app

    And do a ctrl+f search in system/lib for anything called 'camera', 'camrecorder', or just 'cam' and replace those.


    Storage mount Problem Fix:-

    copy paste sytem/etc/vold.fstab from stock to port


    USB NOT MOUNTING IN PC FIX:-

    copy init.usb.rc from stock boot.img extracted to port and repack.


    Audio Problem Fix:-

    copy paste sytem/lib/all audio lib file from stock to port.(search by ctrl+f)


    ICON RESIZER:-


    DATE AND TIME ERROR FIX:-

    check build prop region and compare and replace from stock build prop.

    or
    Use gravity box date and time fix


    Minimum Brightness:-

    ro.init.screen_brightness=110 in build prop


    If App Force Closing:-

    Use Updated App or if only rooted apps are getting Force close then Check Root
    If nothing helped then removed that apk from system folder.


    If a weird image Showing Between Boot logo and boot animation:-

    Use stock rom's system/media/images/boot_logo in port.
    33
    Porting begins

    MAKING PORTING ENVIRONMENT



    Registering Your Device To Kitchen:-This step will help to write updater script automatically.


    • Open kitchen and select option 0(advance options) and then select option 12(tools for unpack and repack boot.img etc.) and press "a"(Extract kernel+ramdisk from boot.img,recovery.img etc.) and hit enter.
    • Now a folder will be created Under kitcehn directory named like this- bootimg_040714_132352
    • Now copy your CWM recovery.img for your device to this folder and check that the name must be - recovery.img if not then rename it. and hit enter in kitchen terminal.It will extract your recovery in that folder.
    • Open up boot.img-ramdisk folder, and look for /system/etc/recovery.fstab or /etc/recovery.fstab or similar FSTAB file location. Open this file by notepad++ to find the mount points.
    • Download below file and paste it to C:\cygwin\home\username\kitchen\tools\edify_defs .Now rename it to your device code name.Mine is A110Q so i used this file. You can use as your choice also.
    • Then open this file and recovery.fstab with notepad++ and compare and replace mount points and save it.Means copy mount points from recovery.fstab and paste/replace into Your device codenamed file.
    • Now if you done all above steps right then kitchen will make updater script for you.
    • If you porting for Micromax A110Q then just Download the below File and paste it.No need to edit.Just paste it.
    • >>>>>>Micromax A110Q file - http://d-h.st/Qa5
    • >>>>>>IF you have any confusion or you are unable to create this file then PM me your recovery.fstab file and i will make it.

    GET BOTH ROMS- STOCK AND PORT


    • STOCK-Your stock rom which was provided by device manufacturer.
    • PORT- The Rom you selected to port after comparing your device to port device.


    GETTING STOCK ROM SYSTEM FOLDER


    IF your Stock ROM is in already in form of CWM flashable zip then create a Stock Folder in any drive of Computer and extract it for further Use.

    Basic Strurture od CWM FLASHABLE ZIPs
    META-INF
    SYSTEM
    DATA
    boot.img


    IF YOUR ROM IS SP_TOOLS FLASHABLE THEN DO THESE TO EXTRACT SYSTEM FOLDER FROM IT:-

    Basically IN SP_TOOLS flashable zips the folder structure is-
    DATABASE
    boot.img
    cache.img
    EBR1
    EBR2
    IK.bin
    logo.bin
    MBR
    MT65xx_Android_scatter_emmc.txt
    Preloaded_xxxxxx.bin
    recovery.img
    secro.img
    system.mg
    userdata.img



    [STEPS]

    • Extract system.img from stock rom zip to C;\cygwin\home\username\kitchen\original_update

      *You should add kitchen folder to favorites panel in my computer as you will be using this folder very frequent.
    • Now open cygwin,type "cd kitchen" hit enter,now press- " ./menu " then android kitchen will load with lots of functions numbering from 1 to ...
    • Press 1 to setup working folder now again hit Enter.Now it will ask you to choose an option to select working folder.Select system.img one folder by pressing its value and hitting enter.
    • Now it will ask about changing working folder name,leave it as default and hit enter.So kitchen will now start copying rom to working folder.
    • After Copying files it will auto prompt and open Ext2Explore application.In some cases it will show that error message that "unable to read disk,please make sure you are running appliacation with administrative rights."But don't worry,click ok.
    • Now after Ext2Explore opened,click on "FILE" on upper left corner and click on "OPEN IMAGE".Now browse to kitchen directory and go through newly created working folder and you will find "ext4_system.img" under system folder.Select it.
    • Right click on file selected in Ext2Explore and Click on SAVE,now browse to same folder where "ext4_system.img" was.Means newly created working folder/system under kitchen directory.
    • Then it will extract "ext4_system.img" to same folder.After finishing extraction close the Ext2Explore application.Now hit Enter in kitchen,again it will say "warning,no boot.img found" .Do not worry,HIT ENTER and go with default.
    • It will ask to view Rom info,you can skit this.
    • So finally you got system folder under working folder.So copy that system folder to any drive and rename it to Stock rom folder for further use.

      [TIP:-]
      >>IF your Rom is odexed then you should deodexed it before copying to any other drive for further use.<<


      HOW TO CHECK THE ROM IS ODEXED:-
      • GO TO SYSTEM/APP and SYSTEM/FRAMEWORK folder and see that for every file there is clone file ending with .odex .If there is then your rom is odexed.

      WHAT IS DEMAERIT OF ODEXED ROM FOR DEVELOPERS-
      • You will not able to theme and modify your rom if system and framework is odexed so better deodex the rom.Deodexing will combine file and its clone .odex to one unit.

      DEODEXING:-
      • AFTER SETTING UP WORKING FOLDER AND DOING ALL ABOVE STEPS,now hit 0 in kithcen and select 11 option and hit enter.
      • IT will show number of odex files in your Rom.Now Select "b" option to deodexing all files,it will take some time.
      • After done,it will show that "0" files left odexed in Rom,now exit kitchen and Now you should copy your system folder to any drive for furter use.



    GETTING STOCK ROM BOOT.IMG EXTRACTED
    [STEPS]

    • Now open Kitchen and select 0(advance options) and Hit enter,now select option 12(tools for unpack and repack boot.img etc.)
    • Under 12th option,press "a"(Extract kernel+ramdisk from boot.img,recovery.img etc.) and hit Enter
    • Now a folder will be created Under kitcehn directory named like this- bootimg_040714_132352 Now copy your boot.img and paste into this folder.
    • Now switch to Kitchen Terminal and press Enter.Then it will do some process and extract your boot.img,Now copy that folder and save it to any drive and Rename it to stock boot for further use.


    NOW DOWNLOAD PORT ROM YOU CHOOSED TO PORT AND MOVE TO NEXT STEP BELOW.
    31
    TWEAKING&MODIFICATION​

    BUILD.PROP TWEAKS

    HOW TO ADD:-Open Build.prop with Notepad++ and copy and paste these tweaks lines and save it.

    • Force launcher into memory
      Code:
      ro.HOME_APP_ADJ=1
    • Raise JPG quality to 100%
      Code:
      ro.media.enc.jpeg.quality=100
    • VM Heapsize; higher the RAM, higher the hp can be.
      Code:
      dalvik.vm.heapsize=48m
    • Render UI with GPU
      Code:
      debug.sf.hw=1
    • Decrease dialing out delay
      Code:
      ro.telephony.call_ring.delay=0
    • Helps scrolling responsiveness
      Code:
      windowsmgr.max_events_per_sec=150
    • Save battery
      Code:
      wifi.supplicant_scan_interval=180
      pm.sleep_mode=1
      ro.ril.disable.power.collapse=0
    • Disable debugging notify icon on statusbar
      Code:
      persist.adb.notify=0
    • Increase overall touch responsiveness
      Code:
      debug.performance.tuning=1
      video.accelerate.hw=1
    • Raise photo and video recording quality
      Code:
      ro.media.dec.jpeg.memcap=8000000
      ro.media.enc.hprof.vid.bps=8000000
    • Signal (3G) tweaks
      Code:
      ro.ril.hsxpa=2
      ro.ril.gprsclass=10 
      ro.ril.hep=1
      ro.ril.enable.dtm=1
      ro.ril.hsdpa.category=10
      ro.ril.enable.a53=1
      ro.ril.enable.3g.prefix=1
      ro.ril.htcmaskw1.bitmask=4294967295
      ro.ril.htcmaskw1=14449
      ro.ril.hsupa.category=5

    • Net speed tweaks
      Code:
      net.tcp.buffersize.default=4096,87380,256960,4096,16384,256960
      net.tcp.buffersize.wifi=4096,87380,256960,4096,16384,256960
      net.tcp.buffersize.umts=4096,87380,256960,4096,16384,256960
      net.tcp.buffersize.gprs=4096,87380,256960,4096,16384,256960
      net.tcp.buffersize.edge=4096,87380,256960,4096,16384,256960

    • Disable blackscreen issue after a call
      Code:
      ro.lge.proximity.delay=25
      mot.proximity.delay=25

    • Fix some application issues
      Code:
      ro.kernel.android.checkjni=0
    • Phone will not wake up from hitting the volume rocker
      Code:
      ro.config.hwfeature_wakeupkey=0

    • Force button lights on when screen is on
      Code:
      ro.mot.buttonlight.timeout=0
    • Disable boot animation for faster boot
      Code:
      debug.sf.nobootanimation=1
    • Miscellaneous flags
      Code:
      ro.config.hw_menu_unlockscreen=false
      persist.sys.use_dithering=0
      persist.sys.purgeable_assets=1
      dalvik.vm.dexopt-flags=m=y
      ro.mot.eri.losalert.delay=1000





    Init.d TWEAKS


    HOW TO ADD:-
    -->>For adding init.d tweaks you must add init.d support from kitchen by using option "14" then you will see a new folder will be created under system/etc/"init.d"
    -->>Now open a empty file with notepad++ and add- " #!/system/bin/sh " at top and then add below lines then save it with name as you wish.Make separate file for each tweak.


    [*]Strict minfree handler tweak
    Code:
    echo "2048,3072,6144,15360,17920,20480" > /sys/module/lowmemorykiller/parameters/minfree

    [*]Internet speed tweaks
    Code:
    echo "0" > /proc/sys/net/ipv4/tcp_timestamps;
    echo "1" > /proc/sys/net/ipv4/tcp_tw_reuse;
    echo "1" > /proc/sys/net/ipv4/tcp_sack;
    echo "1" > /proc/sys/net/ipv4/tcp_tw_recycle;
    echo "1" > /proc/sys/net/ipv4/tcp_window_scaling;
    echo "5" > /proc/sys/net/ipv4/tcp_keepalive_probes;
    echo "30" > /proc/sys/net/ipv4/tcp_keepalive_intvl;
    echo "30" > /proc/sys/net/ipv4/tcp_fin_timeout;
    echo "404480" > /proc/sys/net/core/wmem_max;
    echo "404480" > /proc/sys/net/core/rmem_max;
    echo "256960" > /proc/sys/net/core/rmem_default;
    echo "256960" > /proc/sys/net/core/wmem_default;
    echo "4096,16384,404480" > /proc/sys/net/ipv4/tcp_wmem;
    echo "4096,87380,404480" > /proc/sys/net/ipv4/tcp_rmem;

    [*]Vm management tweaks
    Code:
    echo "4096" > /proc/sys/vm/min_free_kbytes
    echo "0" > /proc/sys/vm/oom_kill_allocating_task;
    echo "0" > /proc/sys/vm/panic_on_oom;
    echo "0" > /proc/sys/vm/laptop_mode;
    echo "0" > /proc/sys/vm/swappiness
    echo "50" > /proc/sys/vm/vfs_cache_pressure
    echo "90" > /proc/sys/vm/dirty_ratio
    echo "70" > /proc/sys/vm/dirty_background_ratio

    [*]misc kernel tweaks
    Code:
    echo "8" > /proc/sys/vm/page-cluster;
    echo "64000" > /proc/sys/kernel/msgmni;
    echo "64000" > /proc/sys/kernel/msgmax;
    echo "10" > /proc/sys/fs/lease-break-time;
    echo "500,512000,64,2048" > /proc/sys/kernel/sem;

    [*]Battery tweaks
    Code:
    echo "500" > /proc/sys/vm/dirty_expire_centisecs
    echo "1000" > /proc/sys/vm/dirty_writeback_centisecs

    [*]EXT4 tweaks (greatly increase I/O)
    (needs /system, /cache, /data partitions formatted to EXT4)
    Code:
    tune2fs -o journal_data_writeback /block/path/to/system
    tune2fs -O ^has_journal /block/path/to/system
    tune2fs -o journal_data_writeback /block/path/to/cache
    tune2fs -O ^has_journal /block/path/to/cache
    tune2fs -o journal_data_writeback /block/path/to/data
    tune2fs -O ^has_journal /block/path/to/data

    [*]Perfect mount options
    Code:
    busybox mount -o remount,noatime,noauto_da_alloc,nodiratime,barrier=0,nobh /system
    busybox mount -o remount,noatime,noauto_da_alloc,nosuid,nodev,nodiratime,barrier=0,nobh /data
    busybox mount -o remount,noatime,noauto_da_alloc,nosuid,nodev,nodiratime,barrier=0,nobh /cache

    [*]Flags blocks as non-rotational and increases cache size
    Code:
    LOOP=`ls -d /sys/block/loop*`;
    RAM=`ls -d /sys/block/ram*`;
    MMC=`ls -d /sys/block/mmc*`;
    for j in $LOOP $RAM
    do
    echo "0" > $j/queue/rotational;
    echo "2048" > $j/queue/read_ahead_kb;
    done

    [*]MicroSD card speed tweak
    Code:
    echo "2048" > /sys/devices/virtual/bdi/179:0/read_ahead_kb;

    [*]Defrags database files
    Code:
    for i in \
    `find /data -iname "*.db"`
    do \
    sqlite3 $i 'VACUUM;'; 
    done

    [*]Remove logger
    Code:
    rm /dev/log/main

    [*]Ondemand governor tweaks
    Code:
    SAMPLING_RATE=$(busybox expr `cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_transition_latency` \* 750 / 1000)
    echo 95 > /sys/devices/system/cpu/cpufreq/ondemand/up_threshold
    echo $SAMPLING_RATE > /sys/devices/system/cpu/cpu0/cpufreq/ondemand/sampling_rate

    [*]Auto change governor and I/O Scheduler
    Code:
    echo "vr" > /sys/block/mmcblk0/queue/scheduler
    or
    echo "sio" > /sys/block/mmcblk0/queue/scheduler

    [*]Governor (Best: Minmax > SavagedZen > Smoothass > Smartass > Interactive) - needs kernel with these
    Code:
    echo "governor-name-here" > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

    [*] Disable normalize sleeper
    Code:
    mount -t debugfs none /sys/kernel/debug
    echo NO_NORMALIZED_SLEEPER > /sys/kernel/debug/sched_features



    GPS.conf TWEAKS


    How To:-Create or edit your /system/etc/gps.conf with a Notepad++.
    Benefit:-For improving GPS lock time and signal.


    -->>SE supl for A-GPS (better than Nokia's or Google's)
    Code:
    SUPL_HOST=supl.sonyericsson.com
    SUPL_PORT=7275

    Or DOWNLOAD this patched gps.config


    APN TWEAKS

    -->>apns-conf.xml located at system/etc/"apns-conf.xml"
    -->>Edit apns-conf.xml with notepad++ to add desired apns.
    -->>Use CyanogenMOD's APN list file - it's one of the most complete.Download from google.
    -->>You can use Mine one too- Downlaod



    ADS BLOCK TWEAK

    (Lots of developers are supported Through it so please think twice before adding it.)


    -->>You can use mine hosts file.Download
    -->>You can refer these url for getting file content-
    http://www.mvps.org/winhelp2002/hosts.txt
    http://pgl.yoyo.org/adservers/serverlist.php?showintro=0;hostformat=hosts
    -->>hosts file are located to system/etc/"hosts"


    USE LATEST SUPERUSER APP AND SU BINARY



    USE PORTED APPS IN YOUR ROM

    HERE IS LINK OF HUGE COLLECTION OF PORTED APPS:-CLICK

    How to Implemant Ported Apps?
    ->Download it and open its zip.
    ->Now open system folder in zip and drag and drop all files to port rom means copy all system folder contents only to port system folder.


    More things will be added soon.