Scaricare la fonte

L'albero dei sorgenti di Android si trova in un repository Git ospitato da Google. Il repository Git include i metadati per l'origine Android, comprese le modifiche all'origine e quando sono state apportate le modifiche. Questa pagina descrive come scaricare l'albero dei sorgenti per una specifica riga di codice Android.

Per avviare una fabbrica di immagine per un dispositivo specifico invece di scaricare i sorgenti con, vedere Selezione di un accumulo dispositivo .

Inizializzazione di un client Repo

Dopo l'installazione del Repo Launcher , impostare il client per accedere al repository source Android:

  1. Crea una directory vuota per contenere i tuoi file di lavoro. Dagli il nome che preferisci:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
    
  2. Configura Git con il tuo vero nome e indirizzo email. Per utilizzare lo strumento di codice-review Gerrit, è necessario un indirizzo di posta elettronica che è collegato con un account Google registrato . Assicurati che questo sia un indirizzo attivo dove puoi ricevere messaggi. Il nome che fornisci qui viene visualizzato nelle attribuzioni per gli invii del codice.

    git config --global user.name Your Name
    git config --global user.email you@example.com
    
  3. Esegui repo init per ottenere l'ultima versione di Repo con le sue recenti correzioni più bug. Devi specificare un URL per il manifest, che specifichi dove sono posizionati i vari repository inclusi nell'origine Android all'interno della tua directory di lavoro.

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

    Per controllare il ramo principale:

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

    Per controllare un ramo diverso da padrone, specificarlo con -b . Per un elenco dei rami, vedi tag codice sorgente e costruisce .

    Per Python 2

    Per Python 3

    Se si ottiene un " /usr/bin/env 'python' no such file or directory " messaggio di errore, utilizzare una delle seguenti soluzioni:

    Se il vostro Ubuntu 20.04.2 LTS è una nuova installazione (vs. aggiornata) versione per Linux:

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

    Se si utilizza Git versione 2.19 o superiore, è possibile specificare --partial- clone durante l'esecuzione di repo init . Questo rende l'uso di di Git clone parziale capacità di scaricare solo gli oggetti Git quando necessario, invece di scaricare tutto. Poiché l'utilizzo di cloni parziali significa che molte operazioni devono comunicare con il server, utilizza quanto segue se sei uno sviluppatore e stai utilizzando una rete a bassa latenza:

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

    Per Windows OS solo: se si ottiene un messaggio di errore che indica che non potevano essere creati i collegamenti simbolici, causando repo init a fallire, fare riferimento al GitHub collegamenti simbolici documentazione per creare questi, o per consentire il loro sostegno. Per i non-amministratori, vedere le Come consentire agli utenti non amministratori di creare link simbolici sezione.

Un'inizializzazione riuscita termina con un messaggio che indica che Repo è inizializzato nella directory di lavoro. La vostra directory del client contiene ora un .repo directory in cui sono conservati i file come il manifesto.

Download dell'albero dei sorgenti di Android

Per scaricare l'albero dei sorgenti Android nella directory di lavoro dai repository come specificato nel manifest predefinito, esegui:

repo sync

Per sincronizzazioni di velocità, passare il -c (filiale di corrente) e -j threadcount bandiere:

repo sync -c -j8

I file sorgente di Android vengono scaricati nella directory di lavoro con i nomi dei loro progetti.

Per l'uscita sopprimere, passare il -q (tranquilla) bandiera. Vedere la Command Reference Repo per tutte le opzioni.

Utilizzo dell'autenticazione

Per impostazione predefinita, l'accesso al codice sorgente di Android è anonimo. Per proteggere i server dall'uso eccessivo, ogni indirizzo IP è associato a una quota.

Quando si condivide un indirizzo IP con altri utenti (ad esempio, quando si accede ai repository di origine dall'esterno di un firewall NAT), le quote possono attivarsi anche per modelli di utilizzo regolare (ad esempio, se molti utenti sincronizzano nuovi client dallo stesso indirizzo IP all'interno di un breve periodo).

In tal caso, puoi utilizzare l'accesso autenticato, che utilizza quindi una quota separata per ciascun utente, indipendentemente dall'indirizzo IP.

In primo luogo, creare una password con il generatore di password e seguire le istruzioni riportate nella pagina generatore di password.

Avanti, forza autenticato l'accesso utilizzando il manifesto URI https://android.googlesource.com/a/platform/manifest . Notate come la /a/ directory prefix trigger di autenticazione obbligatoria. Puoi convertire un client esistente per utilizzare l'autenticazione obbligatoria con il seguente comando:

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

Risoluzione dei problemi di rete

Quando si esegue il download da dietro un proxy (comune in alcuni ambienti aziendali), potrebbe essere necessario specificare in modo esplicito il proxy da utilizzare per Repo:

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>

Più raramente, Linux problemi di connettività client di esperienza, rimanere bloccati nel bel mezzo di download (tipicamente durante gli oggetti che ricevono). La regolazione delle impostazioni dello stack TCP/IP e l'utilizzo di comandi non paralleli possono migliorare la situazione. È necessario disporre dell'accesso root per modificare l'impostazione TCP:

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

Utilizzo di un mirror locale

Quando si utilizzano più client, specialmente in situazioni in cui la larghezza di banda è scarsa, è meglio creare un mirror locale dell'intero contenuto del server e sincronizzare i client da quel mirror (che non richiede l'accesso alla rete). Il download per un mirror completo è più piccolo del download di due client e contiene più informazioni.

Queste istruzioni presuppongono che lo specchio è creato in /usr/local/aosp/mirror . Innanzitutto, crea e sincronizza il mirror stesso. Si noti la --mirror bandiera, che è possibile specificare solo quando si crea un nuovo cliente:

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

Quando il mirror è sincronizzato, puoi creare nuovi client da esso. Nota che devi specificare un percorso assoluto:

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

Infine, per sincronizzare un client con il server, sincronizzare il mirror con il server, quindi il client con il mirror:

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

È possibile archiviare il mirror su un server LAN e accedervi tramite NFS, SSH o Git. È anche possibile memorizzarlo su un'unità rimovibile e passare quell'unità tra utenti o macchine.

Verifica dei tag Git

Carica la seguente chiave pubblica nel tuo database di chiavi GnuPG. La chiave viene utilizzata per firmare tag annotati che rappresentano le versioni.

gpg --import

Copia e incolla il tasto sotto, quindi digitare EOF (Ctrl-D) per terminare l'input ed elaborare i tasti.

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

Dopo aver importato le chiavi, puoi verificare qualsiasi tag con:

git tag -v TAG_NAME

Ottieni binari proprietari

AOSP non può essere utilizzato solo dal codice sorgente puro e richiede l'esecuzione di librerie proprietarie aggiuntive relative all'hardware, ad esempio per l'accelerazione grafica hardware. Vedere le sezioni seguenti per i link di download e file binari del dispositivo per ulteriori risorse.

Scarica binari proprietari

È possibile scaricare i binari ufficiali per i dispositivi supportati che eseguono rami di rilascio AOSP tag da driver di Google . Questi file binari aggiungono l'accesso a funzionalità hardware aggiuntive con codice sorgente non aperto. Per costruire il ramo maestro AOSP, utilizzare l' anteprima binari invece. Quando si costruisce il branch master per un dispositivo, utilizzare i binari per la versione più recente numerata o con la data più recente.

Estrai binari proprietari

Ogni set di binari viene fornito come uno script autoestraente in un archivio compresso. Decomprimi ogni archivio, esegui lo script autoestraente incluso dalla radice dell'albero dei sorgenti, quindi conferma di accettare i termini del contratto di licenza allegato. I binari e le loro corrispondenti makefile sono installati nella vendor/ gerarchia della struttura di origine.

Ripulire

Per garantire che i binari appena installati vengano presi in considerazione correttamente dopo essere stati estratti, eliminare l'output esistente di qualsiasi build precedente utilizzando:

make clobber