CARA PORTING ATAU BUILD CUSTOM ROM ANDROID
CARA PORTING ATAU BUILD CUSTOM ROM ANDROID
Ehm.... mungkin judulnya agak dafuq... maklum ane juga masih belajar... jd mari sempurnakan bersama-sama.... membuat suatu ROM/Firmware biar bisa berjalan di devices kita bukan hal mudah.... kecuali itu ROM/FW identik exp: Devices Xperia 2011, bagaimana kalo mau dari devices lain... berikut ini hal yg umum dilakukan
Sebelum beranjak ke step selanjutnya, siapin bahan-bahan :
- Kompi/lap..top spec medium lah+ada slot USBnya :v
- SDK dan JDK terbaru
- OS Win7+bisa ngenet biar klo butuh driver kaga puyeng nyarinya
- kabel USB
- APKTools, APK Manager, APK apalah bwt de/compiler apk dan jar entar
- SDIXDA bwt extract dan build kernel
1. Siapkan kernel....... extract pke sdixda. bagian kernel sangat penting trutama pemanggilan file di bin dan framework dll klo ada... cek bagian init.rc export BOOTCLASSPATH disana ada deretan file yg bakalan di load di framework ato vendor. klo htc ada htc.bla...bla..bla... dll sisanya bagian init*.rc cocokin ma base mana yg blom ada.
2. ROM base.... pertama yg perlu dilakukan hanya mengganti file di "/system/usr" ganti aj semua, kenapa saya bilang ganti semua, menghindari touch kalian ga respon... (selama ini sih ga masalah, blom pernah nemu sampe harus ke tukang services, flash FW bawaan normal lg dah).
3. bagian umum yg diganti pertama adalah di framework.jar bagian:
- /system/framework/framework.jar\smali\android\content\res\AssetManager;
- /system/framework/framework.jar\smali\android\view\GLES20Canvas;
- /system/framework/framework.jar\smali\android\hardware\Camera
4. Jika kalian tidak melihat bootanimation coba ganti /system/lib/libgsl.so optimus/system/bin/bootanimation
5. Jika tidak mau boot coba ganti 3 file ini: app_process, mediaserver, surfaceflinger
6. Untuk data dan GSM ganti file:
- ifconfig;
- netcfg;
- dhcpcd;
- rild
dan di framework.jar bagian: ganti semua RIL*
/system/framework/framework.jar/smali/com/android/internal/telephony/RIL$1.smali
/system/framework/framework.jar/smali/com/android/internal/telephony/RIL$RILReceiver.smali
/system/framework/framework.jar/smali/com/android/internal/telephony/RIL$RILSender.smali
/system/framework/framework.jar/smali/com/android/internal/telephony/RIL.smali
/system/framework/framework.jar/smali/com/android/internal/telephony/RILConstants.smali
/system/framework/framework.jar/smali/com/android/internal/telephony/RILRequest.smali
Khusus Xperia add SemcRIL(emang xperia devices disini :v untuk 2012 ada SEMCQualcom ap ya lupa)
/system/framework/framework.jar/smali/com/android/internal/telephony/SemcRIL$1.smali
/system/framework/framework.jar/smali/com/android/internal/telephony/SemcRIL$IccHandler.smali
/system/framework/framework.jar/smali/com/android/internal/telephony/SemcRIL.smali
dan di/system/framework/framework.jar/smali/com/android/internal/telephony/PhoneFactory.smali
ganti
Lcom/android/internal/telephony/RIL;
dengan RIL sesuai contoh
Lcom/android/internal/telephony/SemcRIL;
build.prop bagian: rild.libpath=/system/lib/... ato rild.libpath=/system/vendor/lib/... tentu file ... juga harus ada di directory yg dituju.
biar APN terisi otomatis ganti ato add bagian /system/etc/apns-conf.xml
Wifi:
Sebenarnya ini sesuai ramdisk manggilnya apa dan file pendukungnya dimana contoh aj ya:
# SDIO driver bwt manggil wifi entah dimana letaknya dan
insmod /system/lib/modules/*sdio*.ko
service wpa_supplicant /system/bin/logwrapper /system/bin/wpa_supplicant \
-iwlan0 -Dnl80211 -c/data/misc/wifi/wpa_supplicant.conf \ -e/data/misc/wifi/entropy.bin
di bin dengan nama wpa_supplicant dan build.prop wifi.interface = wlan0
bwt devices xperia 2012 baca aj init.qcom.wifi.sh, pada intinya ramdisk memegang peranan penting bwt pemanggilan file2 pendukungnya.. jd plototin aj ramdisknya
7. Beberapa directory yg perlu di modifikasi antara lain:
/system/etc/firmware/
/system/etc/*.sh
/system/lib/hw/
/system/lib/modules/
8. File sensor :
/system/bin/akmdxxxx (xxxx biasanya seri hardware sensorenya, klo akmd aj ga masalah brati vendornya punya rahasia :v)
/system/bin/sensorservice
/system/etc/sensors.conf
/system/lib/libsensorservice.so
/system/lib/hw/sensors.bla...bla...bla...so
ato kalo ada /system/vendor/lib/hw/sensors.bla...bla...bla...so
dan ramdisk cari (x seperti ini :v)
service akmd /system/bin/akmd8975
user compass
group compass misc input system
# Needed for akmd8975 support
on early-init
device /dev/akm8975_aot 0660 compass system
device /dev/akm8975_dev 0660 compass system
9. GPS, ini biasanya klo GPS kaga nemuin lokasi kita ganti file di /system/etc/gps.conf
10. Camera jika nungging ganti /system/lib/liboemcamera.so
11. build.prop bagian ro.sf.lcd_density=..... sesuaiin dengan HH biar layout ga ke dodoran ato kedederan.
12. Sesama xperia 2011 cukup lakukan no. 2, 7, 10, 11 dah pasti jalan tu.... optimus no. 8
13. Build ROM portingan kalian dan flash via CWM jalanin "monitor.bat" di directori sdk/tools dan colokin HHnya nyalain HHnya liat logchat yg error bagian mana dan silahkan perbaiki.
contoh:
E/dalvikvm( 100): ERROR: couldn't find native method E/dalvikvm( 100): Requested: Landroid/view/GLES20Canvas;.nStartTileRendering(IIIII)V
itu error perlu method di bagian GLES20Canvas.smali dengan namanStartTileRendering(IIIII)V solusi coba di replace dulu... klo jalan syukur... klo malah error kemana2 ya tambahin lg baris method nStartTileRendering(IIIII)V
14. Oya sebelum lupa ganti2 /META-INF/com/google/android/ itu bwt prosedur installer ROMnya, permission file dll. Lebih jelas bisa liat disini: