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 thực hiện các thay đổi. 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 một hình ảnh nhà máy cho một thiết bị cụ thể thay vì tải về nguồn, xem Lựa chọn một thiết bị xây dựng .

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

Sau khi cài đặt Repo Launcher , thiết lập ứng dụng của bạn để truy cập vào 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 với tên thật và địa chỉ email của bạn. Để sử dụng công cụ mã xét Gerrit, bạn cần một địa chỉ email được kết nối với một tài khoản Google đăng ký . Đảm bảo rằng đây là địa chỉ trực tiếp nơi bạn có thể nhận tin nhắn. Tên mà bạn cung cấp ở đây hiển thị trong ghi nhận tác giả 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. Run repo init để có được phiên bản mới nhất của Repo với hầu hết các bản vá lỗi gần đây của mình. Bạn phải chỉ định một URL cho tệp kê khai, chỉ định nơi đặ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 chi nhánh khác ngoài chủ, xác định nó với -b . Đối với một danh sách các chi nhánh, xem thẻ Source code và xây dựng .

    Đối với Python 2

    Đối với Python 3

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

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

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

    Nếu sử dụng Git phiên bản 2.19 hoặc cao hơn, bạn có thể chỉ định --partial- clone khi thực hiện repo init . Làm cho này sử dụng của Git của bản sao một phần khả năng chỉ tải về các đối tượng Git khi cần thiết, thay vì tải về tất cả mọi thứ. Bởi vì việc 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
    

    Đối với hệ điều hành Windows chỉ: nếu bạn nhận được một thông báo lỗi nói rằng liên kết tượng trưng không thể được tạo ra, gây repo init thất bại, tham khảo các GitHub Symbolic Liên kết tài liệu hướng dẫn để tạo ra những, hoặc để cho phép hỗ trợ của họ. Đối với các quản trị viên, xem các phép phi quản trị để tạo liên kết tượng trưng phần.

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 khách hàng của bạn bây giờ chứa một .repo thư mục nơi các tập tin như manifest được lưu giữ.

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

Để đồng bộ hóa tốc độ, vượt qua -c (chi nhánh hiện hành) và -j threadcount cờ:

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.

Để sản lượng đàn áp, vượt qua -q (yên tĩnh) cờ. Xem Repo Command tham khảo cho 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 kiể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 đã 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.

Đầu tiên, tạo một mật khẩu với các máy phát điện mật khẩu và làm theo các hướng dẫn trên trang bộ tạo mật khẩu.

Tiếp theo, lực lượng truy cập đã bằng cách sử dụng URI manifest https://android.googlesource.com/a/platform/manifest . Thông báo như thế nào /a/ thư mục prefix trigger xác thực bắt buộc. Bạn có thể chuyển đổi một ứ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 một 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 để Repo 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 hơn nữa, Linux vấn đề kết nối khách hàng kinh nghiệm, bị mắc kẹt ở giữa tải (thường là khi cô nhận được đố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ố máy khách, đặc biệt là trong các tình huống băng thông khan hiếm, tốt hơn nên tạo một bản sao cục bộ của toàn bộ nội dung máy chủ và đồng bộ hoá các máy khách từ máy khách đó (không yêu cầu truy cập mạng). Tải xuống cho một máy nhân bản đầy đủ nhỏ hơn tải xuống cho hai máy khách và nó chứa nhiều thông tin hơn.

Những hướng dẫn cho rằng gương được tạo ra trong /usr/local/aosp/mirror . Đầu tiên, tạo và đồng bộ hóa chính gương. Chú ý --mirror cờ, mà bạn có thể xác định chỉ khi tạo ra một khách hàng 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 khách hàng mới từ 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 đó đồng bộ máy khách với máy chủ:

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ột 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 đó cho người dùng hoặc máy móc.

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ẻ được chú thích đại diện cho các bản phát hành.

gpg --import

Sao chép và dán phím bên dưới, sau đó gõ EOF (Ctrl-D) để kết thúc đầu vào và xử lý các phím.

-----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

Nhận 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 cho các liên kết tải về và tập tin nhị phân Device cho nguồn lực bổ sung.

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

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

Trích xuất mã nhị phân độc quyền

Mỗi bộ mã nhị phân đi kèm như một tập lệnh tự giải nén trong một 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 được bao gồ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 mã nhị phân và makefiles phù hợp của họ được cài đặt trong các vendor/ thứ bậc của cây nguồn.

Dọn dẹp

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

make clobber