Em mở topic này với mong muốn học hỏi, chia sẻ kinh nghiệm về build Kernel cho các máy Android, rất mong sự ủng hộ giúp đỡ và chia sẻ củ các bác. Đây là 1 bài hướng dẫn build kernel cho LG LTE2 của bác zcop bên lgviet em xin copy lại làm tham chiếu để anh em dựa vào đó để build ạ: Mục đích của topic là mỗi người sẽ tự sướng với kernel made by "tự tui" Sẽ bổ sung các thành phần khác sau( undervolt, overclock..v..v.) Tôi không chịu trách nhiệm về bất cứ chuyện gì xảy ra với chiếc phone của bạn khi làm theo tut này DO IT AT YOUR OWN RISK! Yêu cầu: * Laptop, Desktop... * OS: Ubuntu, Debian.. Khuyên dùng Ubuntu 12.04 * Kĩ năng copy paste * 1 chút tiếng anh Bước 1: Cài ubuntu - Google thần chưởng Bước 2: Download kernel source của L,S,K đều nằm ở đây hết - Nhớ chọn kernel của android 4.1 Link: https://www.lg.com/global/support/o...tegoryId=CAT00000001&osCategoryId=CAT00000002 File có dạng LGF160*(Optimus LTE 2)_Android_JB_F160*20*.zip Bước 3: Download Toolchain gcc 4.6 Link: https://docs.google.com/file/d/0BzQ7rwgF_0h0bnRhazB3ZkZRckU/edit?usp=sharing Bước 4: Download dsixda kitchen Link: https://docs.google.com/file/d/0BzQ7rwgF_0h0ZHlMRkZMV3NLQ2M/edit?usp=sharing Bước 5: download Android SDK Link: http://developer.android.com/sdk/index.html Bước 6: Giải nén adt-bundle-linux-x86_64-********.zip ra /home/your_username/ Ấn chuột phải vào thư mục vừa giải nén chọn rename, đổi sang tên ngắn gọn là android Bước 7: Giải nén LGF160*(Optimus LTE 2)_Android_JB_F160*20*.zip được 2 file nén nữa có dạng LGF160*_JB_android.tar.gz LGF160*_JB_kernel.tar.gz Tiếp tục giải nén LGF160*_JB_kernel.tar.gz được 1 thư mục tên là "kernel" Di chuyển thư mục này đến /home/your_username/android/ Bước 8: Giải nén Toolchain ra /home/your_username/android/ Bước 9: Giải nén Android-Kitchen-0.224.tar.gz ra /home/your_username/android/ Sửa lại tên thư mục là kitchen Bước 8: Ctrl+Alt+T, cửa sổ Terminal sẽ mở ra copy lệnh sau paste rồi enter sudo gedit .bashrc Một cửa sổ khác mở ra, thêm các dòng sau vào cuối file export PATH=~/bin:$PATH export PATH=$PATH:~/android/arm-eabi-4.6/bin export PATH=$PATH:~/android/sdk/platform-tools export CROSS_COMPILE=arm-eabi- Save và close gedit, không đóng cửa sổ Terminal đâu nhé. Copy paste lệnh dưới source ~/.bashrc sudo apt-get install ia32-libs Bước 10 : Cắm điện thoại vào máy tính để chế độ Change only adb devices Nếu ra kết quả List of devices attached LG-F160S-10a6d25device Goood Nếu hiện ra toàn dấu ???????? thì adb kill-server sudo ~/android/sdk/platform-tools/adb devices Bước 11: Lấy config file từ máy đang chạy adb pull /proc/config.gz Giải nén được file text tên là config, đổi tên sang f160_defconfig Lấy local version adb shell cat /proc/version Kết quả Linux version 3.4.0-perf-g0688679 (seungman.shin@LGEARND2B3) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #1 SMP PREEMPT Wed Jun 5 10:41:58 KST 2013 Mỗi máy khác nhau có thể sẽ có phần màu đỏ khác nhau mở file f160_defconfig tìm dòng CONFIG_LOCALVERSION="-perf" sửa lại CONFIG_LOCALVERSION="-perf-g0688679" Tìm và thay tất cả =m sang thành =y để build module vào trong kernel luôn( chức năng replace thì nhanh hơn) Save và exit Copy f160_defconfig vào android/kernel/arch/arm/configs/ Trong tương lai sẽ không cần phải sửa dòng này nữa... mình sẽ patch lại source để kernel không check local version của các module Hiện nay mình chưa patch kernel source nên kernel này sẽ không load các module của LG vì local version của module và kernel không giống nhau. Trong vài ngày tới sẽ làm nốt. Hiện tại không load module wifi nên wifi không bật được Bước 12: cd ~/android/kernel make f160_defconfig make -jn Với n= số cpu thread. VD Core i3 n=2, i5 n=4, i7 n=8 Càng nhiều thì càng nhanh Sau khi báo chạy lâu lâu tầm 1 cốc cafe tùy vào CPU, khi hoàn thành thì dòng cuối trong Terminal sẽ như vậy OBJCOPY arch/arm/boot/zImage Kernel: arch/arm/boot/zImage is ready Kernel nằm ở android/kernel/arch/arm/boot/ Tên là zImage Vậy là bạn đã có kernel Việc tiếp theo là phải xử lí anh boot image Bước 13: Download fake-rom.zip về để xài với kitchen Link: https://docs.google.com/file/d/0BzQ7rwgF_0h0ZGJqekZsdll2dUU/edit?usp=sharing Copy fake-rom.zip vào android/kitchen/original_update Trên Terminal copy paste cd ~/android/kitchen ./menu Chọn option: 1 - Set up working folder from ROM, enter. Enter tiếp lần nữa. ra như sau Available ROMs: (1) fake-rom.zip Enter selection number (default=1, cancel=0, r=refresh): Chọn 1, enter, sau đó nó hỏi đổi tên thư mục không, chọn y/n gì cũng đc Nó hổi tiếp có chuyển updater-script sang update-script không chọn 2 Enter, Enter... Quay lại Menu chọn 0 - ADVANCED OPTIONS 12 - Tools for boot image (unpack/re-pack/etc.) Chọn w = Extract kernel+ramdisk from boot.img Đến đây ta copy zImage của chúng ta trong thư mục android đã copy lúc nãy ghi đè vào android/kitchen/BOOT-EXTRACTED/ bằng cách: Mở 1 cửa sổ Terminal mới cp ~/android/kernel/arch/arm/boot/zImage ~/android/kitchen/BOOT-EXTRACTED/zImage Đóng cửa sổ Terminal này lại Quay về cửa sổ Terminal đang chạy DSIXDA KITCHEN chọn b = Build boot.img from BOOT-EXTRACTED folder (for working folder) Nó chạy xong xuôi thì exit thôi. Ta đã đc boot image mới tên là boot.img nằ trong thư mục android/kitchen/WORKING_******_******/boot.img ĐóngTerminal đi cũng đc Bước 14: Download loki tool về giúp boot image vượt qua đc bootloader checksum Link: https://docs.google.com/file/d/0BzQ7rwgF_0h0SS1ISVBSeUlPMkE/edit?usp=sharing Giải nén ra /home/your_username/android/ Ctrl+Alt+T mở Terminal mới để build loki từ mã nguồn cd ~/android/loki gcc loki_patch.c -o loki_patch Vào đây tải bản stock boot của máy http://lgviet.com/forum/threads/kernel-stock-cho-f160k.2432/ Giải nén lấy file aboot copy vào android/loki Copy boot image sang thư mục loki = lệnh cp ~/android/kitchen/WORKING*/boot.img ~/android/loki/boot.img Chạy lệnh sau để patch boot.img cd ~/android/loki ./loki_patch boot aboot boot.img boot-new.img boot.img mới sau khi patch là boot-new.img Vào đây tải file zip kernel của TQ http://lgviet.com/forum/threads/kernel-new-cho-4-1-2.2254/ Thay boot-new.img trong file zip = boot-new.img của chúng ta( kéo boot-new.img thả vào file zip là đc) Copy qua phone và flash = recovery Các điều cần chú ý: Phải có recovery vĩnh viễn Phải có bản phục hồi stock boot Bonus cho cái hình
EM làm đến phần: ./loki_patch boot aboot boot.img boot-new.img thì bị mắc bởi thông báo "unsupport aboot" bác ạ Hay đây chính là do aboot bị khoá bootloader bác nhỉ
bác nào có thể làm một bài hướng dẫn buit kernel để làm rom và nâng cấp rom được không ạ.ví dụ kernel nguồn là bản 3.0.8 của rom 4.1.giờ em muốn làm kernel 3.4.0 cho rom 4.3 thì em phải làm gì và làm như thế nào ạ.các bác giúp với được không ạ
Có ai có hứng thú về build kernel với Compile from source không nhỉ ?! Ai đã từng build kernel ? ai đã từng compile rom ? Anh em điểm danh phát nhỉ ! Để cùng thảo luận, chia sẻ kinh nghiệm !