Android kaynağını indirin

Android kaynağı, Google tarafından barındırılan Git depoları koleksiyonunda bulunur. Git deposu, kaynakta yapılan değişiklikler ve değişikliklerin ne zaman yapıldığı da dahil olmak üzere Android kaynağının tüm geçmişini içerir. Bu sayfada kaynağın nasıl indirileceği açıklanmaktadır.

Repo istemcisini başlat

İstemcinizi Android kaynak deposuna erişecek şekilde ayarlayın:

  1. Bir çalışma dizini oluşturun ve bu dizine gidin:

    $ mkdir WORKING_DIRECTORY
    $ cd WORKING_DIRECTORY
    
  2. Kaynak kontrolü için çalışma dizininizi başlatın:

    $ repo init -b main -u https://android.googlesource.com/platform/manifest
    

    -b seçeneği, başlattığınız dalı tanımlamak için kullanılır. -b sağlanmazsa, repo init varsayılan olarak ana dalda kullanılır. Dalların ve etiket adlarının bir listesi için bkz. Kaynak kodu etiketleri ve yapıları .

    -u seçeneği gereklidir ve Android kaynağındaki çeşitli Git projelerinin çalışma dizininizde nereye yerleştirileceğini belirten bir XML dosyası olan bildirim dosyasını belirtmek için kullanılır. Bu örnekte, bildirim dosyasının adı belirtilmediğinden komut, varsayılan bildirim dosyasını ( default.xml ) kullanır.

    Çıktı şu mesajı içermelidir:

    $ repo has been initialized in path_to_working_directory
    

Bildiri dosyası biçimi hakkında bilgi için bkz. repo Bildiri Biçimi .

Tüm Repo komutlarının listesi için Repo komut referansına bakın.

Android kaynağını indirin

Android kaynak ağacını çalışma dizininize indirmek için aşağıdaki komutu çalıştırın:

$ repo sync -c -j8

-c argümanı, Repo'ya geçerli bildirim dalını sunucudan getirmesi talimatını verir. -j8 komutu, daha hızlı tamamlanması için senkronizasyonu iş parçacıklarına böler.

Bu işlem bir saatten biraz fazla sürmelidir.

İndirme sırasında herhangi bir sorunla karşılaşırsanız Ağ sorunlarını giderme bölümüne bakın.

Ağ sorunlarını giderme

Bu bölümde başarısız senkronizasyonlara neden olabilecek ağ sorunlarını düzeltmeye yönelik çeşitli öneriler sunulmaktadır.

Kota engellerini önlemek için kimlik doğrulamayı kullanın

Sunucuları aşırı kullanıma karşı korumak için kaynağa erişimde kullanılan her IP adresi bir kota ile ilişkilendirilir.

Bir IP adresini diğer kullanıcılarla paylaşırken, örneğin kaynak depolarına NAT güvenlik duvarının ötesinden erişirken, normal kalıplar için kotalar tetiklenebilir. Örneğin, birkaç kullanıcı kısa bir süre içinde aynı IP adresinden yeni istemcileri senkronize ettiğinde bir kota tetiklenebilir.

Kotaların tetiklenmesini önlemek amacıyla, IP adresinden bağımsız olarak her kullanıcı için ayrı bir kota kullanan kimlik doğrulamalı erişimi kullanabilirsiniz.

Kimlik doğrulamalı erişimi etkinleştirmek için:

  1. Şifre oluşturucuyla bir şifre oluşturun.

  2. İstemcinizi otomatik kimlik doğrulamayı kullanacak şekilde dönüştürmek için aşağıdaki komutu çalıştırın (dal değiştirmeden):

    $ repo init -u https://android.googlesource.com/a/platform/manifest
    

    /a/ dizin önekinin otomatik kimlik doğrulamayı tetiklediğini unutmayın.

Proxy kullanımı için yapılandırma

Bazı kurumsal ortamlarda yaygın olduğu gibi, kaynağı bir proxy arkasından indiriyorsanız, aşağıdaki komutları çalıştırarak Repo'nun kullanacağı bir proxy'yi açıkça belirttiğinizden emin olun:

$ 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

Bağlantı sorunlarını önlemek için TCP/IP ayarlarını yapın

Nadir de olsa Linux istemcileri, nesneleri alırken indirme işleminin ortasında takılmak gibi bağlantı sorunları yaşayabilir. Bu sorunu iyileştirmek için TCP/IP yığınının ayarlarını düzenleyin veya paralel olmayan bağlantılar kullanın. TCP ayarını değiştirmek için root erişiminizin olması gerekir. Ayarı değiştirmek için aşağıdaki komutları verin:

$ sudo sysctl -w net.ipv4.tcp_window_scaling=0
$ repo sync -j1

Ağ gecikmesini önlemek için yerel bir ayna kullanın

Birden fazla istemci kullanırken, tüm sunucu içeriğinin yerel bir yansımasını oluşturabilir ve istemcileri ağa erişmeden bu yansımadan senkronize edebilirsiniz. ~/aosp-mirror/ adresinde yerel bir ayna oluşturmak ve istemcileri bu aynayla senkronize etmek için bu talimatları izleyin:

  1. Aynayı oluşturun ve senkronize edin:

    $ mkdir -p /usr/local/aosp/mirror
    $ cd /usr/local/aosp/mirror
    $ repo init -u https://android.googlesource.com/mirror/manifest --mirror
    

    Bu komutlar /user/local/aosp/mirror dosyasında yerel bir ayna oluşturur ve repo init komutuyla --mirror bayrağını kullanarak aynayı başlatır.

  2. İstemcileri aynadan senkronize etmek için:

    $ mkdir -p /usr/local/aosp/main
    $ cd /usr/local/aosp/main
    $ repo init -u /usr/local/aosp/mirror/platform/manifest.git
    $ repo sync
    
  3. Son olarak, aynayı sunucuyla senkronize etmek ve istemciyi aynayla senkronize etmek için şu komutları izleyin:

    $ cd /usr/local/aosp/mirror</code>
    $ repo sync
    $ cd /usr/local/aosp/main
    $ repo sync
    

Aynayı bir LAN sunucusunda depolamak ve ona NFS, SSH veya Git üzerinden erişmek mümkündür. Çıkarılabilir bir sürücüde saklamak ve bu sürücüyü kullanıcılar veya makineler arasında aktarmak da mümkündür.

Kısmi bir klon kullanın

Git sürüm 2.19 veya üstünü kullanıyorsanız, düşük gecikmeli ağ sorunlarının üstesinden gelmek için repo init gerçekleştirirken --partial-clone belirtin:

  $ repo init -u https://android.googlesource.com/platform/manifest -b main --partial-clone --clone-filter=blob:limit=10M

Her şeyi indirmek için Repo'yu başlatmak yerine, bu komut Git nesnelerini ihtiyaç duyuldukça indirir.

Tescilli ikili dosyaları indirin

AOSP, Mürekkepbalığı emülatörlerinde doğrudan çalışabilir, ancak AOSP, cihaza özel ek özel kitaplıklar olmadan donanımda kullanılamaz. Bu cihaz ikili dosyalarını nasıl elde edeceğiniz aşağıda açıklanmıştır:

  • Bir Nexus veya Pixel cihazı için main şubeyi ve binayı indiriyorsanız, Binaries önizleme sitesinden en son ikili dosyaları indirin.
  • Kendi cihazınız için main şubeyi ve binayı indirip oluşturuyorsanız, cihaza özel ikili dosyaları sağlamanız gerekir.
  • Bir Nexus veya Pixel cihazı için etiketli, ana olmayan bir şube ve bina indiriyor ve oluşturuyorsanız Nexus ve Pixel cihazları için Binaries'den cihaza özel ikili dosyayı indirin.

Tescilli ikili dosyaları çıkarın

Her ikili dosya kümesi, sıkıştırılmış bir arşivde kendi kendine açılan bir komut dosyası olarak gelir. Bu ikili dosyaları çıkarmak ve kaynak ağacınızın doğru konumuna yerleştirmek için:

  1. Arşivi çıkarın.
  2. Dahil edilen kendi kendine açılan kabuk komut dosyasını AOSP kaynak ağacınızın kökünden çalıştırın.
  3. Ekteki lisans sözleşmesinin şartlarını kabul edin. İkili dosyalar ve bunların eşleşen yapım dosyaları, kaynak ağacın vendor/ hiyerarşisine yüklenir.

(isteğe bağlı) Kodun meşruluğunu doğrulayın

Kaynak kodunun Google'dan gelip gelmediği gibi meşruluğu konusunda endişeleriniz varsa şubenin git etiketlerini doğrulayabilirsiniz. Git etiketlerini doğrulamak için:

  1. Aşağıdaki anahtar bloğunu kopyalayıp keyfile.asc gibi bir metin dosyasına yapıştırın.

    -----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-----
    
  2. GnuPG anahtar veritabanınıza bir genel anahtar girmek için aşağıdaki komutu çalıştırın. Anahtar, sürümleri temsil eden açıklamalı etiketleri imzalamak için kullanılır.

    $ gpg --import keyfile.asc
    
  3. Anahtarları içe aktardıktan sonra şu komutu çalıştırarak herhangi bir etiketi doğrulayabilirsiniz:

    $ git tag -v TAG_NAME