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 mendownload pohon sumber untuk baris kode Android tertentu.
Untuk memulai dengan image pabrik untuk perangkat tertentu alih-alih mendownload sumbernya, lihat Memilih build perangkat .
Memulai klien Repo
Setelah menginstal Repo Launcher , siapkan klien Anda untuk mengakses repositori sumber Android:
Buat direktori kosong untuk menyimpan file kerja Anda. Jika Anda menggunakan macOS, ini harus menggunakan sistem file yang peka huruf besar / kecil. Beri nama apa pun yang Anda suka:
mkdir WORKING_DIRECTORY
cd WORKING_DIRECTORY
Konfigurasi Git dengan nama asli dan alamat email Anda. Untuk menggunakan alat peninjau kode Gerrit, Anda memerlukan alamat email yang terhubung dengan akun Google terdaftar . Pastikan 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"
Jalankan
repo init
untuk mendapatkan versi terbaru Repo dengan perbaikan bug terbarunya. 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
Catatan: jika
repo init
gagal di macOS karena kesalahan sertifikat, Anda mungkin perlu menjalankan:# macOS only open /Applications/Python\ 3.6/Install\ Certificates.command
Untuk memeriksa cabang selain master , tentukan dengan
-b
. Untuk daftar cabang, lihat Build dan tag kode sumber .repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
Jika menggunakan Git versi 2.19 atau yang lebih baru, Anda dapat menentukan --partial-clone
saat menjalankan repo init
yang akan menggunakan kapabilitas --partial-clone
parsial Git, yang hanya mengunduh objek Git saat diperlukan alih-alih mengunduh semuanya. Karena menggunakan klon parsial berarti banyak operasi perlu berkomunikasi dengan server, ini disarankan untuk pengembang yang menggunakan jaringan dengan latensi rendah:
repo init -u https://android.googlesource.com/platform/manifest -b master --partial-clone --clone-filter=blob:limit=10M
Inisialisasi yang berhasil diakhiri dengan pesan yang menyatakan bahwa Repo diinisialisasi di direktori kerja Anda. Direktori klien Anda sekarang harus berisi direktori .repo
tempat menyimpan file seperti manifes.
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 mempercepat sinkronisasi, berikan tanda -c
(cabang saat ini) dan -j threadcount
:
repo sync -c -j8
File sumber Android diunduh di direktori kerja Anda di bawah nama proyeknya.
Untuk menekan output, teruskan flag -q
(quiet). Lihat Referensi Perintah Repo untuk semua opsi.
Menggunakan otentikasi
Secara default, akses ke kode sumber Android adalah 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 periode singkat).
Dalam hal ini, Anda dapat menggunakan akses terautentikasi, yang kemudian menggunakan kuota terpisah untuk setiap pengguna, apa pun alamat IP-nya.
Langkah pertama adalah membuat kata sandi dengan pembuat kata sandi dan ikuti instruksi di halaman pembuat kata sandi.
Langkah kedua adalah memaksa akses yang diautentikasi menggunakan URI manifes https://android.googlesource.com/a/platform/manifest
. Perhatikan bagaimana awalan /a/
direktori memicu otentikasi wajib. Anda dapat mengonversi klien yang ada untuk menggunakan otentikasi 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 menentukan secara eksplisit proxy yang kemudian digunakan oleh Repo:
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, klien Linux mengalami masalah konektivitas, terjebak di tengah unduhan (biasanya selama menerima objek ). Telah dilaporkan bahwa mengubah pengaturan tumpukan TCP / IP dan menggunakan perintah non-paralel dapat memperbaiki situasi. Anda membutuhkan 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 mirror lokal dari seluruh konten server, dan menyinkronkan klien dari mirror itu (yang tidak memerlukan akses jaringan). Unduhan untuk cermin penuh lebih kecil daripada unduhan dua klien, sementara berisi lebih banyak informasi.
Petunjuk ini mengasumsikan bahwa mirror dibuat di /usr/local/aosp/mirror
. Pertama, buat dan sinkronkan cermin itu sendiri. Perhatikan bendera --mirror
, yang bisa 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 penting untuk 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 ke server, lalu klien dengan mirror:
cd /usr/local/aosp/mirror
repo sync
cd /usr/local/aosp/master
repo sync
Mirror dapat disimpan 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
Salin dan tempel kunci di bawah ini, lalu ketik EOF
( Ctrl-D ) untuk mengakhiri input dan memproses 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 biner berpemilik
AOSP tidak dapat digunakan hanya dari kode sumber murni dan memerlukan pustaka kepemilikan terkait perangkat keras tambahan untuk dijalankan, seperti untuk akselerasi grafis perangkat keras. Lihat bagian di bawah ini untuk tautan unduhan dan Biner perangkat untuk sumber daya tambahan.
Unduh binari berpemilik
Anda dapat mengunduh binari resmi untuk perangkat yang didukung yang menjalankan cabang rilis AOSP yang diberi tag dari driver Google . Biner ini menambahkan akses ke kemampuan perangkat keras tambahan dengan kode sumber non-terbuka. Untuk membangun cabang master AOSP, gunakan Binaries Preview sebagai gantinya. Saat membuat cabang master untuk perangkat, gunakan biner untuk rilis bernomor terbaru atau dengan tanggal terbaru.
Ekstrak biner berpemilik
Setiap kumpulan biner hadir sebagai skrip yang mengekstrak sendiri dalam arsip terkompresi. Batalkan kompresi setiap arsip, jalankan skrip yang mengekstrak sendiri dari akar pohon sumber, lalu konfirmasikan bahwa Anda menyetujui persyaratan perjanjian lisensi terlampir. Biner dan makefile yang cocok akan dipasang di vendor/
hierarki pohon sumber.
Membersihkan
Untuk memastikan biner yang baru diinstal diperhitungkan dengan benar setelah diekstrak, hapus keluaran yang ada dari setiap build sebelumnya menggunakan:
make clobber