Melakukan penyiapan untuk pengembangan AOSP (9.0 atau yang lebih baru)

Sebelum mendownload dan membangun cabang main dari sumber Android, pastikan hardware Anda memenuhi persyaratan yang diperlukan dan software yang diperlukan sudah diinstal dengan benar. Anda juga harus memahami istilah-istilah berikut:

Git
Git adalah sistem kontrol versi terdistribusi gratis dan open source. Android menggunakan Git untuk operasi lokal seperti cabang, commit, perbedaan, dan pengeditan. Untuk mendapatkan bantuan dalam mempelajari Git, lihat dokumentasi Git.
Repo
Repo adalah wrapper Python di sekitar Git yang menyederhanakan operasi kompleks di beberapa repositori Git. Repo tidak menggantikan Git untuk semua operasi kontrol versi, tetapi hanya mempermudah operasi Git yang kompleks. Repo menggunakan file manifes untuk menggabungkan project Git ke dalam superproject Android.
File manifes
File manifes adalah file XML yang menentukan lokasi berbagai project Git dalam sumber Android ditempatkan dalam hierarki sumber AOSP.

Persyaratan Meet hardware

Workstation pengembangan Anda harus memenuhi atau melebihi persyaratan hardware berikut:

  • Sistem x86 64-bit.

  • Minimal 400 GB ruang disk kosong untuk check out dan mem-build kode (250 GB untuk check out + 150 GB untuk mem-build).

  • RAM minimum 64 GB. Google menggunakan mesin 72 core dengan RAM 64 GB untuk mem-build Android. Dengan konfigurasi hardware ini, perlu waktu sekitar 40 menit untuk build Android lengkap dan hanya beberapa menit untuk build Android inkremental. Sebaliknya, perlu waktu sekitar 6 jam untuk build lengkap dengan mesin 6 core dengan RAM 64 GB.

Memenuhi persyaratan sistem operasi

Workstation pengembangan Anda harus menjalankan distribusi Linux 64-bit dengan GNU C Library (glibc) 2.17 atau yang lebih baru.

Instal paket yang diperlukan

Untuk membangun Android 11 atau yang lebih tinggi, Anda harus menggunakan Ubuntu 18.04 atau yang lebih baru. Untuk menginstal paket yang diperlukan untuk Ubuntu 18.04 atau yang lebih baru, jalankan perintah berikut:

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

Di antara paket yang diinstal, perintah ini menginstal Git, yang digunakan untuk mendownload sumber AOSP.

Menginstal software yang diperlukan

Sebelum dapat menggunakan AOSP, Anda harus menginstal OpenJDK, Make, Python 3, dan Repo. Cabang utama AOSP dari Android dilengkapi dengan versi bawaan OpenJDK, Make, dan Python 3, sehingga langkah penginstalan tambahan tidak diperlukan. Bagian berikut menjelaskan cara menginstal Repo.

Menginstal Repo

Ikuti langkah-langkah berikut untuk menginstal Repo:

  1. Download informasi paket saat ini:

    sudo apt-get update
  2. Jalankan perintah berikut untuk menginstal peluncur Repo:

    sudo apt-get install repo

    Peluncur Repo menyediakan skrip Python yang menginisialisasi checkout dan mendownload alat Repo lengkap.

    Jika berhasil, lanjutkan ke langkah 4.

  3. (opsional) Instal Repo secara manual menggunakan serangkaian perintah berikut:

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo

    Tiga perintah pertama menyiapkan file sementara, mendownload Repo ke file, dan memverifikasi bahwa kunci yang diberikan cocok dengan kunci yang diperlukan. Jika perintah ini berhasil, perintah akhir akan menginstal peluncur Repo.

  4. Verifikasi versi peluncur Repo:

    repo version

    Output akan menunjukkan versi 2.4 atau yang lebih tinggi, misalnya:

    repo launcher version 2.45

Menetapkan direktori output alternatif

Secara default, output setiap build disimpan di subdirektori out/ dari hierarki sumber yang cocok. Anda dapat mengganti direktori ini dengan mengekspor variabel lingkungan OUT_DIR. Misalnya, jika ingin menyimpan output di drive lain, Anda dapat mengarahkan OUT_DIR ke drive tersebut:

export OUT_DIR=my_other_drive

Apa selanjutnya?