Google cam kết thúc đẩy công bằng chủng tộc cho Cộng đồng người da đen. Xem cách thực hiện.

Tải xuống nguồn

Cây nguồn Android nằm trong kho lưu trữ Git do Google lưu trữ. Kho lưu trữ Git bao gồm siêu dữ liệu cho nguồn Android, bao gồm các thay đổi đối với nguồn và thời điểm thay đổi được thực hiện. Trang này mô tả cách tải xuống cây nguồn cho một dòng mã Android cụ thể.

Để bắt đầu với hình ảnh ban đầu cho một thiết bị cụ thể thay vì tải xuống nguồn, hãy xem Chọn bản dựng thiết bị .

Khởi tạo ứng dụng khách Repo

Sau khi cài đặt Repo Launcher , hãy thiết lập ứng dụng khách của bạn để truy cập kho lưu trữ nguồn Android:

  1. Tạo một thư mục trống để chứa các tệp làm việc của bạn. Đặt cho nó bất kỳ tên nào bạn thích:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
    
  2. Định cấu hình Git bằng tên thật và địa chỉ email của bạn. Để sử dụng công cụ xem xét mã Gerrit, bạn cần có địa chỉ email được kết nối với tài khoản Google đã đăng ký . Đảm bảo rằng đây là địa chỉ trực tiếp mà bạn có thể nhận tin nhắn. Tên mà bạn cung cấp ở đây hiển thị trong phần ghi công cho các lần gửi mã của bạn.

    git config --global user.name Your Name
    git config --global user.email you@example.com
    
  3. Chạy repo init để tải phiên bản Repo mới nhất với các bản sửa lỗi gần đây nhất. Bạn phải chỉ định một URL cho tệp kê khai, URL này chỉ định vị trí đặt các kho lưu trữ khác nhau có trong nguồn Android trong thư mục làm việc của bạn.

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

    Để kiểm tra nhánh chính:

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

    Để kiểm tra một nhánh khác ngoài master , hãy chỉ định nhánh đó bằng -b . Để biết danh sách các nhánh, hãy xem Các thẻ mã nguồn và bản dựng .

    Đối với Trăn 2

    Đối với Trăn 3

    Nếu bạn nhận được thông báo lỗi " /usr/bin/env 'python' no such file or directory ", hãy sử dụng một trong các giải pháp sau:

    Nếu Ubuntu 20.04.2 LTS của bạn là phiên bản Linux mới được cài đặt (so với nâng cấp):

    sudo ln -s /usr/bin/python3 /usr/bin/python

    Nếu sử dụng Git phiên bản 2.19 trở lên, bạn có thể chỉ định --partial-clone khi thực hiện repo init . Điều này sử dụng khả năng sao chép một phần của Git để chỉ tải xuống các đối tượng Git khi cần, thay vì tải xuống mọi thứ. Bởi vì sử dụng bản sao một phần có nghĩa là nhiều hoạt động phải giao tiếp với máy chủ, hãy sử dụng cách sau nếu bạn là nhà phát triển và bạn đang sử dụng mạng có độ trễ thấp:

    repo init -u https://android.googlesource.com/platform/manifest -b master --partial-clone --clone-filter=blob:limit=10M
    

    Chỉ dành cho HĐH Windows: nếu bạn nhận được thông báo lỗi cho biết không thể tạo liên kết tượng trưng, ​​khiến repo init không thành công, hãy tham khảo tài liệu Liên kết tượng trưng GitHub để tạo các liên kết này hoặc để kích hoạt hỗ trợ của chúng. Đối với những người không phải quản trị viên, hãy xem phần Cho phép những người không phải quản trị viên tạo liên kết tượng trưng .

Quá trình khởi tạo thành công kết thúc bằng một thông báo cho biết Repo được khởi tạo trong thư mục làm việc của bạn. Thư mục máy khách của bạn hiện chứa thư mục .repo nơi lưu giữ các tệp như tệp kê khai.

Đang tải xuống cây nguồn Android

Để tải cây nguồn Android xuống thư mục làm việc của bạn từ kho lưu trữ như được chỉ định trong tệp kê khai mặc định, hãy chạy:

repo sync

Để tăng tốc độ đồng bộ hóa, hãy chuyển các cờ -c (nhánh hiện tại) và -j threadcount :

repo sync -c -j8

Các tệp nguồn Android được tải xuống trong thư mục làm việc của bạn dưới tên dự án của chúng.

Để chặn đầu ra, hãy chuyển cờ -q (im lặng). Xem Tham khảo lệnh Repo để biết tất cả các tùy chọn.

Sử dụng xác thực

Theo mặc định, quyền truy cập vào mã nguồn Android là ẩn danh. Để bảo vệ máy chủ khỏi việc sử dụng quá mức, mỗi địa chỉ IP được liên kết với một hạn ngạch.

Khi chia sẻ địa chỉ IP với người dùng khác (ví dụ: khi truy cập kho nguồn từ bên ngoài tường lửa NAT), hạn ngạch có thể kích hoạt ngay cả đối với các mẫu sử dụng thông thường (ví dụ: nếu nhiều người dùng đồng bộ hóa máy khách mới từ cùng một địa chỉ IP trong một thời gian ngắn).

Trong trường hợp đó, bạn có thể sử dụng quyền truy cập được xác thực, sau đó sử dụng hạn ngạch riêng cho từng người dùng, bất kể địa chỉ IP là gì.

Đầu tiên, tạo mật khẩu bằng trình tạo mật khẩu và làm theo hướng dẫn trên trang trình tạo mật khẩu.

Tiếp theo, buộc truy cập được xác thực bằng cách sử dụng URI tệp kê khai https://android.googlesource.com/a/platform/manifest . Lưu ý cách tiền tố thư mục /a/ kích hoạt xác thực bắt buộc. Bạn có thể chuyển đổi ứng dụng khách hiện có để sử dụng xác thực bắt buộc bằng lệnh sau:

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

Khắc phục sự cố mạng

Khi tải xuống từ phía sau proxy (phổ biến trong một số môi trường công ty), bạn có thể cần chỉ định rõ ràng proxy cho Repo sẽ sử dụng:

export HTTP_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>
export HTTPS_PROXY=http://<proxy_user_id>:<proxy_password>@<proxy_server>:<proxy_port>

Hiếm gặp hơn, các máy khách Linux gặp sự cố kết nối, bị kẹt ở giữa quá trình tải xuống (thường là trong khi nhận đối tượng ). Điều chỉnh cài đặt của ngăn xếp TCP/IP và sử dụng các lệnh không song song có thể cải thiện tình hình. Bạn phải có quyền truy cập root để sửa đổi cài đặt TCP:

sudo sysctl -w net.ipv4.tcp_window_scaling=0
repo sync -j1

Sử dụng gương cục bộ

Khi sử dụng một số ứng dụng khách, bạn có thể tạo một bản sao cục bộ của toàn bộ nội dung máy chủ và đồng bộ hóa các ứng dụng khách từ bản sao đó (không yêu cầu truy cập mạng).

Các hướng dẫn này giả định rằng máy nhân bản được tạo trong /usr/local/aosp/mirror . Đầu tiên, tạo và đồng bộ hóa gương. Lưu ý cờ --mirror mà bạn chỉ có thể chỉ định khi tạo ứng dụng khách mới:

mkdir -p /usr/local/aosp/mirror
cd /usr/local/aosp/mirror
repo init -u https://android.googlesource.com/mirror/manifest --mirror
repo sync

Khi máy nhân bản được đồng bộ hóa, bạn có thể tạo ứng dụng khách mới từ máy nhân bản. Lưu ý rằng bạn phải chỉ định một đường dẫn tuyệt đối:

mkdir -p /usr/local/aosp/master
cd /usr/local/aosp/master
repo init -u /usr/local/aosp/mirror/platform/manifest.git
repo sync

Cuối cùng, để đồng bộ máy khách với máy chủ, hãy đồng bộ máy nhân bản với máy chủ, sau đó máy khách với máy nhân bản:

cd /usr/local/aosp/mirror
repo sync
cd /usr/local/aosp/master
repo sync

Có thể lưu trữ máy nhân bản trên máy chủ LAN và truy cập nó qua NFS, SSH hoặc Git. Cũng có thể lưu trữ nó trên một ổ đĩa di động và chuyển ổ đĩa đó giữa những người dùng hoặc máy.

Xác minh thẻ Git

Tải khóa công khai sau vào cơ sở dữ liệu khóa GnuPG của bạn. Khóa được sử dụng để ký các thẻ chú thích đại diện cho các bản phát hành.

gpg --import

Sao chép và dán khóa bên dưới, sau đó nhập EOF ( Ctrl-D ) để kết thúc nhập và xử lý khóa.

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.2.2 (GNU/Linux)

mQGiBEnnWD4RBACt9/h4v9xnnGDou13y3dvOx6/t43LPPIxeJ8eX9WB+8LLuROSV
lFhpHawsVAcFlmi7f7jdSRF+OvtZL9ShPKdLfwBJMNkU66/TZmPewS4m782ndtw7
8tR1cXb197Ob8kOfQB3A9yk2XZ4ei4ZC3i6wVdqHLRxABdncwu5hOF9KXwCgkxMD
u4PVgChaAJzTYJ1EG+UYBIUEAJmfearb0qRAN7dEoff0FeXsEaUA6U90sEoVks0Z
wNj96SA8BL+a1OoEUUfpMhiHyLuQSftxisJxTh+2QclzDviDyaTrkANjdYY7p2cq
/HMdOY7LJlHaqtXmZxXjjtw5Uc2QG8UY8aziU3IE9nTjSwCXeJnuyvoizl9/I1S5
jU5SA/9WwIps4SC84ielIXiGWEqq6i6/sk4I9q1YemZF2XVVKnmI1F4iCMtNKsR4
MGSa1gA8s4iQbsKNWPgp7M3a51JCVCu6l/8zTpA+uUGapw4tWCp4o0dpIvDPBEa9
b/aF/ygcR8mh5hgUfpF9IpXdknOsbKCvM9lSSfRciETykZc4wrRCVGhlIEFuZHJv
aWQgT3BlbiBTb3VyY2UgUHJvamVjdCA8aW5pdGlhbC1jb250cmlidXRpb25AYW5k
cm9pZC5jb20+iGAEExECACAFAknnWD4CGwMGCwkIBwMCBBUCCAMEFgIDAQIeAQIX
gAAKCRDorT+BmrEOeNr+AJ42Xy6tEW7r3KzrJxnRX8mij9z8tgCdFfQYiHpYngkI
2t09Ed+9Bm4gmEO5Ag0ESedYRBAIAKVW1JcMBWvV/0Bo9WiByJ9WJ5swMN36/vAl
QN4mWRhfzDOk/Rosdb0csAO/l8Kz0gKQPOfObtyYjvI8JMC3rmi+LIvSUT9806Up
hisyEmmHv6U8gUb/xHLIanXGxwhYzjgeuAXVCsv+EvoPIHbY4L/KvP5x+oCJIDbk
C2b1TvVk9PryzmE4BPIQL/NtgR1oLWm/uWR9zRUFtBnE411aMAN3qnAHBBMZzKMX
LWBGWE0znfRrnczI5p49i2YZJAjyX1P2WzmScK49CV82dzLo71MnrF6fj+Udtb5+
OgTg7Cow+8PRaTkJEW5Y2JIZpnRUq0CYxAmHYX79EMKHDSThf/8AAwUIAJPWsB/M
pK+KMs/s3r6nJrnYLTfdZhtmQXimpoDMJg1zxmL8UfNUKiQZ6esoAWtDgpqt7Y7s
KZ8laHRARonte394hidZzM5nb6hQvpPjt2OlPRsyqVxw4c/KsjADtAuKW9/d8phb
N8bTyOJo856qg4oOEzKG9eeF7oaZTYBy33BTL0408sEBxiMior6b8LrZrAhkqDjA
vUXRwm/fFKgpsOysxC6xi553CxBUCH2omNV6Ka1LNMwzSp9ILz8jEGqmUtkBszwo
G1S8fXgE0Lq3cdDM/GJ4QXP/p6LiwNF99faDMTV3+2SAOGvytOX6KjKVzKOSsfJQ
hN0DlsIw8hqJc0WISQQYEQIACQUCSedYRAIbDAAKCRDorT+BmrEOeCUOAJ9qmR0l
EXzeoxcdoafxqf6gZlJZlACgkWF7wi2YLW3Oa+jv2QSTlrx4KLM=
=Wi5D
-----END PGP PUBLIC KEY BLOCK-----

Sau khi nhập khóa, bạn có thể xác minh bất kỳ thẻ nào bằng:

git tag -v TAG_NAME

Có được các tệp nhị phân độc quyền

Không thể sử dụng AOSP chỉ từ mã nguồn thuần túy và yêu cầu các thư viện độc quyền liên quan đến phần cứng bổ sung để chạy, chẳng hạn như để tăng tốc đồ họa phần cứng. Xem các phần bên dưới để biết các liên kết tải xuống và tệp nhị phân của Thiết bị để có thêm tài nguyên.

Tải xuống các tệp nhị phân độc quyền

Bạn có thể tải xuống các tệp nhị phân chính thức cho các thiết bị được hỗ trợ đang chạy các nhánh phát hành AOSP được gắn thẻ từ trình điều khiển của Google . Các tệp nhị phân này thêm quyền truy cập vào các khả năng phần cứng bổ sung với mã nguồn không mở. Để xây dựng nhánh chính AOSP, thay vào đó hãy sử dụng Bản xem trước nhị phân . Khi xây dựng nhánh chính cho thiết bị, hãy sử dụng các tệp nhị phân cho bản phát hành được đánh số gần đây nhất hoặc có ngày gần đây nhất.

Trích xuất các tệp nhị phân độc quyền

Mỗi bộ nhị phân xuất hiện dưới dạng tập lệnh tự giải nén trong kho lưu trữ nén. Giải nén từng kho lưu trữ, chạy tập lệnh tự giải nén đi kèm từ gốc của cây nguồn, sau đó xác nhận rằng bạn đồng ý với các điều khoản của thỏa thuận cấp phép kèm theo. Các tệp nhị phân và tệp thực hiện phù hợp của chúng được cài đặt trong vendor/ phân cấp của cây nguồn.

Dọn dẹp

Để đảm bảo các tệp nhị phân mới cài đặt được tính đến đúng cách sau khi được trích xuất, hãy xóa đầu ra hiện có của bất kỳ bản dựng nào trước đó bằng cách sử dụng:

make clobber