AOSP geliştirme için kurulum (9.0 veya üzeri)

Android kaynağının main dalını indirip oluşturmadan önce, donanımınızın gerekli gereksinimleri karşıladığından ve gerekli yazılımın doğru şekilde yüklendiğinden emin olun. Ayrıca aşağıdaki terimlere de aşina olmalısınız:

Git
Git, ücretsiz ve açık kaynaklı, dağıtılmış bir sürüm kontrol sistemidir. Android, Git'i dallanma, taahhütler, farklar ve düzenlemeler gibi yerel işlemler için kullanır. Git'i öğrenmeyle ilgili yardım için Git belgelerine bakın.
Repo
Repo, Git'i çevreleyen ve birden fazla Git deposunda karmaşık işlemlerin gerçekleştirilmesini kolaylaştıran bir Python sarmalayıcısıdır. Repo, tüm sürüm kontrol işlemleri için Git'in yerini almaz; yalnızca karmaşık Git işlemlerinin gerçekleştirilmesini kolaylaştırır. Repo, Git projelerini Android süper projesine toplamak için bildirim dosyalarını kullanır.
Bildirim dosyası
Bildiri dosyası, Android kaynağındaki çeşitli Git projelerinin AOSP kaynak ağacında nereye yerleştirileceğini belirten bir XML dosyasıdır.

Donanım gereksinimlerini karşılayın

Geliştirme iş istasyonunuz şu donanım gereksinimlerini karşılamalı veya aşmalıdır:

  • 64 bitlik bir sistem.

  • Kodu teslim almak ve oluşturmak için en az 400 GB boş disk alanı (kodu teslim almak için 250 GB + derlemek için 150 GB).

  • Minimum 64 GB RAM. Google, Android'i geliştirmek için 64 GB RAM'e sahip 72 çekirdekli makineler kullanıyor. Bu donanım yapılandırmasıyla, Android'in tam sürümünün oluşturulması yaklaşık 40 dakika, artımlı Android sürümünün oluşturulması ise yalnızca birkaç dakika sürer. Buna karşılık, 64 GB RAM'e sahip 6 çekirdekli bir makineyle tam bir yapının oluşturulması yaklaşık 6 saat sürer.

İşletim sistemi gereksinimlerini karşılayın

Geliştirme iş istasyonunuz, GNU C Library (glibc) 2.17 veya üzeri sürüme sahip herhangi bir 64 bit Linux dağıtımını çalıştırmalıdır.

Gerekli paketleri yükleyin

Android 11 veya üzerini derlemek için Ubuntu 18.04 veya üzerini kullanmanız gerekir. Ubuntu 18.04 veya üzeri için gerekli paketleri kurmak için aşağıdaki komutu çalıştırın:

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

Bu komut, kurulu paketler arasında AOSP kaynağını indirmek için kullanılan Git'i yükler.

Gerekli yazılımı yükleyin

AOSP ile çalışabilmeniz için önce OpenJDK, Make, Python 3 ve Repo kurulumlarına sahip olmanız gerekir. Android'in AOSP ana kolu OpenJDK, Make ve Python 3'ün önceden oluşturulmuş sürümleriyle birlikte gelir, dolayısıyla ek kurulum adımları gerekli değildir. Aşağıdaki bölümde Repo'nun nasıl kurulacağı açıklanmaktadır.

Repo'yu yükle

Repo'yu yüklemek için şu adımları izleyin:

  1. Güncel paket bilgilerini indirin:

    sudo apt-get update
    
  2. Repo başlatıcısını yüklemek için aşağıdaki komutu çalıştırın:

    sudo apt-get install repo
    

    Repo başlatıcısı, ödeme işlemini başlatan ve Repo aracının tamamını indiren bir Python betiği sağlar.

    Başarılı olursa 4. adıma geçin.

  3. (isteğe bağlı) Aşağıdaki komut dizisini kullanarak Repo'yu manuel olarak yükleyin:

    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
    

    İlk üç komut geçici bir dosya oluşturur, Repo'yu dosyaya indirir ve sağlanan anahtarın gerekli anahtarla eşleştiğini doğrular. Bu komutlar başarılı olursa son komut Repo başlatıcısını yükler.

  4. Repo başlatıcısı sürümünü doğrulayın:

    repo version
    

    Çıktı 2.5 veya daha yüksek bir sürümü göstermelidir; örneğin:

    repo launcher version 2.40

Alternatif bir çıktı dizini ayarlayın

Varsayılan olarak her yapının çıktısı, eşleşen kaynak ağacının out/ alt dizininde saklanır. OUT_DIR ortam değişkenini dışa aktararak bu dizini geçersiz kılabilirsiniz. Örneğin çıktınızı farklı bir sürücüde depolamak istiyorsanız OUT_DIR bu sürücüye yönlendirebilirsiniz:

export OUT_DIR=my_other_drive

Sıradaki ne?