Google, Siyah topluluklar için ırksal eşitliği ilerletmeye kararlıdır. Nasıl olduğunu gör.
Bu sayfa, Cloud Translation API ile çevrilmiştir.
Switch to English

Kaynağı İndirme

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

Kaynağı indirmek yerine belirli bir aygıt için fabrika görüntüsüyle başlamak için bkz. Aygıt derlemesi seçme .

Repo istemcisini başlatma

Repo Başlatıcı'yı yükledikten sonra, istemcinizi Android kaynak havuzuna erişecek şekilde ayarlayın:

  1. Çalışma dosyalarınızı tutmak için boş bir dizin oluşturun. MacOS kullanıyorsanız, bunun büyük / küçük harfe duyarlı bir dosya sisteminde olması gerekir. İstediğiniz adı 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 inceleme aracını kullanmak için kayıtlı bir Google hesabına bağlı bir e-posta adresine ihtiyacınız vardır. Bunun, mesaj alabileceğiniz canlı bir adres olduğundan emin olun. Burada verdiğiniz ad, kod gönderimleriniz için atıflarda gösterilir.

    git config --global user.name "Your Name"
    git config --global user.email "you@example.com"
    
  3. En son hata düzeltmeleriyle Repo'nun en son sürümünü edinmek için repo init çalıştırın. Manifest için, Android kaynağında bulunan çeşitli havuzların çalışma dizininize nereye yerleştirileceğini belirten bir URL belirtmelisiniz.

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

    Not: bir sertifika hatası nedeniyle macOS'ta repo init başarısız olursa, önce çalıştırmanız gerekebilir:

    # macOS only
    open /Applications/Python\ 3.6/Install\ Certificates.command
    

    Master dışında bir şubeye bakmak için, -b ile belirtin. Dalların bir listesi için bkz. Kaynak kodu etiketleri ve derlemeleri .

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

Git sürüm 2.19 veya daha --partial-clone kullanıyorsanız, repo init gerçekleştirirken --partial-clone belirtebilirsiniz; bu, --partial-clone her şeyi indirmek yerine yalnızca gerektiğinde indirilen Kısmi klon yeteneğini kullanır. Kısmi klonların kullanılması, birçok işlemin sunucuyla iletişim kurması gerektiği anlamına geldiğinden, düşük gecikme süresine sahip bir ağ kullanan geliştiriciler için bu önerilir:

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

Başarılı bir başlatma işlemi, Repo'nun çalışma dizininizde başlatıldığını belirten bir mesajla sona erer. İstemci dizininiz şimdi manifest gibi dosyaların .repo bir .repo dizini içermelidir.

Android kaynak ağacını indirme

Android kaynak ağacını, varsayılan manifest'te belirtilen depolardan çalışma dizininize indirmek için şunu çalıştırın:

repo sync

Android kaynak dosyaları, çalışma dizininizde proje adları altında bulunur. -j threadcount hızlandırmak için -j threadcount bayrağını kullanın. Ayrıca, yalnızca sessiz ve geçerli şube senkronizasyonlarını gerçekleştirmek için -qc eklemeyi -qc . Daha fazla ayrıntı için Repo Komut Başvurusu'na bakın.

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, kaynak havuzlarına bir NAT güvenlik duvarının ötesinden erişirken), kotalar düzenli kullanım kalıpları için bile tetikleyebilir (örneğin, birçok kullanıcı bir IP adresi içinde aynı IP adresinden yeni istemcileri senkronize ediyorsa kısa süre).

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

İlk adım, şifre üreticisi ile bir şifre oluşturmak ve şifre üreticisi sayfasındaki talimatları takip etmektir.

İkinci adım, https://android.googlesource.com/a/platform/manifest manifest URI'sini kullanarak kimliği doğrulanmış erişimi zorlamaktır. /a/ dizin önekinin zorunlu kimlik doğrulamayı nasıl tetiklediğine dikkat edin. Mevcut bir istemciyi aşağıdaki komutla 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'nin arkasından indirirken (bazı şirket ortamlarında yaygındır), daha sonra Repo tarafından kullanılan 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 bağlantı sorunlarıyla karşılaşırlar ve indirme işlemlerinin ortasında kalırlar (genellikle nesneleri alırken ). TCP / IP yığınının ayarlarının değiştirilmesi ve paralel olmayan komutların kullanılmasının durumu iyileştirebileceği bildirilmiştir. TCP ayarını değiştirmek için root erişimine ihtiyacınız vardır:

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

Yerel bir ayna kullanma

Birkaç istemciyi kullanırken, özellikle bant genişliğinin az olduğu durumlarda, tüm sunucu içeriğinin yerel bir aynasını oluşturmak ve istemcileri bu yansıtmadan senkronize etmek daha iyidir (ağ erişimi gerektirmez). Tam ayna indirmesi, daha fazla bilgi içerirken iki istemcinin indirilmesinden daha küçüktür.

Bu talimatlar, aynanın /usr/local/aosp/mirror içinde oluşturulduğunu varsayar. İlk olarak, aynanın kendisini oluşturun ve senkronize edin. Yalnızca yeni bir istemci oluştururken belirtebileceğiniz --mirror bayrağına dikkat edin:

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

Ayna senkronize edildiğinde, ondan yeni istemciler oluşturabilirsiniz. Mutlak bir yol belirtmenin önemli olduğunu 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 sunucuya eşitlemek için yansıtmayı sunucuya, ardından istemciyi aynaya eşitleyin:

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

Aynayı bir LAN sunucusunda saklamak ve 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

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

gpg --import

Aşağıdaki anahtarı kopyalayıp yapıştırın, ardından girişi sonlandırmak ve tuşları işlemek için EOF ( Ctrl-D ) yazı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-----

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

git tag -v TAG_NAME

Tescilli ikili dosyalar edinin

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

Özel ikili dosyaları indir

Google'ın sürücülerinden AOSP sürüm şubeleri etiketli desteklenen cihazlar için resmi ikili dosyalar indirebilirsiniz. Bu ikili dosyalar, açık olmayan kaynak koduyla ek donanım özelliklerine erişim sağlar. AOSP ana dalını oluşturmak için bunun yerine İkili Önizleme'yi kullanın. Bir aygıt için ana dalı oluştururken, en son numaralı sürüm için veya en son tarihli ikili dosyaları kullanın.

Tescilli ikili dosyaları ayıkla

Her ikili dosya dizisi, sıkıştırılmış bir arşivde kendiliğinden açılan bir komut dosyası olarak gelir. Her arşivi açın, kaynak ağacın kökünden verilen kendi kendine açılan komut dosyasını çalıştırın, sonra ekteki lisans sözleşmesinin koşullarını kabul ettiğinizi onaylayın. İkili dosyalar ve bunların eşleşen markaları, kaynak ağacın vendor/ hiyerarşisine yüklenir.

Temizlemek

Yeni yüklenen ikili dosyaların çıkarıldıktan sonra düzgün bir şekilde dikkate alındığından emin olmak için aşağıdakileri kullanarak önceki yapıların mevcut çıktılarını silin:

make clobber