Sunday, April 12, 2015

Cara build kernel Android ONE dari source di Archlinux

Assalamualaikum. Wr. Wb. Bro / Sis

Kali ini saya mau share cara build kernel andoid, kan android one itu kan projectnya google, tentunya open source donk, dan source codenya udah tersedia tuh di link berikut:


https://android.googlesource.com/kernel/mediatek


Nah persiapan awal untuk build kernel, ya tentunya harus punya pc dengan sistem OS linux donk, jikalau tidak punya bisa pakai aplikasi vmware di windows tapi ujug2nya ya install linux juga di vmware, tapi ya lebih baik linux native, biar greget.... BTW untuk cara install linux di mesin/vmware googling aja bro/sis. :)

Jika sudah install linux langkah selanjutnya adalah install paket pendukung. Yaitu:

- git
- uboot-mkimage
- curl
- elfutils
- libmpc
- arm-linux-gnueabi-gcc
- uboot-mkimage

Sama installnya ya googling masing-masing saja aja karena linux versinya banyak ada ubuntu, opensuse, pclinuxos, fedora, dll.. Disini saya pakai Archlinux yang merupakan os favorit ane.. :)

Paket2 tersebut sudah ada di AUR archlinux donk.. :p

AndroidONEnya udah di root dan unlockbootloader

Oke langsung to the point, jika peralatan sudah disiapkan lanjut sedot source code dulu. Langkah2nya, buka terminal:


Kemudian tungguu sampai unduhan kelar bro 800an MB


Jika sudah kelar. Kita butuh tools unpack & repack boot image yang bisa diunduh di link xda ini, dan backupan boot.img, cara backup boot.img bisa lihat disini.

Jika sudah pisahkan file umkbootimg dan mkbootimg ke folder yang diinginkan, dalam hal ini di folder androidone yang telah dibuat. Kemudian buat binary agar bisa di eksekusi langsung.






Nah selanjutnya masuk ke kernel source yang telah di download, isinya kurang lebih seperti ini.


Nah silahkan modifikasi di area yang diinginkin, kebetulan ane gak ngerti modifikasi kernel cuma build2 aja.. :p.

Ok next langkah selanjutnya adalah mengaktifkan config kernel, dulu, agar sesuai dengan target android one, yaitu sprout_defconfig.

di terminal/cmd linux, masuk ke folder mediatek yang telah di clone.

$cd mediatek
$make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- sprout_defconfig

Nanti akan terbentuk file config yang terhidden dan konfigurasi disesuaikan dengan perangkat android one.

Untuk melihat menu Kernel.

$make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig

Nanti muncul seperti ini :




Nah silahkan memilih opsi yang diinginkan "jika ada". Jika sudah pilih exit.

Kemudian build deh.

$make -j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- zImage

nanti hasil build ada di folder arch/arm/boot seperti berikut:






Nah zImage sudah didapat, dan itu kernel yang akan kita flash, tapi sebelumnya zImagenya harus di pasangkan ke boot.img stock, boot.img stock bisa didapat dengan langkah yang diatas ya.


kumpulkan file boot.img dan zImage dalam satu folder kemudian masuk cmd/terminal ke folder tersebut lalu eksekusi

$cd /path/to/folderyangberisifiletersebut
$umkbootimg boot.img
$mkbootimg --kernel zImage --ramdisk initramfs.cpio.gz --base 0x80000000 -o kernelbaru.img

Selesai, boot androidone ke Fastboot

Buat ngetest
$fastboot boot kernelbaru.img

Buat permanen
$fastboot flash boot kernelbaru.img

Selesai deh.

Ini penampakan kernel yang ane build sendiri:






Beberapa hal perubahan yang ada:
- Brightness sudah tidak terlalu low/ mati ketika fitur hemat daya+lowest brightness
- Touch point jadi 10 jari di Nexian Journey one.



Tapi klo yang ingin brightnessnya super low, coment kode berikut yang ada di /include/linux/leds.h, 6 baris terakhir di comment aja.


Low brightness buat ane penting banget buat buka hp dikegelapan malam. :D :D :D, tapi disebagian orang mungkin dikira hp ngebrik klo gelapnya sampai dititik 0

Ok itu aja selamat mencoba build kernel sendiri.. :), ane gak jago utek-utek kernel.. :D

No comments:

Post a Comment