Hướng dẫn cài kernel cho android năm 2024

Rất nhiều bạn thấy người khác complied được một bản custom kernel là giỏi lắm và cũng rất nhiều bạn nghĩ rằng để có thể tạo được các bản custom kernel này thì phải có một nền tảng lập trình thật tốt thì mới làm được. Tuy nhiên thực tế lại gần như đi ngược lại với điều đó để tạo một bản custom kernel hay thậm chí là một bản custom rom lại là một việc cực kì đơn giản và đó chỉ là kĩ năng sử dụng máy tính và phần thay đổi source code mới là vấn đề cần bộ não của con người.

Tekcafe Team đã đi một chặng đường khá dài để có thể hiểu được một phần của việc con đường mà một developers phải đi. Chúng tôi có thể giúp các bạn tự học hỏi từ một người mới bắt đầu đi vào con đường của đam mê này cho tới khi các bạn tự làm được sản phẩm của mình. Dĩ nhiên như rất nhiều cuộc chơi khác chúng ta đều phải có những yêu cầu nho nhỏ:

- Đam mê và kiên nhẫn là điều không thể thiếu: Không phải là 1,2 tháng đâu đó chỉ là con số để các bạn học phần kĩ năng và biết cách sử dụng chúng thôi, có thể là 1,2 năm và hơn thế nữa bởi vì học là con đườngvô tận.

- Làm việc tập thể: Không phải 1 người hay một vài người có thể làm được đâu, các bạn có thể hình dung nếu một đoạn code 1000 dòng mà chỉ sai 1 từ thôi là bạn sẽ phải làm lại từ đầu sẽ lớn đến mức nào.

- Thiết bị: Điện thoại để test là điều không thể thiếu và cấu hình máy tính phải đủ mạnh. Yêu cầu tối thiểu Ram > 2GB

Nếu đáp ứng đủ các yêu cầu trên thì bạn có thể sẽ trở thành một tương lai không xa và ngay lúc này việc tự học kĩ năng xây dựng bản custom kernel cho riêng mình là chuyện có thể.

Vạn sự khởi đầu nan :

- Khó : Làm quen với Linux

- Khó : Làm quen với việc đọc và hiểu source

- Khó : Sắp xếp thời gian làm việc cùng nhóm

Hãy nhớ Tekcafe Team sẽ luôn ở bên cạnh giúp đỡ các bạn.

Hướng dẫn đầy đủ chi tiết các bạn có thể xem tại đây:

Đây là công việc tốn thời gian và công sức - 10 người chỉ có một người đi tới được điều mình mong muốn - Hãy xác định rõ trước khi tham gia bạn sẽ trở thành một Developer phát triển Android và các thiết bị khác nếu bạn có được nhiệt huyết và sự kiên trì.

Bạn nào muốn tham gia và đội ngũ phát triển của Tekcafe team phải có yâu cầu phần cứng máy tính tối thiểu là core i3, ram 4GB và có chia cho ubuntu dung lượng ổ cứng > 200GB. Khi đó hãy liên hệ với Tekcafe Team.

là một tệp kê khai có thể xác định duy nhất một bản dựng, bạn có thể sử dụng tệp kê khai đó để thực hiện một bản dựng có thể dự đoán lại. Bạn nên tải xuống tệp kê khai từ Google GKI release builds

Build

Trước tiên, vui lòng kiểm tra tài liệu chính thức.

Ví dụ: chúng ta cần xây dựng kernel image aarch64:

sh

LTO=thin BUILD_CONFIG=common/build.config.gki.aarch64 build/build.sh

Đừng quên thêm cờ LTO=thin, nếu không quá trình xây dựng có thể thất bại nếu bộ nhớ máy tính của bạn nhỏ hơn 24Gb.

Bắt đầu từ Android 13, kernel được xây dựng bởi bazel:

sh

tools/bazel build --config=fast //common:kernel_aarch64_dist

Build Kernel với KernelSU

Nếu bạn có thể build kernel thành công thì việc xây dựng KernelSU thật dễ dàng, Chọn bất kỳ một lần chạy trong thư mục gốc nguồn Kernel:

Bài viết này dành cho những bạn đam mê vọc vạch điện thoại , yêu thích Android và đang sở hữu một chiếc Zenfone 2. Bạn đã nghe nhiều đến “kernel” và cũng đang muốn mod kernel nhưng chưa biết bắt đầu từ đâu thì đây là hướng dẫn cách thức compile một kernel chi tiết và dể hiểu cho tất cả mọi người.

Kernel là gì?

Có thể hiểu là phần cốt lõi của hệ điều hành Android, nó là cầu nối liên lạc giữa phần cứng và phần mềm. Mỗi khi bạn thực hiện bất cứ một thao tác nào trên điện thoại của bạn đều phải thông qua kernel từ việc nhận biết ngón tay bạn đang chạm vào màn hình đến việc thực hiện một cuộc gọi thoại.

Chính vì đảm nhiệm nhiệm vụ quan trọng trong hệ thống mà việc can thiệp (mod) vào kernel sẽ mang lại nhiều tính năng chuyên sâu hơn mà mod ROM có thể làm được. Một số tính năng hấp dẫn và “bá đạo” mà mod kernel đã mang lại cho zenfone 2:

-Hỗ trợ cài đặt Windows 7.

-Hỗ trợ port ROM CyanogenMod, SlimLP… lên Zenfone 2.

-Tính năng chỉnh màu màn hình theo thông số RED,GREEN, BLUE.

-Điều khiển hoạt động, xung nhịp CPU, GPU.

-.....

Tuy nhiên trước khi nghĩ đến việc mod, thêm tính năng vào kernel bạn phải thành thạo trong việc compile kernel trước. Việc này sẽ có đôi chút khó khăn đối với một số bạn mới tiếp xúc, chưa có nhiều kiến thức trong việc vọc vạch hệ thống. Mong rằng bài viết cung cấp đủ thông tin để các bạn có thể thực hiện một cách dễ dàng.

Làm thế nào để compile kernel Zenfone 2.

Nói sơ qua về compile kernel. Khi nói đến việc compile một kernel chính là nói đến việc biên dịch source code (mã nguồn) gồm hàng chục ngàn file code thành một file duy nhất để hệ thống sử dụng. Một file kernel (boot.img) bao gồm các thành phần chính là zimage, ramdisk ,ngoài ra còn có các module hỗ trợ nằm trong /lib/module. Trong bài mình sẽ hướng dẫn các bạn biên dịch source code kernel thành zimage sau đó nén vào file boot.img và cuối cùng là flash vào Zenfone 2.

Tải kernel source code cho zenfone 2 ở đâu?

Có 2 nguồn source code bạn cần quan tâm đó là từ chính chủ ASUS và từ cộng đồng phát triển (dev)

Nguồn 1: kernel stock ASUS.

Để tải kernel source code chính chủ từ ASUS bạn truy cập vào link này: http://www.asus.com/Phones/ZenFone_2_ZE551ML/HelpDesk_Download/

ASUS đã release kernel source code Zenfone 2.

Và thực hiện như hình hướng dẫn bên trên. Tất nhiên là bạn nên tải kernel mới nhất. Hiện tại, ngày viết bài này, ASUS đã release đủ các bản kernel từ 2.12 đến 2.19 tuy nhiên một số bản về sau như 2.19, 2.18 đều bị lỗi thiếu file nên các bạn tải cả bản 2.12 và bản mới nhất. Sau đó chép đè file từ 2.19 vào 2.12 để khắc phục lỗi.

Nguồn 2: Kernel từ cộng đồng phát triển (dev).

Nguồn thứ 2 mà mình muốn nhắc đến là từ các nhà phát triển (dev). Vì tính mở của Linux(Android) nên các nhà phát triển cá nhân không phải kiểu tự viết code rồi dấu nhẹm đi mà thường release lên một số trang web gọi là cộng đồng (hub). Các trang web này vừa là nơi lưu trữ source code cho các nhà phát triển, vừa là nơi chia sẻ cho mọi người cùng vào xem và có thể cùng góp phần phát triển một dự án nào đó.

Github là website lưu trữ và chia sẻ, phát triển source code cực lớn cho các nhà phát triển.

Zenfone 2 đã bắt đầu có cộng đồng phát triển.

Bước 1: Thiết lập môi trường Linux

Việc đầu tiên nhất bạn cần làm là thiết lập một môi trường linux hoàn chỉnh. Bởi Android phát triển từ Linux nên có một hệ thống Linux sẽ tốt hơn rất nhiều so với việc làm việc trên windows hay mac os.

Bạn có thể sử dụng bất kì một distro Linux nào nhưng mình khuyên là sử dụng Ubuntu vì nó có cộng đồng sử dụng lớn nhất hệ sinh thái Linux và cũng dễ sử dụng nhất, có bất kì vấn đề gì trong quá trình build kernel thì bạn có thể search trên google để tìm cách khắc phục. Hầu hết các dev mình biết đều sử dụng Ubuntu hoặc một bản phân phối của nó để phát triển.

Bài hướng dẫn sử dụng Xubuntu, một bản phân phối cực nhẹ nhàng và ổn định của Ubuntu, nếu bạn không có nhu cầu nào khác có thể dùng luôn distro này cho tiện. Tất nhiên, như đã nói, bạn có thể sử dụng bất kì hệ điều hành nào khác miễn là Linux, tuy nhiên một số dòng lệnh sẽ có đôi chút khác với những gì mình sẽ hướng dẫn bên dưới, đòi hỏi bạn phải có chút kiến thức về hệ điều hành mình muốn sử dụng.

Nếu bạn đã quen sử dụng và cũng đang cài đặt một distro Linux bất kì trên máy tính của mình thì hãy bỏ qua bước này.

Tóm lại là mình sẽ setup một hệ thống thế này:

HĐH: Xubuntu 64bit

Ram >1GB

Phân vùng ổ cứng >45GB

Tên tài khoản “sal358” và password là “ “ (1 ký tự space để dễ thao tác)

Các thao tác bên dưới chỗ nào liên quan đến “sal358” thì thay bằng tên mà bạn thiết lập.

Có 2 cách để vừa sử dụng Windows vừa có một hệ điều hành Linux để compile kernel:

1- Cài đặt Xunbuntu song song với Windows: Cách này tận dụng được toàn bộ phần cứng máy tính, tối ưu nhất và hạn chế lỗi. Tuy nhiên khá bất tiện với những người chưa quen sài Linux nói chung và Ubuntu nói riêng.

2- Cài đặt Xubuntu lên máy ảo trên Windows: Phần cứng máy tính dành cho Linux bị giới hạn tuy nhiên bạn có thể cùng lúc sử dụng windows thuận tiện hơn cho các bạn.

Cách 1: Cài đặt Xunbuntu song song với Windows

Có rất nhiều bài hướng dẫn trên mạng về vấn đề này rồi nên tốt nhất là các bạn search google mình sẽ không đề cập trong bài viết này đỡ dài dòng.

Điểm qua một số bước mình đã làm:

-Tải file iso Xubuntu 64bit trên trang chủ.

-Dùng Unetbootin đưa file iso vào usb và tạo boot.

-Boot usb, chia một phân vùng mới 60GB định dạng 4ext, một phân vùng 2GB làm swap.

Dual boot tận dụng được tối đa phần cứng máy tính.

Cách 2: Cài đặt Xubuntu lên máy ảo trên Windows

-Có 2 trình máy ảo mạnh mẽ trên windows là VMware và Vbox.

-Cách này cũng có hướng dẫn đầy đủ trên mạng rồi nên mình không nhắc lại. Lưu ý nên để CPU execution cap lên cao tầm 80% đến 90% để tối ưu tốc độ xử lý trong Xubuntu.

Máy ảo Vbox thuận tiện thao tác cùng lúc Windows và Linux.

Bước 2: Compile file zimageCài đặt một số tập lệnh cơ bản:

Sau khi cài đặt Xubuntu hoàn tất và boot vào hệ điều hành này đầu tiên bạn cần cài đặt một số tập lệnh cần thiết.

Mở Terminal Emulator

Thực hiện lần lượt các lệnh sau: (copy và paste lần lượt vào terminal)

sudo apt-get updatesudo apt-get install openjdk-7-jdk curl bison git gperf libxml2-utils make python-networkx zlib1g-dev:i386 zip g++-multilib

Cài đặt repo và tải bộ source code AOSP 5.0.

Để compile được kernel cho Zenfone 2 bạn bắt buộc phải tải cả bộ source code của rom AOSP 5.0 (rom gốc từ Google) để làm nền, mình đã thử dùng toolchain để compile nhưng không thành công.

Tương tự cách làm ở trên, bạn thực hiện lần lượt các lệnh sau để cài đặt repo, chương trình hỗ trợ tải (đồng bộ) source code từ Google:

cdmkdir ~/binPATH=~/bin:$PATHcurl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repochmod a+x ~/bin/repo

Để kiểm chứng repo cài đặt thành công hãy bật tính năng xem file ẩn.

Sau đó xem trong thư mục “ker” nếu thấy thư mục .repo là cài đặt thành công.

Tải bộ source code AOSP 5.0.0_r7 bằng repo từ Google.

cdmkdir kercd kerrepo init -u https://android.googlesource.com/platform/manifest -b android-5.0.0_r7

Giải thích: Từ trên xuống dưới tạo một folder tên “ker” (hoặc tên gì bạn thích), nhảy vào folder này, gán đường dẫn tải android 5.0.0_r7 vào folder.