[Streak 5 Android Development] nom051205:
Same like others tutorial / guide, but tutorial from Xylograph and Molesarecoming on ParanoidAndroid thread more clear and specific then others.

Here is what I did :

PA rom or others rom we want to port called rom A, base rom (Kibuuka rom) called rom B. Search ICS rom from the same specs as our device (ex. HTC Nexus One, HTC HD2, HTC Desire, HTC EVO 4G). Basically there are 2 way to port :

1) Use rom A as working folder, delete Meta Inf folder and boot.img then replace from rom B (Meta inf.; boot.img and recovery folder). Go into system folder then change :

usr folder - delete and replace from rom B

app folder - replace bluetooth.apk; vpn dialogs.apk and camera.apk (if camera work) from rom B

lib folder - delete hw folder and modules folder, replace from rom B; delete and replace wpa_client.so and libril.so from rom B

etc folder - copy all from rom B then replace to rom A etc folder (choose replace all). The important things are bluetooth, permission, wifi, wlan, ppp, vold.fstab, init.streak.fm.sh and install-recovery.sh from rom B.

bin folder - delete and replace rild; wpa_cli; wpa_supplicant; adb, logcat and logwrapper from rom B

build,prop - find our specific and replace.

Try to flash and boot, see logcat what makes it bootloop. Sometimes the rom boot up because the same specs, but touch screen no respon (sure this will happen because we used libs, android.runtime.so and surfaceflinger.so from other rom). But If can boot up then its good because no need major changes, just find and replace the proper libs.

2) Use rom B as working folder then change or replace :

app folder - delete and replace from rom A (except Bluetooth.apk , VPN dialogs.apk and camera.apk if we hv camera work),

framework folder - delete and replace from rom A

media folder - delete and replace from rom A

fonts folder - delete and replace from rom A.

etc folder - find what rom A specific need to install then add it to rom B etc folder (ex. init.local.rc; permissions)

build.prop - find and replace what needs in build properties

then try to boot.

See logcat if bootloop, usually change and replace lib media and lib audio from rom A. Don't forget to see any changes on egl and sound folder.

Xylograph has simplest way but I cannot use it because I never succeed recompile ICS apk.

Logcat is only and the best way to find what the rom need to boot or what make it bootloop.

The 2 methods above just a basic and sure need more things hv to do than that. And if the rom can boot up, there should be a lot of bugs then try to fix it one by one.

Android.runtime.so and surfaceflinger.so on every rom like one packages, need libs (ex. libskia.so; libutils.so, libwebcore.so; libinput.so; libhwui.so; libfilterfw.so; ...etc) from original rom for boot, I prefer used our android.runtime.so and surfaceflinger.so from our base, it less pain (method 2).

The mainparts is on lib folder and etc folder. Feel free to try and replace libs one by one and see if can boot.

ParanoidAndroid is base of cm9, need a lot work if we use AOKP rom or other ICS rom as base. So when I can port cm9, I use it as base and then everythings seems very easy.

Just do it with caution and patience, do not crash or damage the phone (like charging port). With all trial and error, copy, paste, delete and reflash so many times, my phone acting weird now (sometimes it cannot flash anything; or cannot boot up, like the phone hang, pc usb port didnot recognize phone, have to pull battery out and wait 5 minutes, press the power buttons several times). This is really annoying.

I think it related to inner sdcard.