[GUIDE]How To Port ROMS to Your Device [AOSP]

01:34 Alex 5 Comments

Hello Today i'm back with a useful guide/tutorial for ANDROID ROM PORTING

Many of you may have tried porting roms to their phones and has been successful but most of the case is that we being end up in boot loops or cwm errors

So i'm dedicating this post for all users how are having a craze of rom porting or for atleast those wgo wanted to try rom porting
SO LETS START
Quote:
There are two phases or rom porting
1) Its finding the correct port and source roms for ROM PORTING copying the files which is explained here
2) After a successful port also the rom may not work properly ,we have to sort out the bugs to for a rom to become perfectly working

So with no more blahh blahh blahh Lets start the PORTING procedure  
And lastly Before you a port a ROM, make sure you asked permission from the Developer!

Quote:
What you'll need:
  1. WinRAR/7zip
  2. Notepad++ (When developing, always use this)
  3. Android SDK (For Logcatting & DDMS)
    Some basic knowledge about Android
    If you are on Linux/Unix/BSD use your favorite Archiving Tool & Text Editor.
Quote:
What is base Rom:

The ROM which is Developed For your Mobile..
You can use either CM or any other AOSP roms as your Base ROM
Quote:
What is Port Rom:

The Rom Which you want to port to your Device.
Make sure that the rom has most of the hardware specifications as of your base rom
Quote:
STEP1;

Take any clean CM9, AOSP, CM7, CM10 ROM which is running on your device as Base ROM
Quote:
STEP2:

Extract it Using Winrar.
Quote:
STEP3:

Take the ROM you want to port. This Port ROM. Extract it also using Winrar.
Quote:
STEP4:

Delete app, Framework, Fonts and Media folder in System Folder of Base ROM.
Quote:
STEP5:

Now copy app, Framework, Fonts and Media folder in System Folder from Port rom to base rom system folder.
Quote:
STEP6:

Now open etc folder in both the ROMs folder.
Quote:
STEP7:

In etc folder of base ROM open permissions folder and copy all the permissions files in Port rom to your base ROM folder except platform and handheld_hardware
Quote:
STEP 8: .And Then open init.d Folder in Base ROM and Delete Every thing except banner and then copy all the files inside init.d folder of port ROM to Base ROM.
Quote:
STEP9:

Now open buid.prop file using Notepad++ and make changes to these of Base Rom as you wish.

ro.build.id=
ro.build.display.id=
ro.build.date=
ro.modversion=

Quote:
STEP10:

In build.prop file change these to same as Port Rom build.prop values.

ro.config.ringtone=
ro.config.notification_sound=
ro.config.alarm_alert=
ro.cmversion=
ro.modversion=
Also Copy anything you Find Extra in ADDITIONAL BUILD PROPERTIES related to theme..
Quote:
STEP11:

COPY THE set_perm Lines in META-INF/com/google/android/updater-script From Port to Base ROM After Deleting set_perm lines in Base ROM's Updater-Script.
Quote:
STEP12:

If You find any extra file or folder in system folder of PORT rom than copy them to your base rom system folder.
Quote:
STEP 13:


Last Step to ZIP THE FOLDERS IN ONE..
SELECT META-INF, system, boot.img(if it is having), data(if it is having).
Right Click and Select Add to Archive..
Select Zip..
Type the Name.
Click OK..
HERE THE BASIC ROM PORTING IS OVER BUT FOR SOME SPECIFIC COSTUME ROMS WE NEED LITTLE MORE STUFFS TO WORK ON ,THEY ARE SHOWN BELOW

ONLY FOR MIUI ROMS :

Quote:
Copy telocation.db and yellowpage.db From /system/etc folder to yours..

Copy content-types.properties file From /system/lib to yours..

Copy invoke-as from miui4 rom to /system/xbin and give it permissions on updater-script
set_perm(0, 0, 06755, "/system/xbin/invoke-as");
Note:It is needed for backup & themes app to work

Copy liblbesec.so from miui 4 to /system/lib and give permission on updater-script
set_perm(0, 0, 0755, "/system/lib/liblbesec.so");
It is needed for superuser app from miui to work

Change values Some of the Values in build.prop of your ROM:
ro.build.id=MIUI
ro.build.display.id=MIUI
ro.build.version.incremental=2.x.x (version number)

ro.config.ringtone=MI.ogg
ro.config.notification_sound=FadeIn.ogg
ro.config.alarm_alert=GoodMorning.ogg
ro.config.sms_received_sound=FadeIn.ogg
ro.config.sms_delivered_sound=MessageComplete.ogg
FOR ParanoidAndroid And PAC:

Quote:
Copy paranoid folder inside system/etc to yours..
Go to META-INF/com/google/android/Updater-Script of your base ROM and open it with Notepad++
Copy this line:

set_perm(1000, 1000, 0644, "/system/etc/paranoid/properties.conf");


Specially For PA:

Now Open Build.prop in /system with Notepad++
Copy these lines in Additional Properties of Build.prop:

Depends on Resolution Of your device can be pa_hdpi/pa_mdpi/pa_xhdpi. Change it according to your device.
ro.pa.family=pa_mdpi
Depend on pa version. Replace x.xx with the version of PA you are porting.
ro.pa.version=x.xx
Specially For PAC Rom:
Quote:
Now Open Build.prop in /system with Notepad++
Copy these lines in Additional Properties of Build.prop:

Replace the x.x.x with your PAC Rom version
ro.pac.version=x.x.x
Customize these lines according to your wish.
ro.pacrom.version=mesona_PAC_jb-alpha-v19.0.0
ro.modversion=mesona_PAC_jb-alpha-v19.0.0
Depends on Resolution Of your device can be pa_hdpi/pa_mdpi/pa_xhdpi. Change it according to your device.
ro.pa.family=pa_mdpi
Depend on pa version. Replace x.xx with the version of PA you are porting.
ro.pa.version=x.xx
Modify this line according to your AOKP version
ro.aokp.version=mesona_jb-Milestone-1
Modify it according to your base ROM's build.prop
ro.cm.version=xxxxxxxxxxxx
Replace any line in Your build.prop which appear twice mainly ro.cm.version and ro.modversion
FOR SPECIFIC MANUFACTURE DEVICE
Quote:
For HTC Devices:

To fix network auto select-

Decompile framework-res.apk
Go to \framework-res\res\values\bools.xml and change change true to false

To Fix Graphichal issues:
Code:
Decompile framework.jar
Change these files with your base
smali\smali\android\os
Environment
SystemProperties
smali\smali\android\view
HardwareCanvas
HardwareRenderer$Gl20Renderer
HardwareRenderer$GlRenderer
HardwareRenderer
Quote:
IF YOU ARE HAVING BOOTLOOP THEN COPY THESE LIB FILES TO BASE ROM FROM PORT ROM:

libandroid_runtime.so
libandroid_servers.so
libmedia_jni.so
IF YOUR BASE ROM HAS ISSUES LIKE CAMERA ISSUE THAN YOUR PORTED ROM TOO WILL HAVE ISSUES.

NOW ZIP YOUR ROM AND POST IT BUT DON'T FORGET TO GIVE CREDITS TO THE DEVELOPER OF PORT ROM..

TROUBLESHOOTING AFTER SUCCEFULL PORT


Quote:
Porting Wallpapers | Lockscreen Wallpapers | bootanimation

Usually you get a wallpaper/bootanimation that doesn't fit your device. Here's a quick tutorial on how to port it to your device.

Download & Install FreeImageConverter then launch it.
For Wallpapers & Lockscreen Wallpapers:
Click Add Folder... and add the folder were the wallpapers are
Then click Advanced Convert...
Select Exact Size and set the image quality to 100
Set your Width and Height resolutions for your device.
Uncheck Add "Converted by www.freeimageconverter.com"
Select Leave the same file name and leave the Postfix & Prefix empty. Then set your output in a folder.

For bootanimation:
Extract /system/media/bootanimation.zip OR /data/local/bootanimation.zip OR /system/customize/resource/bootanimation.zip (For Oxygen ROM, the bootanimation is built into the framework-res)
Do the steps above
Move the new resized folder(s) into your bootanimation workspace
Edit the desc.txt to match your device resolutions
Zip the contents ( folder_name desc.txt )
Set compression method to Store
Delete the extracted bootanimation files
Make sure this new bootanimation.zip is in PORTED

Credits & Thanks to

# rishabh.raj37
# Peteragent5

Happy porting! 

5 comments:

  1. Very nice tutorial! Thank you for this useful post by Harshit Gupta!

    Please keep doing like this!!!

    Cheers,
    Harshit

    ReplyDelete
  2. Oh, I wrote it wrongπŸ˜°πŸ˜…πŸ˜…,

    Its Harshit and Mayank Gupta!!!πŸ˜„πŸ˜œ

    Also, it's a thank you by Harshit and Mayank Gupta for the post!πŸ˜πŸ˜πŸ˜πŸ˜‰πŸ˜…πŸ˜„πŸ˜„

    ReplyDelete
    Replies
    1. Haha thank you my friend glad you liked it.

      Delete
  3. this is working on same mt6735 to mt6753 with same kernel? (3.10.65)

    ReplyDelete
    Replies
    1. No process for porting roms for 3.10.x is a bit different
      You can read the guides on how to port custom roms for 3.10.xx
      Here : How to port custom roms for 3.10.xx

      Delete

Disable_Adblock

We know Ads suck, but at IrisBuddies we will not let them do that
As blocking is a good idea to get rid of stupid “Download Now” Buttons around the web
That’s not in our case. We think you won't find Ads on Our site terrible or annoying
Support us by Whitelisting “IrisBuddies” on your Adblocking Plugin or By disabling your AdBlocking software

If you think this is not good and we should allow AdBlocking Plugins
then Please Contact Us or write us on our Facebook Page
and we might allow it in near future.