Google berkomitmen untuk mendorong terwujudnya keadilan ras bagi komunitas Kulit Hitam. Lihat caranya.

Mengunduh Sumber

Pohon sumber Android terletak di repositori Git yang dihosting oleh Google. Repositori Git menyertakan metadata untuk sumber Android, termasuk perubahan pada sumber dan kapan perubahan dilakukan. Halaman ini menjelaskan cara mengunduh hierarki sumber untuk baris kode Android tertentu.

Untuk mulai dengan gambar pabrik untuk perangkat tertentu bukan men-download sumber, lihat Memilih perangkat membangun .

Menginisialisasi klien Repo

Setelah menginstal Repo Launcher , mengatur klien Anda untuk mengakses repositori sumber Android:

  1. Buat direktori kosong untuk menyimpan file kerja Anda. Beri nama apa pun yang Anda suka:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
    
  2. Konfigurasikan Git dengan nama asli dan alamat email Anda. Untuk menggunakan alat kode-review Gerrit, Anda memerlukan alamat email yang terhubung dengan akun Google yang terdaftar . Pastikan bahwa ini adalah alamat langsung tempat Anda dapat menerima pesan. Nama yang Anda berikan di sini muncul di atribusi untuk pengiriman kode Anda.

    git config --global user.name Your Name
    git config --global user.email you@example.com
    
  3. Run repo init untuk mendapatkan versi terbaru dari Repo dengan sebagian besar perbaikan bug-baru ini. Anda harus menentukan URL untuk manifes, yang menentukan di mana berbagai repositori yang disertakan dalam sumber Android ditempatkan dalam direktori kerja Anda.

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

    Untuk memeriksa cabang master:

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

    Untuk memeriksa cabang selain menguasai, tentukan dengan -b . Untuk daftar cabang, lihat tag Source code dan membangun .

    Untuk Python 2

    Untuk Python 3

    Jika Anda mendapatkan " /usr/bin/env 'python' no such file or directory " pesan kesalahan, penggunaan salah satu solusi berikut:

    Jika Anda Ubuntu 20.04.2 LTS adalah baru diinstal (vs upgrade) versi Linux:

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

    Jika menggunakan Git versi 2.19 atau lebih, Anda dapat menentukan --partial- clone saat melakukan repo init . Merek ini menggunakan Git ini clone parsial kemampuan untuk hanya men-download Git benda bila diperlukan, bukan men-download semuanya. Karena menggunakan klon parsial berarti banyak operasi harus berkomunikasi dengan server, gunakan yang berikut ini jika Anda seorang pengembang dan Anda menggunakan jaringan dengan latensi rendah:

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

    Untuk OS Windows saja: jika Anda mendapatkan pesan kesalahan yang menyatakan bahwa link simbolik tidak dapat dibuat, menyebabkan repo init gagal, referensi GitHub Symbolic Link dokumentasi untuk membuat ini, atau untuk mengaktifkan dukungan mereka. Untuk non-administrator, melihat Membiarkan non-administrator untuk membuat link simbolik bagian.

Inisialisasi yang berhasil diakhiri dengan pesan yang menyatakan bahwa Repo diinisialisasi di direktori kerja Anda. Direktori klien Anda sekarang berisi .repo direktori dimana file seperti manifes disimpan.

Mengunduh pohon sumber Android

Untuk mengunduh pohon sumber Android ke direktori kerja Anda dari repositori seperti yang ditentukan dalam manifes default, jalankan:

repo sync

Untuk sinkronisasi kecepatan, lulus -c (cabang saat ini) dan -j threadcount bendera:

repo sync -c -j8

File sumber Android diunduh di direktori kerja Anda di bawah nama proyeknya.

Untuk output menekan, lulus -q (tenang) flag. Lihat Repo Command Reference untuk semua pilihan.

Menggunakan otentikasi

Secara default, akses ke kode sumber Android bersifat anonim. Untuk melindungi server dari penggunaan yang berlebihan, setiap alamat IP dikaitkan dengan kuota.

Saat berbagi alamat IP dengan pengguna lain (misalnya, saat mengakses repositori sumber dari luar firewall NAT), kuota dapat memicu bahkan untuk pola penggunaan biasa (misalnya, jika banyak pengguna menyinkronkan klien baru dari alamat IP yang sama dalam sebuah periode singkat).

Dalam hal ini, Anda dapat menggunakan akses yang diautentikasi, yang kemudian menggunakan kuota terpisah untuk setiap pengguna, terlepas dari alamat IP.

Pertama, membuat password dengan password generator dan ikuti petunjuk pada halaman password generator.

Berikutnya, kekuatan dikonfirmasi akses dengan menggunakan manifes URI https://android.googlesource.com/a/platform/manifest . Perhatikan bagaimana /a/ direktori awalan pemicu otentikasi wajib. Anda dapat mengonversi klien yang ada untuk menggunakan autentikasi wajib dengan perintah berikut:

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

Memecahkan masalah jaringan

Saat mengunduh dari belakang proxy (yang umum di beberapa lingkungan perusahaan), Anda mungkin perlu secara eksplisit menentukan proxy untuk Repo untuk digunakan:

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>

Lebih jarang, Linux masalah konektivitas klien pengalaman, terjebak di tengah-tengah download (biasanya selama menerima objek). Menyesuaikan pengaturan tumpukan TCP/IP dan menggunakan perintah non-paralel dapat memperbaiki situasi. Anda harus memiliki akses root untuk mengubah pengaturan TCP:

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

Menggunakan cermin lokal

Saat menggunakan beberapa klien, terutama dalam situasi di mana bandwidth langka, lebih baik membuat cermin lokal dari seluruh konten server, dan menyinkronkan klien dari cermin itu (yang tidak memerlukan akses jaringan). Unduhan untuk cermin penuh lebih kecil daripada unduhan dua klien, dan berisi lebih banyak informasi.

Petunjuk ini mengasumsikan bahwa cermin dibuat dalam /usr/local/aosp/mirror . Pertama, buat dan sinkronkan cermin itu sendiri. Perhatikan --mirror bendera, yang dapat Anda tentukan hanya saat membuat klien baru:

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

Saat cermin disinkronkan, Anda dapat membuat klien baru darinya. Perhatikan bahwa Anda harus menentukan jalur absolut:

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

Terakhir, untuk menyinkronkan klien dengan server, sinkronkan mirror dengan server, lalu klien dengan mirror:

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

Dimungkinkan untuk menyimpan mirror di server LAN dan mengaksesnya melalui NFS, SSH, atau Git. Dimungkinkan juga untuk menyimpannya di drive yang dapat dilepas dan meneruskan drive itu di antara pengguna atau mesin.

Memverifikasi tag Git

Muat kunci publik berikut ke dalam basis data kunci GnuPG Anda. Kuncinya digunakan untuk menandatangani tag beranotasi yang mewakili rilis.

gpg --import

Copy dan paste kunci di bawah ini, kemudian ketik EOF (Ctrl-D) untuk mengakhiri input dan proses kunci.

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

Setelah mengimpor kunci, Anda dapat memverifikasi tag apa pun dengan:

git tag -v TAG_NAME

Dapatkan binari berpemilik

AOSP tidak dapat digunakan hanya dari kode sumber murni dan memerlukan pustaka berpemilik terkait perangkat keras tambahan untuk dijalankan, seperti untuk akselerasi grafis perangkat keras. Lihat bagian di bawah untuk link download dan binari Perangkat untuk sumber daya tambahan.

Unduh binari berpemilik

Anda dapat men-download binari resmi untuk perangkat yang didukung berjalan cabang tagged AOSP rilis dari driver Google . Binari ini menambahkan akses ke kemampuan perangkat keras tambahan dengan kode sumber non-terbuka. Untuk membangun cabang master AOSP, gunakan Binari Preview gantinya. Ketika membangun cabang master untuk perangkat, menggunakan binari untuk rilis bernomor terbaru atau dengan tanggal terbaru.

Ekstrak binari berpemilik

Setiap set binari hadir sebagai skrip self-extracting dalam arsip terkompresi. Buka kompresi setiap arsip, jalankan skrip self-extracting yang disertakan dari akar pohon sumber, lalu konfirmasikan bahwa Anda menyetujui persyaratan perjanjian lisensi terlampir. Binari dan makefiles pencocokan mereka dipasang di vendor/ hirarki pohon sumber.

Membersihkan

Untuk memastikan binari yang baru diinstal diperhitungkan dengan benar setelah diekstraksi, hapus output yang ada dari build sebelumnya menggunakan:

make clobber