Google is committed to advancing racial equity for Black communities. See how.
Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Quelle herunterladen

Der Android-Quellbaum befindet sich in einem von Google gehosteten Git-Repository. Das Git-Repository enthält Metadaten für die Android-Quelle, einschließlich Änderungen an der Quelle und wann die Änderungen vorgenommen wurden. Diese Seite beschreibt, wie Sie den Quellbaum für eine bestimmte Android-Codezeile herunterladen.

Informationen zum Starten eines Factory-Images für ein bestimmtes Gerät anstelle des Herunterladens der Quelle finden Sie unter Auswählen eines Geräte-Builds .

Initialisieren eines Repo-Clients

Richten Sie nach der Installation des Repo Launcher Ihren Client für den Zugriff auf das Android-Quellrepository ein:

  1. Erstellen Sie ein leeres Verzeichnis für Ihre Arbeitsdateien. Wenn Sie macOS verwenden, muss dies in einem Dateisystem erfolgen, bei dem zwischen Groß- und Kleinschreibung unterschieden wird. Gib ihm einen beliebigen Namen:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
    
  2. Konfigurieren Sie Git mit Ihrem richtigen Namen und Ihrer E-Mail-Adresse. Um das Gerrit-Codeüberprüfungstool verwenden zu können, benötigen Sie eine E-Mail-Adresse, die mit einem registrierten Google-Konto verbunden ist . Stellen Sie sicher, dass dies eine Live-Adresse ist, unter der Sie Nachrichten empfangen können. Der Name, den Sie hier angeben, wird in Zuordnungen für Ihre Codeübermittlungen angezeigt.

    git config --global user.name "Your Name"
    git config --global user.email "you@example.com"
    
  3. Führen Sie repo init , um die neueste Version von Repo mit den neuesten Fehlerkorrekturen zu erhalten. Sie müssen eine URL für das Manifest angeben, die angibt, wo sich die verschiedenen in der Android-Quelle enthaltenen Repositorys in Ihrem Arbeitsverzeichnis befinden.

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

    Hinweis: Wenn die repo init unter macOS aufgrund eines Zertifikatfehlers fehlschlägt, müssen Sie möglicherweise zuerst Folgendes ausführen:

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

    Um einen anderen Zweig als master -b , geben Sie ihn mit -b . Eine Liste der Zweige finden Sie unter Quellcode-Tags und Builds .

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

Wenn Sie Git Version 2.19 oder höher verwenden, können Sie --partial-clone angeben, wenn Sie repo init ausführen. Dabei wird die partielle --partial-clone von Git verwendet, mit der Git-Objekte nur bei Bedarf heruntergeladen werden, anstatt alles herunterzuladen. Da die Verwendung von Teilklonen bedeutet, dass viele Vorgänge mit dem Server kommunizieren müssen, wird dies Entwicklern empfohlen, die ein Netzwerk mit geringer Latenz verwenden:

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

Eine erfolgreiche Initialisierung endet mit einer Meldung, dass Repo in Ihrem Arbeitsverzeichnis initialisiert wird. Ihr Client-Verzeichnis sollte jetzt ein .repo Verzeichnis enthalten, in dem Dateien wie das Manifest aufbewahrt werden.

Herunterladen des Android-Quellbaums

Führen Sie Folgendes aus, um den Android-Quellbaum aus den im Standardmanifest angegebenen Repositorys in Ihr Arbeitsverzeichnis herunterzuladen:

repo sync

Um die Synchronisierung zu beschleunigen, übergeben Sie stattdessen die -j threadcount Flags -c (aktueller Zweig) und -j threadcount :

repo sync -c -j8

Die Android-Quelldateien werden unter ihren Projektnamen in Ihr Arbeitsverzeichnis heruntergeladen.

Um die Ausgabe zu unterdrücken, übergeben Sie das Flag -q (leise). Alle Optionen finden Sie in der Repo-Befehlsreferenz .

Authentifizierung verwenden

Standardmäßig ist der Zugriff auf den Android-Quellcode anonym. Um die Server vor übermäßiger Nutzung zu schützen, ist jeder IP-Adresse ein Kontingent zugeordnet.

Wenn Sie eine IP-Adresse für andere Benutzer freigeben (z. B. beim Zugriff auf die Quell-Repositorys von außerhalb einer NAT-Firewall), können die Kontingente auch für reguläre Verwendungsmuster ausgelöst werden (z. B. wenn viele Benutzer neue Clients von derselben IP-Adresse innerhalb von a synchronisieren kurze Zeit).

In diesem Fall können Sie den authentifizierten Zugriff verwenden, der dann unabhängig von der IP-Adresse für jeden Benutzer ein separates Kontingent verwendet.

Der erste Schritt besteht darin, ein Passwort mit dem Passwortgenerator zu erstellen und den Anweisungen auf der Seite Passwortgenerator zu folgen.

Der zweite Schritt besteht darin, den authentifizierten Zugriff mithilfe des Manifest-URI https://android.googlesource.com/a/platform/manifest zu erzwingen. Beachten Sie, wie das Verzeichnispräfix /a/ die obligatorische Authentifizierung auslöst. Mit dem folgenden Befehl können Sie einen vorhandenen Client konvertieren, um die obligatorische Authentifizierung zu verwenden:

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

Fehlerbehebung bei Netzwerkproblemen

Wenn Sie hinter einem Proxy herunterladen (was in einigen Unternehmensumgebungen üblich ist), müssen Sie möglicherweise den Proxy explizit angeben, der dann von Repo verwendet wird:

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>

Seltener treten bei Linux-Clients Verbindungsprobleme auf, die während des Herunterladens (normalerweise beim Empfangen von Objekten ) hängen bleiben. Es wurde berichtet, dass das Ändern der Einstellungen des TCP / IP-Stacks und die Verwendung nicht paralleler Befehle die Situation verbessern können. Sie benötigen Root-Zugriff, um die TCP-Einstellung zu ändern:

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

Verwenden eines lokalen Spiegels

Wenn Sie mehrere Clients verwenden, insbesondere in Situationen, in denen die Bandbreite knapp ist, ist es besser, einen lokalen Spiegel des gesamten Serverinhalts zu erstellen und Clients von diesem Spiegel aus zu synchronisieren (für den kein Netzwerkzugriff erforderlich ist). Der Download für einen vollständigen Spiegel ist kleiner als der Download von zwei Clients und enthält mehr Informationen.

Diese Anweisungen setzen voraus, dass der Spiegel in /usr/local/aosp/mirror . Erstellen und synchronisieren Sie zunächst den Spiegel selbst. Beachten Sie das Flag --mirror , das Sie nur beim Erstellen eines neuen Clients angeben können:

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

Wenn der Spiegel synchronisiert ist, können Sie daraus neue Clients erstellen. Beachten Sie, dass es wichtig ist, einen absoluten Pfad anzugeben:

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

Um einen Client mit dem Server zu synchronisieren, synchronisieren Sie den Spiegel mit dem Server und dann den Client mit dem Spiegel:

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

Es ist möglich, den Spiegel auf einem LAN-Server zu speichern und über NFS, SSH oder Git darauf zuzugreifen. Es ist auch möglich, es auf einem Wechseldatenträger zu speichern und dieses Laufwerk an Benutzer oder Computer weiterzugeben.

Git-Tags überprüfen

Laden Sie den folgenden öffentlichen Schlüssel in Ihre GnuPG-Schlüsseldatenbank. Der Schlüssel wird zum Signieren von mit Anmerkungen versehenen Tags verwendet, die Releases darstellen.

gpg --import

Kopieren Sie den folgenden Schlüssel und fügen Sie ihn ein. EOF dann EOF ( Strg-D ) ein, um die Eingabe zu beenden und die Schlüssel zu verarbeiten.

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

Nach dem Importieren der Schlüssel können Sie jedes Tag überprüfen mit:

git tag -v TAG_NAME

Erhalten Sie proprietäre Binärdateien

AOSP kann nicht nur aus reinem Quellcode verwendet werden und erfordert zusätzliche hardwarebezogene proprietäre Bibliotheken, z. B. zur Beschleunigung der Hardwaregrafik. In den folgenden Abschnitten finden Sie Download-Links und Geräte-Binärdateien für zusätzliche Ressourcen.

Laden Sie proprietäre Binärdateien herunter

Sie können offizielle Binärdateien für die unterstützten Geräte, auf denen getaggte AOSP-Release-Zweige ausgeführt werden, von den Google-Treibern herunterladen. Diese Binärdateien bieten Zugriff auf zusätzliche Hardwarefunktionen mit nicht offenem Quellcode. Um den AOSP master - Zweig zu bauen, verwenden Sie die Binaries Preview statt. Verwenden Sie beim Erstellen des Hauptzweigs für ein Gerät die Binärdateien für die letzte nummerierte Version oder mit dem neuesten Datum.

Extrahieren Sie proprietäre Binärdateien

Jeder Satz von Binärdateien wird als selbstextrahierendes Skript in einem komprimierten Archiv geliefert. Dekomprimieren Sie jedes Archiv, führen Sie das enthaltene selbstextrahierende Skript aus dem Stammverzeichnis des Quellbaums aus und bestätigen Sie, dass Sie den Bedingungen der beigefügten Lizenzvereinbarung zustimmen. Die Binärdateien und ihre passenden Makefiles werden im vendor/ in der Hierarchie des Quellbaums installiert.

Aufräumen

Um sicherzustellen, dass die neu installierten Binärdateien nach dem Extrahieren ordnungsgemäß berücksichtigt werden, löschen Sie die vorhandene Ausgabe eines vorherigen Builds mit:

make clobber