Kaynağı İndirme

Android kaynak ağacı, Google tarafından barındırılan bir Git deposunda bulunur. Git deposu, kaynakta yapılan değişiklikler ve değişikliklerin ne zaman yapıldığı dahil olmak üzere Android kaynağı için meta verileri içerir. Bu sayfa, belirli bir Android kod satırı için kaynak ağacının nasıl indirileceğini açıklar.

Yerine kaynak indirme belirli bir cihazı fabrika resimle başlamak için, bkz bir aygıt yapı seçilmesi .

Bir Repo istemcisini başlatma

Sonra Repo Launcher yüklemeden , Android kaynak deposu erişmek için istemci ayarlamak:

  1. Çalışan dosyalarınızı tutmak için boş bir dizin oluşturun. İstediğiniz ismi verin:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
    
  2. Git'i gerçek adınız ve e-posta adresinizle yapılandırın. Gerrit kod yorumu aracını kullanmak için, bir ile bağlantılı olduğundan bir e-posta adresine ihtiyacınız kayıtlı Google hesabı . Bunun, mesaj alabileceğiniz canlı bir adres olduğundan emin olun. Burada sağladığınız ad, kod gönderimleriniz için atıflarda görünür.

    git config --global user.name Your Name
    git config --global user.email you@example.com
    
  3. Run repo init en son hata düzeltmeleri ile Repo son sürümünü almak için. Android kaynağında bulunan çeşitli havuzların çalışma dizininizde nereye yerleştirildiğini belirten bildirim için bir URL belirtmelisiniz.

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

    Ana dalı kontrol etmek için:

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

    Kaptan dışında bir şube kontrol etmek için, onu belirtmek -b . Dalların listesi için bkz Kaynak kod etiketleri ve inşa eder .

    Python 2 için

    Python 3 için

    Eğer alırsanız bir " /usr/bin/env 'python' no such file or directory " hata iletisi, aşağıdaki çözümlerden kullanımı biri:

    : Ubuntu 20.04.2 LTS yeni yüklenen (yükseltilen vs) Linux sürümü ise

    sudo ln -s /usr/bin/python3 /usr/bin/python

    Git sürüm 2.19 veya üzeri kullanıyorsanız, belirtebilirsiniz --partial- clone yaparken repo init . Bu markaları seyahatseverlerin Git adlı kullanımı kısmi klon gerektiğinde yerine yalnızca her şeyi indirmek, Git nesneleri indirmek için yeteneği. Kısmi klonların kullanılması, birçok işlemin sunucuyla iletişim kurması gerektiği anlamına geldiğinden, geliştiriciyseniz ve düşük gecikmeli bir ağ kullanıyorsanız aşağıdakileri kullanın:

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

    Windows işletim içindir: Sembolik link neden oluşturulamadı bildiren bir hata mesajı alırsanız repo init başarısız, GitHub referans Sembolik Bağlantılar belgeleri bu oluşturmak veya bunların desteğini etkinleştirmek için. Olmayan yöneticiler için bkz sembolik bağlantılar oluşturmak için izin olmayan yöneticiler bölümü.

Başarılı bir başlatma, çalışma dizininizde Repo'nun başlatıldığını belirten bir mesajla sona erer. Müvekkilin dizini a artık .repo böyle tezahür olarak dosyalarının saklandığı dizini.

Android kaynak ağacını indirme

Android kaynak ağacını, varsayılan bildirimde belirtildiği gibi depolardan çalışma dizininize indirmek için şunu çalıştırın:

repo sync

Hız senkronizasyon için geçmesi -c (güncel dalı) ve -j threadcount bayrakları:

repo sync -c -j8

Android kaynak dosyaları, çalışma dizininizde proje adları altında indirilir.

Bastırmak çıkışı için geçmesi -q (sessiz) bayrağını. Bkz Repo Komut Referansı Tüm seçenekler için.

Kimlik doğrulamayı kullanma

Varsayılan olarak, Android kaynak koduna erişim anonimdir. Sunucuları aşırı kullanıma karşı korumak için her IP adresi bir kota ile ilişkilendirilir.

Bir IP adresini diğer kullanıcılarla paylaşırken (örneğin, bir NAT güvenlik duvarının ötesinden kaynak havuzlara erişirken), kotalar normal kullanım kalıpları için bile tetiklenebilir (örneğin, birçok kullanıcı aynı IP adresinden yeni istemcileri bir kısa süre).

Bu durumda, IP adresinden bağımsız olarak her kullanıcı için ayrı bir kota kullanan kimliği doğrulanmış erişimi kullanabilirsiniz.

İlk olarak, bir şifre oluşturmak şifre üreticisi ve şifre üreteci sayfadaki yönergeleri izleyin.

Daha sonra, kuvvet kullanarak URI tezahür erişimini doğrulanmış https://android.googlesource.com/a/platform/manifest . Uyarı nasıl /a/ dizin öneki tetikler zorunlu kimlik doğrulaması. Aşağıdaki komutla mevcut bir istemciyi zorunlu kimlik doğrulamasını kullanacak şekilde dönüştürebilirsiniz:

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

Ağ sorunlarını giderme

Bir proxy arkasından indirirken (bazı kurumsal ortamlarda yaygın olan), Repo'nun kullanması için proxy'yi açıkça belirtmeniz gerekebilir:

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>

Daha nadiren, Linux istemcileri deneyim bağlantı sorunları, (genellikle alıcı nesneler sırasında) indirme ortasında sıkışmış. TCP/IP yığınının ayarlarını yapmak ve paralel olmayan komutları kullanmak durumu iyileştirebilir. TCP ayarını değiştirmek için kök erişiminiz olmalıdır:

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

Yerel bir ayna kullanma

Birkaç istemci kullanırken, özellikle bant genişliğinin kıt olduğu durumlarda, tüm sunucu içeriğinin yerel bir aynasını oluşturmak ve istemcileri bu aynadan senkronize etmek (ağ erişimi gerektirmez) daha iyidir. Tam yansıtma için indirme, iki istemcinin indirmesinden daha küçüktür ve daha fazla bilgi içerir.

Bu talimatlar ayna oluşturulur varsayalım /usr/local/aosp/mirror . İlk olarak, aynanın kendisini oluşturun ve senkronize edin. Dikkat --mirror yeni bir müşteri oluştururken sadece belirtebilirsiniz bayrak,:

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

Ayna eşitlendiğinde, ondan yeni istemciler oluşturabilirsiniz. Mutlak bir yol belirtmeniz gerektiğini unutmayın:

mkdir -p /usr/local/aosp/master
cd /usr/local/aosp/master
repo init -u /usr/local/aosp/mirror/platform/manifest.git
repo sync

Son olarak, bir istemciyi sunucuyla eşitlemek için aynayı sunucuyla, ardından istemciyi aynayla eşitleyin:

cd /usr/local/aosp/mirror
repo sync
cd /usr/local/aosp/master
repo sync

Yansıtmayı 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 geçirmek de mümkündür.

Git etiketlerini doğrulama

Aşağıdaki genel anahtarı GnuPG anahtar veritabanınıza yükleyin. Anahtar, sürümleri temsil eden açıklamalı etiketleri imzalamak için kullanılır.

gpg --import

Kopyalama ve aşağıdaki anahtar yapıştırın sonra yazın EOF (Ctrl-D) giriş sona erdirmek ve anahtarları işlem.

-----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-----

Anahtarları içe aktardıktan sonra, aşağıdakilerle herhangi bir etiketi doğrulayabilirsiniz:

git tag -v TAG_NAME

Özel ikili dosyalar edinin

AOSP yalnızca saf kaynak kodundan kullanılamaz ve çalışması için donanım grafik hızlandırması gibi donanımla ilgili ek özel kitaplıklar gerektirir. İndirme linkleri ve için aşağıdaki bölümlere bakın Cihaz ikili ek kaynaklar için.

Özel ikili dosyaları indirin

Sen gelen etiketli bir AOSP bırakma dalları çalıştıran desteklenen cihazlar için resmi ikilileri indirebilirsiniz Google'ın sürücüleri . Bu ikili dosyalar, açık olmayan kaynak koduyla ek donanım özelliklerine erişim sağlar. AOSP ana dalı oluşturmak için, kullanmak Çiftlerin Önizleme yerine. Bir cihaz için ana dalı oluştururken, için ikili kullanmaya En son numaralı sürümü veya en son tarihli.

Özel ikili dosyaları ayıklayın

Her ikili dosya grubu, sıkıştırılmış bir arşivde kendi kendine açılan bir komut dosyası olarak gelir. Her bir arşivi açın, kaynak ağacın kökünden dahil edilen kendi kendine açılan komut dosyasını çalıştırın, ardından ekteki lisans sözleşmesinin şartlarını kabul ettiğinizi onaylayın. İkili ve eşleştirme makefiles yüklü olan vendor/ kaynak ağacının hiyerarşisi.

Temizlemek

Yeni kurulan ikili dosyaların ayıklandıktan sonra düzgün bir şekilde dikkate alındığından emin olmak için, aşağıdakileri kullanarak önceki herhangi bir derlemenin mevcut çıktısını silin:

make clobber