Computer >> Máy Tính >  >> Xử lý sự cố >> Android

Cách tạo ROM tùy chỉnh từ Dự án nguồn mở Android

Nếu bạn đã quen với việc root điện thoại Android của mình hoặc tải xuống các ROM tùy chỉnh, chẳng hạn như CyanogenMod rất phổ biến hoặc Hệ điều hành Lineage kế nhiệm của nó, bạn có thể tự hỏi - làm thế nào để mọi người tạo ra những ROM này? Chính xác thì có bao nhiêu công việc dành cho việc phát triển một ROM tùy chỉnh?

Hướng dẫn này sẽ hướng dẫn bạn những điều cơ bản về phát triển ROM Android tùy chỉnh của riêng bạn. Cần lưu ý rằng đây là một công việc lớn - nếu bạn không có kinh nghiệm viết mã hoặc đánh lừa các thiết bị đầu cuối Linux, bạn có thể muốn có một số kiến ​​thức trước khi đi sâu vào phần sâu này. Nhưng nếu bạn có ít nhất một ý tưởng cơ bản về những điều đó, tôi sẽ cố gắng giải thích mọi thứ đơn giản nhất có thể, để bạn có thể làm theo.

Về cơ bản, những gì chúng tôi đang làm là tải xuống raw Mã nguồn Android (AOSP) và sửa đổi nó theo ý thích của chúng tôi. Bởi vì có rất nhiều nguồn để lựa chọn cho các thiết bị khác nhau, hướng dẫn này sẽ chỉ đơn giản là tham khảo bậc thầy nguồn được gọi là AOSP (Dự án nguồn mở Android) .

Bây giờ vấn đề về AOSP là mã nguồn thuần túy không bao gồm các loại phần cứng dành riêng cho thiết bị. Theo thuật ngữ của giáo dân, phần cứng như máy ảnh và GPU của bạn sẽ không hoạt động “bình thường” khi phát triển với AOSP. Trên thực tế, thiết bị của bạn thậm chí sẽ không khởi động được nếu không có các mã nhị phân phần cứng này.

Nếu đang phát triển điện thoại mang nhãn hiệu Google (Pixel, Nexus, v.v.), bạn có thể tìm thấy các tệp nhị phân phần cứng trực tiếp từ Google và hướng dẫn này sẽ hướng dẫn bạn cách lấy và xây dựng chúng vào ROM của mình. Tuy nhiên, nếu bạn đang phát triển ROM cho một chiếc điện thoại có thương hiệu (Sony, Samsung, v.v.)… thì hãy chúc phúc cho trái tim của bạn, vì bạn đã sẵn sàng.

Một số các nhà sản xuất có các dự án mã nguồn mở của riêng họ hoặc phát hành các công cụ phát triển cho các nhà phát triển tương lai, trong khi các nhà sản xuất khác luôn giữ kín các mã độc quyền của họ. Dưới đây là danh sách ngắn gọn về các dự án nguồn mở từ các nhà sản xuất phổ biến hơn:

Trung tâm phát hành nguồn mở của Samsung
Sony Developer World
Hỗ trợ của Lenovo
Trung tâm phát hành nguồn mở của Huawei
Nhà phát triển Motorola

Với điều đó, chúng ta hãy tiếp tục với giả định rằng chúng tôi đang xây dựng một ROM cho trải nghiệm Android đơn giản, cơ bản nhất cho thiết bị Google Pixel. Với kiến ​​thức này, bạn sẽ có thể tự phát triển và bắt đầu phát triển các phiên bản tùy chỉnh của ROM của nhà sản xuất cụ thể.

Yêu cầu đối với Hướng dẫn này:

  • Dự án nguồn mở Android
  • Điện thoại Pixel XL hoặc trình giả lập Android dành cho Linux
  • Hệ điều hành Linux 64 bit - Ubuntu hoặc Linux Mint là những bản phân phối thân thiện với người mới nhất, trong khi BBQLinux được phát triển đặc biệt dành cho các nhà phát triển Android.
  • Python
  • Một máy tính mạnh mẽ (biên dịch mã tốn rất nhiều bộ nhớ và không gian!)

Thiết lập môi trường xây dựng của bạn

Hãy bắt đầu bằng cách thiết lập trình giả lập Android trên máy Linux của bạn. Cho dù bạn có thiết bị Google Pixel XL hay không, cách an toàn nhất là thử ROM mới của bạn trên trình mô phỏng Android trước flash nó vào thiết bị của bạn. Yêu thích cá nhân của tôi là Genymotion, vì vậy tôi sẽ hướng dẫn bạn cách cài đặt trình mô phỏng cụ thể đó. Tuy nhiên, bạn cũng có thể xem hướng dẫn này “Trình giả lập Android tốt nhất”, vì hầu hết chúng cũng có khả năng tương thích với Linux.

Truy cập trang web Genymotion, đăng ký tài khoản, xác minh tài khoản qua email và tải tệp thực thi xuống máy tính để bàn Linux của bạn.

Bây giờ, hãy mở một thiết bị đầu cuối Linux và nhập:

Chmod + x genymotion-xxxxx.bin (thay xxxx bằng số phiên bản trong tên tệp)
./genymotion-xxxxxx.bin

Nhấn Y để tạo thư mục Genymotion. Bây giờ, hãy nhập vào thiết bị đầu cuối:

cd genymotion &&./genymotion

Bây giờ nó sẽ yêu cầu bạn bắt đầu quá trình cài đặt, vì vậy chỉ cần tiếp tục nhấp vào Tiếp theo cho đến khi bạn đến cửa sổ Thêm thiết bị ảo. Chọn “Pixel XL” trong tùy chọn Kiểu thiết bị, sau đó hoàn tất quá trình cài đặt. Bạn có thể kiểm tra thiết bị ảo nếu muốn, về cơ bản nó sẽ giống như sử dụng điện thoại Pixel XL trên máy tính để bàn của bạn.

Bây giờ chúng ta hãy thiết lập Python:

$ apt-get install python

Bây giờ chúng ta cần thiết lập Bộ phát triển Java trên máy Linux của bạn. Mở thiết bị đầu cuối Linux và nhập các lệnh sau:

$ sudo apt-get update
$ sudo apt-get install openjdk-8-jdk

Bây giờ bạn sẽ cần phải cấu hình hệ thống Linux để cho phép truy cập thiết bị USB. Chạy mã sau trong thiết bị đầu cuối Linux:

Cách tạo ROM tùy chỉnh từ Dự án nguồn mở Android

Thao tác này sẽ tải xuống tệp 51-android.txt cần thiết cho phép truy cập thiết bị USB nói trên. Mở tệp .txt và sửa đổi nó để bao gồm tên người dùng Linux của bạn, sau đó đặt tệp .txt vào vị trí sau:Cách tạo ROM tùy chỉnh từ Dự án nguồn mở Android (với tư cách là người dùng gốc ). Bây giờ, hãy cắm thiết bị của bạn vào máy tính qua USB để các quy tắc mới tự động có hiệu lực.

Tải xuống nguồn Android

AOSP được lưu trữ trên Git, vì vậy chúng tôi sẽ sử dụng một công cụ có tên là Repo để giao tiếp với Git.

Trước tiên, chúng ta cần thiết lập thư mục a / bin trong Thư mục chính của bạn. Nhập các lệnh sau vào thiết bị đầu cuối Linux:

$ mkdir ~ / bin
$ PATH =~ / bin:$ PATH

Bây giờ chúng ta sẽ tải xuống công cụ Repo, vì vậy hãy nhập vào Linux terminal:

$ curl https://storage.googleapis.com/git-repo-downloads/repo> ~ / bin / repo
$ chmod a + x ~ / bin / repo

Sau khi Repo được cài đặt, bây giờ chúng ta phải tạo một thư mục trống để chứa các tệp công việc của bạn. Vì vậy, hãy nhập cái này vào thiết bị đầu cuối Linux:

$ mkdir WORKING_DIRECTORY
$ cd WORKING_DIRECTORY

Bây giờ chúng tôi sẽ định cấu hình Git bằng tên và địa chỉ email của bạn - sử dụng địa chỉ Gmail mà bạn kiểm tra thường xuyên , nếu không, bạn sẽ không thể sử dụng công cụ xem xét mã Gerrit.

$ git config –global user.name “Tên của bạn”
$ git config –global user.email
you@gmail.com

Bây giờ chúng tôi sẽ yêu cầu Repo lấy tệp kê khai chính mới nhất của AOSP từ Git:

$ repo init -u https://android.googlesource.com/platform/manifest

Nếu thực hiện thành công, bạn sẽ nhận được thông báo Repo đã được khởi tạo trong thư mục làm việc của bạn. Bạn cũng sẽ tìm thấy một “ .repo” thư mục bên trong thư mục khách hàng. Vì vậy, bây giờ chúng ta sẽ tải xuống cây nguồn Android với:

$ repo đồng bộ hóa

Tạo nguồn Android

Đây là lúc các mã nhị phân phần cứng được đề cập ở đầu hướng dẫn này phát huy tác dụng. Hãy truy cập trang trình điều khiển AOSP và tải xuống tệp nhị phân Pixel XL dành cho Android 7.1.0 (NDE63P). Bạn muốn tải xuống cả hình ảnh nhà cung cấp và các thành phần phần cứng. Chúng ở dạng lưu trữ nén, vì vậy hãy giải nén chúng vào màn hình của bạn và chạy tập lệnh tự giải nén từ thư mục gốc. Chọn cài đặt các tệp nhị phân vào thư mục gốc của WORKING_DIRECTORY mà chúng tôi đã tạo trước đó.

Bây giờ, hãy nhập vào thiết bị đầu cuối Linux của bạn:

$ make clobber
$ source build / envsetup.sh

Bây giờ chúng ta sẽ chọn mục tiêu để xây dựng, vì vậy hãy nhập:

$ Lunch aosp_marlin-userdebug
$ setpaths
$ make –j4

Ở đó, bây giờ chúng tôi đã “xây dựng” một ROM Android từ nguồn. Vì vậy, hãy kiểm tra nó trong trình giả lập, bằng cách nhập vào thiết bị đầu cuối:

$ trình mô phỏng

Vì vậy, hãy chơi xung quanh trình giả lập một chút. Như bạn có thể thấy, trải nghiệm Android thuần túy là khá tối thiểu và đây là lý do tại sao các nhà sản xuất tùy chỉnh AOSP theo nhu cầu của họ. Vì vậy, bạn có thể flash ROM này mà chúng tôi vừa tạo cho thiết bị của bạn nếu bạn muốn, nhưng không thêm bất kỳ cải tiến nào, trải nghiệm Android thuần túy sẽ thực sự là một điều rất nhàm chán.

Vì vậy, những gì các nhà sản xuất thường làm với AOSP là fork nó, thêm mã nhị phân độc quyền của riêng họ, tùy chỉnh giao diện người dùng, thêm logo khởi động, v.v. Về cơ bản, nhà sản xuất chỉ sơn lên ROM Android gốc và đó cũng sẽ là mục tiêu tiếp theo của bạn .

Hãy chú ý theo dõi vì phần thứ hai của hướng dẫn này sẽ hướng dẫn thêm phông chữ, chủ đề và hoạt ảnh khởi động vào ROM của bạn!