Android kaynağının en son Android sürüm dalını (android17-release) indirip derlemeden önce donanımınızın gerekli koşulları karşıladığından ve gerekli yazılımların doğru şekilde yüklendiğinden emin olun. Ayrıca aşağıdaki terimleri de bilmeniz gerekir:
- Git
- Git, ücretsiz ve açık kaynaklı bir dağıtılmış sürüm denetim sistemidir. Android; dallandırma, kaydetme, farklar ve düzenlemeler gibi yerel işlemler için Git'i kullanır. Git'i öğrenme konusunda yardım için Git belgelerine bakın.
- Repo
- Repo, birden fazla Git deposunda karmaşık işlemler yapmayı kolaylaştıran, Git'i sarmalayan bir Python aracıdır. Repo, tüm sürüm denetimi işlemleri için Git'in yerini almaz. Yalnızca karmaşık Git işlemlerinin daha kolay gerçekleştirilmesini sağlar. Repo, Git projelerini Android süper projesinde toplamak için manifesto dosyalarını kullanır.
- Manifesto dosyası
- Manifesto dosyası, Android kaynağındaki çeşitli Git projelerinin bir AOSP kaynak ağacında nerede bulunduğunu belirten bir XML dosyasıdır.
Meet Hardware cihazı gereksinimleri
Geliştirme iş istasyonunuz aşağıdaki donanım gereksinimlerini karşılamalı veya aşmalıdır:
64 bit x86 sistemi
Kodu kontrol etmek ve derlemek için en az 400 GB boş disk alanı (kontrol etmek için 250 GB + derlemek için 150 GB).
En az 64 GB RAM. Google, Android'i derlemek için 64 GB RAM'e sahip 72 çekirdekli makineler kullanır. Bu donanım yapılandırmasıyla 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 yaklaşık 6 saat sürer.
İşletim sistemi gereksinimlerini karşılama
Geliştirme iş istasyonunuzda GNU C Kitaplığı (glibc) 2.17 veya sonraki bir sürümü içeren herhangi bir 64 bit Linux dağıtımı çalıştırılmalıdır.
Gerekli paketleri yükleme
Android 11 veya sonraki sürümleri derlemek için Ubuntu 18.04 ya da 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 fontconfigBu 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üklemeniz gerekir. Android'in en son sürüm dalı; OpenJDK, Make ve Python 3'ün önceden derlenmiş sürümleriyle birlikte sunulduğundan ek yükleme adımları gerekmez. Aşağıdaki bölümde Repo'nun nasıl yükleneceği açıklanmaktadır.
Repo'yu yükleme
Repo'yu yüklemek için aşağıdaki adımları uygulayın:
Mevcut paket bilgilerini indirin:
sudo apt-get updateRepo başlatıcıyı yüklemek için aşağıdaki komutu çalıştırın:
sudo apt-get install repoRepo başlatıcı, bir ödemeyi başlatan ve tam Repo aracını indiren bir Python komut dosyası sağlar.
Başarılı olursa 4. adıma geçin.
İsteğe bağlı: Aşağıdaki komutları kullanarak Repo'yu manuel olarak yükleyin:
export REPO=$(mktemp /tmp/repo.XXXXXXXXX)curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repogpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65curl -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ıyı yükler.
Repo başlatıcı sürümünü doğrulayın:
repo versionÇıkışta 2.4 veya daha yeni bir sürüm gösterilmelidir. Örneğin:
repo launcher version 2.45
Alternatif bir çıkış dizini ayarlama
Varsayılan olarak, her derlemenin çıkışı, eşleşen kaynak ağacının out/ alt dizininde depolanı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 değişkenini o sürücüye yönlendirebilirsiniz:
export OUT_DIR=my_other_driveSırada ne var?
- Kaynak kodunu indirmek için Android kaynağını indirme bölümüne gidin.
- Git'i öğrenme konusunda yardım için Git belgelerine bakın.
- Ek Repo belgeleri için Repo README sayfasına bakın.
- Tüm Repo komutlarının listesi için Repo komut referansı sayfasına bakın.