Saturday 17 October 2015

[GUIDE]Porting Any Custom Roms[Fastest method]

Hello, in this guide, i'll give you the easiest way to porting rom for your device, i've broken my porting record by ported 5 roms in less than 1 hour using this method, have enjoy and hope it'll works for you too 




What you need ?
- Rom base (CM or AOSP)
- Rom port (any roms that you like to port)
- Apktool (for compiling .apk and .jar files)
- Note++ (for editing .txt and .xml files)
- Winrar or 7zip (for extracting and repacking rom)
- dsixda's Android Kitchen, you really need this to Port MIUI, PAC, and Slimrom
- Open mind and never give up to trying 



Rules
1. Find the rom port with similar CPU like your device, clock speed doesn't matter here, the important is the number of CPU Cores, if your device is single core, find the single core rom, dual-core with dual-core, etc
2. Forget about screen sizes(4, 5, or 7 inci), the important is screen DPI(pixels destiny) you can port rom from tablet or devices that have bigger/smaller screen sizes
example
> LDPI & LDPI
> MDPI & MDPI
> HDPI & HDPI
> xHDPI & xHDPI
> etc
3. Same Android SDK version(Check in build.prop)
Example, you can port Android 4.4.3 using Android 4.4.2
4. GSM and GSM, CDMA and CDMA



Step by step
Extract booth of the roms(rom base and rom port)


> In rom port folder <
1. Delete all files and folders except "system" folder




2. Delete these folders and files in system
> tts
> usr
> vendor
> build.prop



3. Delete these folders in system/etc
> Bluetooth
> Firmware (if exist)
> Wifi



4. Delete these folders in system/lib
> hw
> modules



5. Go to system/framework
> Open framework-res.apk
> Go to res/xml
> Replace storage-list.xml with your rom base







> In rom base folder <
1. Copy all files and folders except "system" to rom port folder





2. Copy these folders and files in system folder to rom port system folder
> tts
> usr
> vendor
> build.prop





3. Copy these folders in system/etc to rom port system/etc
> Bluetooth
> Firmware (if exist)
> Wifi





4. Copy these folders in system/lib to rom port system/lib
> hw
> modules





Repack the rom then flash it in the recovery



Now the rom port should booted(to menu) now, not stuck on bootanimation anymore 



if you still stuck on bootanimation, check bootclasspath in boot.img, unpack it, and check in "init.environ.rc", use note++ to edit it, there's must be something miss there 


If the rom doesn't boot to menu or stuck on manufacturer logo(LG, Sony, Samsung, etc), find the same rom port from other devices. I've this experience while porting Liquid Smooth, then i used other devices and it's booted  





Notes :
If you successful ported the rom, please do these before your releasing your ROM
> Ask the permission from the developers of the rom base and rom port
> Give credit for them
> And give credit for me too if you using this guide 
> And don't forget to hit THANKS button 


For porting MIUI Kitkat, you need to unpack boot.img from both roms, then do these
- Copy paste init.miui.rc from rom port to rom base ramdisk folder
- Open init.rc from both roms, then compare it, there's some line you need to be edited...




Troubleshooting
Now, to fix some issues in rom port, do these...

1. Information about rom
Open build.prop from booth of the rom then edit information just like the rom port
You can edit these lines in build.prop

# begin build properties
# autogenerated by buildinfo.sh
ro.build.display.id= 
ro.build.date=
ro.build.user=
ro.build.host=
ro.product.name=
ro.product.locale.language=
ro.product.locale.region=
ro.cm.device=
# end build properties


#
# ADDITIONAL_BUILD_PROPERTIES
#
persist.sys.root_access=
ro.modversion= > replace with rom port
ro.cm.version= > you can delete this
ro.config.ringtone=
ro.config.notification_sound=
ro.config.alarm_alert=
ro.sf.lcd_density=

and the other lines relating information about rom

2. RIL 
Replace these files in rom port with your rom base files
system/bin/rild
system/lib/libreference-ril.so
system/lib/libril.so
system/lib/librilutils.so
system/lib/libsec-ril.so
system/lib/libsecril-client.so

And add any files with "ril" in the name of file



3. Sensor
Replace these files in rom port with your rom base files
system/bin/sensord
system/bin/sensorservice
system/lib/libsensorservice.so 
system/lib/libhardware.so
system/lib/libhardware_legacy.so



4. WiFi
Replace these files in rom port with your rom base files
system/bin/wifimac
system/bin/wpa_cli
system/bin/wpa_supplicant
system/lib/libwpa_client.so


5. Missing files
You have to copy the rest of files in base rom to port rom to make rom better, but don't replace it if the files/folders was exist



6. Files can be replace in your ported rom using files from base rom


Bin
>adb
>dalvikvm
>debuggerd
>dhcpcd
>dnsmasq
>drmserver
>gdbserver
>glgps
>hostapd
>hostapd_cli
>ime
>ip
>ip6tables
>iptables
>logcat
>logwrapper
>media
>mediaserver
>mtpd
>ndc
>netcfg
>netd
>ntfs-3g
>ping
>ping6
>pppd
>radiooptions
>rild
>screenshot
>sdcard
>sensord
>sensorservice
>service
>servicemanager
>toolbox
>vdc
>vold
>wifimac
>wpa_cli
>wpa_supplicant


Lib
>lge-ril.so (for LG devices)
>libbluetooth_jni.so
>libbt-hci.so
>libbt-utils.so
>libhardware.so
>libhardware_legacy.so
>liblgehdmi.so
>libnfc.so
>libnfc_jni.so
>libnfc_ndef.so
>libreference-ril.so
>libril.so
>librilutils.so
>libsensorservice.so
>libwpa_client.so
>
>


7. Video streaming
> libstagefright.so
and all libs with "libstagefright" of the lib's name







Rom that can be ported
What roms can be ported using this guide ?

This guide should can port any costum roms base on AOSP or CM, not manufacturer roms, not yet...

My experience, I've ported these roms
Mokee Open Source Project
Carbon Rom
Paranoid Android
Xperience
SDK NX v1
AOKP
Hellfire
Codename Lungo
AOSB Project
OMNI Rom
SlimKat
PAC man
SOKP
AICP
MIUI V5 Kitkat



Rom ported by XDA Members using this guide
- Liquid Smooth






Credits
- Nasheich Xfiles
- JulianJenner
- ZduneX25




If this guide helping you, please do these


> Donate to me
> Hit my THANKS button
> Rate the thread
> Poll the thread 
> Hit "Tip us" ? to make this thread on portal, so many people will know it the easiest way to porting any costum rom
> Mention me (@nasheich) at your rom thread
> Keep this thread at first page by posting 




Best Regards 



Nasheich

No comments:

Post a Comment