22 March 2019

FASTEST AND EASIEST ROM PORTING TUTORIAL

Source : http://en.miui.com/thread-1286611-1-1.html


[GUIDE]FASTEST AND EASIEST ROM PORTING TUTORIAL


Hello readers, 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 and must be CM or AOSP based)
- 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

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

->Trouble Shooting

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

Thank You.Please Hit Thanks! If You Like My Thread!