Android là hệ điều hành di động được sử dụng rộng rãi nhất trên thế giới. Và phần tốt nhất, nó hoàn toàn là mã nguồn mở, theo thuật ngữ của người dân, có nghĩa là Mã nguồn, chương trình thực tế có sẵn công khai cho mọi người tải xuống, tùy chỉnh và xây dựng ROM của riêng họ.
Có rất nhiều bản phân phối Android tùy chỉnh có sẵn trên mạng, với những bản phổ biến là CyanogenMod, SlimROM, Paranoid Android, AOKP, Liquid Smooth, MIUI, Xylon, Ice Cold Jelly, v.v.
Đối với hướng dẫn hôm nay, chúng tôi sẽ biên dịch CyanogenMod 10.2, ROM hậu mãi phổ biến nhất của Android. Quy trình này giống nhau 99% đối với tất cả các ROM tùy chỉnh hiện có, vì vậy hướng dẫn này cũng có thể được sử dụng làm tài liệu tham khảo để biên dịch các ROM khác.
Điều kiện tiên quyết
- Điện thoại Android có sẵn Kernel và Nguồn thiết bị, đã được root và đã cài đặt khôi phục tùy chỉnh.
- Bản phân phối Linux 64 bit (Chúng tôi thích Ubuntu hơn).
- Ít nhất 100GB miễn phí trên Đĩa cứng của bạn.
- Kiến thức làm việc về các lệnh đầu cuối của Linux.
- Kết nối internet nhanh chóng hợp lý.
Điểm cần lưu ý: Hệ điều hành Linux 64 bit là bắt buộc và nó phải là một bản cài đặt gốc, không phải Máy ảo.
Thiết lập máy xây dựng của bạn
1. Cài đặt hệ điều hành Linux mà bạn chọn: Phiên bản 64 bit, theo hướng dẫn chính thức. (Hướng dẫn sẽ giả định rằng chúng tôi đang chạy Ubuntu 13.04). Giữ một phân vùng ít nhất 100GB với Phân vùng Hoán đổi 16GB.
2. Cài đặt danh sách các gói sau: Mở ứng dụng Terminal và nhập
[html] sudo apt-get install [/ html]
nhấn enter và nó sẽ nhắc bạn nhập mật khẩu.
Danh sách gói
[HTML]
lõi git
gnupg
uốn cong
bò rừng
mãng xà
rar
ban đầu-awk
chim ưng
p7zip-đầy đủ
gperf
libsdl1.2-dev
libesd0-dev
libwxgtk2.6-dev
bíp-công cụ
xây dựng-thiết yếu
zip
quăn lại
libncurses5-dev
zlib1g-dev
pngcrush
lên lịch
libc6-dev
x11proto-core-dev
libx11-dev
libg11-mesa-dev
minhw32
tofrodos
python-markdown
libxml2-utils
g ++ - multilib
lib32z1-dev
ia32-libs
lib32ncurses5-dev
lib32readline-gplv2-dev
gcc-multilib
g ++ - multilib
xsltproc
[/ html]
3. Cài đặt Java JDK 1.6 cho Linux 64-bit: Tên tệp phải là jdk-6u ## - linux-x64.bin, ## là số phiên bản. Di chuyển gói đã tải xuống vào thư mục chính của bạn. Mở ứng dụng Terminal và chạy bộ lệnh sau:
[HTML]
sudo apt-get purge openjdk - \ * icedtea - \ * icedtea6 - \ *
sudo mkdir –p / opt / java / 64 /
sudo cp jdk-6u ## - linux-x64.bin / opt / java / 64
về phía nam -
cd / opt / java / 64
chmod a + x jdk-6u ## - linux-x64.bin
./jdk-6u##-linux-x64.bin
ra
[/ html]
Bây giờ, chúng ta phải thêm JDK Path vào .bashrc
[HTML]
sudo gedit ~ / .bashrc
[/ html]
Thêm những dòng này vào phần cuối của tệp văn bản
[HTML]
# Đường dẫn Java
xuất JAVA_HOME = / opt / java / 64 / jdk1.6.0 _ ##
xuất PATH = $ PATH: $ JAVA_HOME / thùng
[/ html]
4. Cài đặt Android SDK: Mở ứng dụng đầu cuối
[HTML]
cd ~
mkdir android && cd android
mkdir sdk
[/ html]
Tải xuống Android SDK từ http://developer.android.com/sdk/index.html. Giải nén nội dung gói thành ~ / android / sdk Chúng tôi phải thêm đường dẫn Android SDK vào .bashrc
[HTML]
sudo gedit ~ / .bashrc
[/ html]
Thêm những dòng này vào phần cuối của tệp văn bản:
[HTML]
# Đường dẫn SDK Android
xuất PATH = $ PATH: ~ / android / sdk
xuất PATH = $ PATH: ~ / android / sdk / platform-tools
xuất PATH = $ PATH: ~ / android / sdk / tools
[/ html]
Bây giờ, hãy cài đặt Công cụ SDK Android bằng cách nhập
[HTML]
Android
[/ html]
5. Thiết lập tài khoản github và repo từ xa của bạn: Bạn có thể bỏ qua bước này nếu CyanogenMod hỗ trợ chính thức điện thoại của bạn. Truy cập github.com và tạo một tài khoản cho chính bạn. Đối với hướng dẫn này, tôi đang coi tên người dùng của bạn là 'người dùng'.
Truy cập 'github.com/CyanogenMod/android', nhấn Fork. Tệp kê khai từ xa sẽ được chia nhỏ và có sẵn trong kho lưu trữ cá nhân của bạn.
Bây giờ, hãy truy cập 'github.com/user/android'. Mở tệp default.xml, nhấn Chỉnh sửa. Tìm dòng này:
[HTML]
[/ html]
Và thay thế điều này bằng
[HTML]
[/ html]
Tôi đang xem xét nguồn nhân của thiết bị, nguồn thiết bị và libs của nhà cung cấp cho Android 4.3 sẽ ở
[HTML]
github.com/user2/kernel_source
github.com/user2/device_source
github.com/user2/device-common_source
github.com/user2/vendor
[/ html]
Tôi giả sử chi nhánh được đặt tên là 'jb4.3'. Bạn có thể tìm thấy tên chính xác trong repo thực tế. Sau đó, ở cuối tệp, hãy thêm các dòng này, sửa đổi chúng theo mã nguồn của thiết bị của bạn.
[HTML]
[/ html]
Cam kết các thay đổi của bạn. Tệp kê khai từ xa của bạn đã sẵn sàng được triển khai.
6. Cài đặt lệnh Repo: Mở Terminal và nhập
[HTML]
cd ~
mkdir ~ / bin
curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo> ~ / bin / repo
chmod a + x ~ / bin / repo
[/ html]
Chúng ta phải thêm đường dẫn Repo vào .bashrc
[HTML]
sudo gedit ~ / .bashrc
[/ html]
Thêm dòng này vào cuối tệp văn bản
[HTML]
xuất PATH = $ PATH: ~ / bin
[/ html]
7. Tìm nạp mã nguồn ROM: Mở Terminal và nhập
[HTML]
mkdir ~ / android / cm
cd ~ / android / cm
[/ html]
Nếu bạn cần Bước 5, sau đó nhập
[HTML]
repo init –u git: //github.com/user/android.git –b cm-10.2
[/ html]
Nếu thiết bị của bạn hỗ trợ CyanogenMod 10.2 chính thức, hãy nhập
[HTML]
repo init –u git: //github.com/CyanogenMod/android.git –b cm-10.2
[/ html]
Chạy ngay bây giờ
[HTML]
repo đồng bộ –j16
[/ html]
Đi uống một ly cà phê, hoặc một bữa ăn, sẽ mất nhiều thời gian. Mã nguồn có dung lượng hơn 10GB, vì vậy sẽ mất khá nhiều thời gian.

8. Thiết lập Nội dung cụ thể của Thiết bị: Nếu thiết bị của bạn hỗ trợ CyanogenMod 10.2 chính thức, hãy mở Terminal và nhập
[HTML]
cd ~ / android / cm
. build / envsetup.sh && bữa sáng
[/ html]
Sẽ mất một khoảng thời gian, nguồn thiết bị có dung lượng khoảng 3GB. Sau đó, bạn cần cài đặt CM10.2 chính thức trên điện thoại của mình, kết nối nó với PC ở chế độ Gỡ lỗi USB và chạy các lệnh sau:
[HTML]
gốc adb
cd ~ / android / cm / thiết bị / / /
./extract-files.sh
[/ html]
Nếu thiết bị của bạn không chính thức hỗ trợ CyanogenMod 10.2, thì bạn không phải làm gì ở bước này, các nguồn đã chờ bạn.
9. Tải xuống Nội dung được tạo sẵn và thiết lập Chuỗi công cụ: Mở Terminal và nhập
[HTML]
cd ~ / android / cm / nhà cung cấp / cm
sh ./get-prebuilds
[/ html]
Bây giờ, chúng ta phải thêm Toolchain PATH vào ./bashrc
[HTML]
cd ~ / android / cm
sudo gedit ~ / .bashrc
[/ html]
Thêm những dòng này vào cuối tệp văn bản
[HTML]
# Chuỗi công cụ Android
xuất ARCH = nhánh
xuất CCOMPILE = $ CROSS_COMPILE
xuất CROSS_COMPILE = arm-eabi-
export PATH = $ PATH: ~ / android / cm / prebuilt / linux-x86 / toolchain / arm-eabi-4.4.3 / bin
[/ html]
10. Xây dựng ROM của bạn: Vì vậy, mọi thứ đều ổn và sẵn sàng. Đã đến lúc xây dựng ROM. Mở Terminal và nhập
[HTML]
cd ~ / android / cm
. build / envsetup.sh
bữa sáng muộn
[/ html]
Đã đến lúc phải đi ngủ trưa. Sẽ mất một triệu năm để xây dựng ROM trên một máy tính trung bình. Chà, đó là một sự phóng đại, nhưng trên PC gia đình của tôi (Core i5 thế hệ thứ 2 với RAM 8GB), mất hơn 3 giờ để xây dựng từ đầu. Hy vọng rằng sẽ không có sai sót và bản dựng sẽ hoàn thành tốt đẹp. Bạn sẽ nhận được gói đầu ra trong
[HTML]
~ / android / cm / out / target / product / /cm-10.2-something-UNOFFICIAL- .zip
[/ html]
Đã đến lúc cài đặt ROM mới được biên dịch trên điện thoại của bạn. Tải xuống gói Google Apps từ “www.goo.im/gapps” cho phiên bản Android thích hợp. Đặt cả hai gói đó vào điện thoại của bạn và flash chúng ở chế độ khôi phục. Thì đấy, ROM được biên dịch của riêng bạn hiện đang chạy thiết bị của bạn.
Vậy là bạn đã học cách biên dịch ROM. Thế bây giờ thì thế nào?
Cập nhật ROM nguồn của bạn
Để tìm nạp các bản cập nhật mã nguồn mới cho mã nguồn được tải xuống cục bộ của bạn, hãy mở Terminal và nhập
[HTML]
cd ~ / android / cm
repo đồng bộ –j16
[/ html]
Để xây dựng ROM của bạn, sau khi cập nhật mã nguồn, hãy mở thiết bị đầu cuối và nhập
[HTML]
cd ~ / android / cm
làm cho installclean
tìm ./out/ -name 'build.prop' | xargs rm
tìm ./out/ -name 'cm_ -target_files-eng. *. zip '| xargs rm
. build / envsetup.sh
bữa sáng muộn
[/ html]
Vì bạn không phải xây dựng lại từ đầu mà xây dựng lại nguyên trạng nên sẽ mất ít thời gian hơn đáng kể, chỉ khoảng 15-30 phút trong hầu hết các trường hợp. Bạn nên đồng bộ hóa nguồn cục bộ của mình hàng tuần hoặc lâu hơn, để giữ cho nguồn cục bộ của bạn luôn mới.
Làm sạch thư mục làm việc của bạn
Để làm sạch hoàn toàn thư mục làm việc của bạn (đọc: trả lại thư mục nguồn của bạn về tình trạng còn hàng), hãy mở Terminal và nhập các lệnh sau.
[HTML]
cd ~ / android / cm
làm cho installclean
làm áo choàng
[/ html]
Hãy nhớ rằng sau khi chạy các lệnh này, tất cả dữ liệu đầu ra của bạn sẽ bị xóa, vì vậy, quá trình xây dựng tiếp theo sẽ mất 3-4 giờ một lần nữa, vì mọi thứ được xây dựng lại từ đầu. Nếu phân vùng Đĩa cứng của bạn nhỏ, chẳng hạn khoảng 100GB, bạn nên dọn dẹp thư mục làm việc của mình khoảng 4 bản dựng một lần, nếu không, bạn sẽ hết dung lượng Đĩa cứng.
Tăng tốc bản dựng của bạn bằng CCACHE
Xây dựng một ROM mất rất nhiều thời gian. Nhưng thời gian có thể được cắt giảm khoảng 30-45% bằng cách sử dụng CCACHE. CCACHE là viết tắt của bộ đệm trình biên dịch, nó lưu vào bộ nhớ cache đầu ra biên dịch từ các bản dựng trước đó của bạn, để có thể sử dụng lại trong các bản dựng sau.
Lưu ý rằng CCACHE cần nhiều dung lượng trên Đĩa cứng của bạn để lưu nội dung vào bộ nhớ đệm, vì vậy nó được khuyến nghị nếu và chỉ khi phân vùng Đĩa cứng của bạn ở đâu đó trong khoảng 200GB trở lên. Để thiết lập CCACHE, hãy mở Terminal và nhập:
[HTML]
cd ~ / android / cm
xuất USE_CCACHE = 1
xuất CACHE_DIR = ~ / .ccache
bản dựng sẵn / misc / linux-x86 / ccache / ccache –M 50G
[/ html]
Bạn có thể thay đổi phân bổ kích thước tối đa cho CCACHE từ 50GB thành bất kỳ thứ gì bạn muốn, nhưng tối thiểu nên sử dụng khoảng 30GB để có kết quả tốt.
Tìm nạp các cam kết từ các ROM khác
Bạn có thể chọn các tính năng từ mã nguồn ROM khác. Ví dụ: giả sử tôi muốn chọn Tính năng A, với ID cam kết “12345” từ kho lưu trữ “github.com/user/reporepo”.
Bạn điều hướng đến gói trong mã nguồn cục bộ của mình và chạy các gói này trong Terminal.
[HTML]
cd ~ /
git tìm nạp https://github.com/user/reporepo
git cherry-pick 12345
[/ html]
Liên kết mã nguồn của các bản phân phối ROM tùy chỉnh Android nổi tiếng
CyanogenMod - https://github.com/CyanogenMod
MỏngROM - https://github.com/SlimRoms
ParanoidAndroid - https://github.com/ParanoidAndroid
AOKP - https://github.com/AOKP
Chất lỏngSmooth - https://github.com/liquidsmooth
ROM Xylon –
Thạch đá lạnh - https://github.com/IceColdJelly
Như vậy là xong, hướng dẫn đơn giản, dễ hiểu để biên dịch hầu như mọi ROM dựa trên Android AOSP trong 10 bước đơn giản. Trong khi hướng dẫn của tôi tập trung vào CyanogenMod, bạn có thể biên dịch khá nhiều bản ROM AOSP hiện có, chỉ bằng cách sửa đổi các liên kết kho lưu trữ. Hoặc, bạn chỉ có thể chọn các tính năng, cam kết chúng, sửa đổi nội dung và tạo ROM được cá nhân hóa của riêng bạn, có thể chia sẻ ROM của bạn trực tuyến?
xin chào cảm ơn vì bài viết này hôm nay thế giới android này đang lây lan như một bệnh dịch nên một bài viết hay
Những tác phẩm ấn tượng! Tôi thực sự muốn tạo mã của riêng mình cho các ứng dụng của mình!
Tôi thực sự thích xem mã này nhưng một số phần của mã này tôi không thể hiểu được.
chào Shaunak,
Android thực sự phổ biến rộng rãi trên toàn thế giới. và cảm ơn vì bài viết tuyệt vời này
Tuyệt vời. Bây giờ nếu tôi chỉ có thể hiểu những thuật ngữ này. Sau đó, tôi có thể biên dịch ROM android