Android kaynağının main
dalını indirip derlemeden ö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 olmanız gerekir:
- Git
- Git, ücretsiz ve açık kaynaklı bir dağıtılmış sürüm kontrol sistemidir. Android; dal oluşturma, taahhüt, fark karşılaştırma ve düzenleme gibi yerel işlemler için Git'i kullanır. Git'i öğrenmeyle ilgili yardım için Git dokümanlarına bakın.
- Repo
- Repo, birden fazla Git deposunda karmaşık işlemlerin yapılmasını basitleştiren Git için 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 yapılmasını kolaylaştırır. Repo, Git projelerini Android süper projesinde toplamak için manifest dosyalarını kullanır.
- Manifest dosyası
- Manifest dosyası, Android kaynağındaki çeşitli Git projelerinin AOSP kaynak ağacında nereye yerleştirildiğini belirten bir XML dosyasıdır.
Meet Donanım gereksinimleri
Geliştirme iş istasyonunuz aşağıdaki donanım koşullarını karşılamalıdır:
64 bit x86 sistem.
Kodu kontrol etmek ve derlemek için en az 400 GB boş disk alanı (kodu kontrol etmek için 250 GB + derlemek için 150 GB)
En az 64 GB RAM. Google, Android'i oluşturmak için 64 GB RAM'e sahip 72 çekirdekli makineler kullanır. Bu donanım yapılandırmasında, Android'in tam derlemesi yaklaşık 40 dakika, artımlı derlemesi ise yalnızca birkaç dakika sürer. Buna karşılık, 64 GB RAM'e sahip 6 çekirdekli bir makinede tam derleme işlemi yaklaşık 6 saat sürer.
İşletim sistemi gereksinimlerini karşılama
Geliştirme iş istasyonunuzda GNU C Library (glibc) 2.17 veya sonraki bir sürümün yüklü olduğu 64 bit Linux dağıtımı çalışmalıdır.
Gerekli paketleri yükleme
Android 11 veya sonraki sürümleri derlemek için Ubuntu 18.04 veya sonraki bir sürümü kullanmanız gerekir. Ubuntu 18.04 veya sonraki sürümler için gerekli paketleri yüklemek üzere 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 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
Bu komut, yüklenen paketler arasında AOSP kaynağını indirmek için kullanılan Git'i de yükler.
Gerekli yazılımları yükleme
AOSP ile çalışabilmek için OpenJDK, Make, Python 3 ve Repo'yu yüklemiş olmanız gerekir. Android'in AOSP ana şubesi, OpenJDK, Make ve Python 3'ün önceden derlenmiş sürümleriyle birlikte gelir. Bu nedenle ek yükleme adımları gerekmez. Aşağıdaki bölümde, Repo'nun nasıl yükleneceği açıklanmaktadır.
Depoyu yükleme
Repo'yu yüklemek için aşağıdaki adımları uygulayın:
Mevcut paket bilgilerini indirin:
sudo apt-get update
Repo başlatıcıyı yüklemek için aşağıdaki komutu çalıştırın:
sudo apt-get install repo
Repo başlatıcı, bir ödeme işlemini başlatan ve Repo aracının tamamını indiren bir Python komut dosyası sağlar.
Başarılı olursa 4. adıma geçin.
(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 bir geçici 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ıyı yükler.
Depo başlatıcı sürümünü doğrulayın:
repo version
Çıkışta 2.4 veya daha yeni bir sürüm belirtilmelidir. Örneğin:
repo launcher version 2.45
Alternatif bir çıkış dizini ayarlayın
Varsayılan olarak her derlemenin çıkışı, eşleşen kaynak ağacının out/
alt klasöründe saklanır. OUT_DIR
ortam değişkenini dışa aktararak bu dizini geçersiz kılabilirsiniz. Örneğin, çıkışı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ırada ne var?
- Kaynak kodunu indirmek için Android kaynağını indirme bölümüne geçin.
- Git'i öğrenmeyle ilgili yardım için Git dokümanlarını inceleyin.
- Daha fazla Repo dokümanı için Repo README dosyasını inceleyin.
- Tüm Repo komutlarının listesi için Repo komutu referansı başlıklı makaleyi inceleyin.