Google is committed to advancing racial equity for Black communities. See how.
Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Download dell'origine

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

Per iniziare con un'immagine di fabbrica per un dispositivo specifico invece di scaricare l'origine, vedere Selezione di una build del dispositivo .

Inizializzazione di un client Repo

Dopo aver installato Repo Launcher , configura il tuo client per accedere al repository di origine Android:

  1. Crea una directory vuota per contenere i tuoi file di lavoro. Se stai usando macOS, questo deve essere su un filesystem che fa distinzione tra maiuscole e minuscole. Dagli un nome che ti piace:

    mkdir WORKING_DIRECTORY
    cd WORKING_DIRECTORY
    
  2. Configura Git con il tuo vero nome e indirizzo email. Per utilizzare lo strumento di revisione del codice Gerrit, è necessario un indirizzo e-mail collegato a 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 l'invio 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 correzioni di bug più recenti. È necessario specificare un URL per il manifest, che specifica dove si trovano i vari repository inclusi nell'origine Android all'interno della directory di lavoro.

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

    Nota: se l' repo init non riesce su macOS a causa di un errore del certificato, potrebbe essere necessario eseguire prima:

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

    Per estrarre un ramo diverso dal master , specificarlo con -b . Per un elenco di rami, vedere build e tag del codice sorgente .

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

Se si utilizza la versione 2.19 di Git o successiva, è possibile specificare --partial-clone durante l'esecuzione di repo init che utilizzerà la capacità di clonazione parziale di Git, che scarica solo oggetti Git quando necessario invece di scaricare tutto. Poiché l'utilizzo di cloni parziali significa che molte operazioni devono comunicare con il server, questo è consigliato agli sviluppatori che utilizzano una rete a bassa latenza:

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

Un'inizializzazione corretta termina con un messaggio che indica che Repo è inizializzato nella directory di lavoro. La directory del client dovrebbe ora contenere una directory .repo cui vengono conservati file come il manifest.

Download dell'albero dei sorgenti di Android

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

repo sync

I file sorgente di Android si trovano nella directory di lavoro sotto i loro nomi di progetto. Per velocizzare le sincronizzazioni, usa il flag -j threadcount . Considera anche l'aggiunta di -qc per eseguire solo sincronizzazioni di branch correnti silenziose. Per ulteriori dettagli, vedere il riferimento ai comandi Repo .

Utilizzo dell'autenticazione

Per impostazione predefinita, l'accesso al codice sorgente di Android è anonimo. Per proteggere i server da un 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 da oltre un firewall NAT), le quote possono attivarsi anche per schemi di utilizzo regolari (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 quindi utilizza una quota separata per ogni utente, indipendentemente dall'indirizzo IP.

Il primo passo è creare una password con il generatore di password e seguire le istruzioni sulla pagina del generatore di password.

Il secondo passaggio consiste nel forzare l'accesso autenticato utilizzando l'URI manifest https://android.googlesource.com/a/platform/manifest . Si noti come il prefisso di directory /a/ attiva l'autenticazione obbligatoria. È possibile 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 (che è comune in alcuni ambienti aziendali), potrebbe essere necessario specificare esplicitamente il proxy che viene quindi utilizzato da 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, i client Linux riscontrano problemi di connettività, rimanendo bloccati durante i download (in genere durante la ricezione di oggetti ). È stato riferito che modificare le impostazioni dello stack TCP / IP e utilizzare comandi non paralleli può migliorare la situazione. È necessario l'accesso root per modificare l'impostazione TCP:

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

Utilizzando 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 accesso alla rete). Il download per un mirror completo è inferiore al download di due client, pur contenendo più informazioni.

Queste istruzioni presumono che il mirror venga creato in /usr/local/aosp/mirror . Innanzitutto, crea e sincronizza il mirror stesso. Nota il flag --mirror , che puoi specificare solo quando crei un nuovo client:

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 è importante 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, sincronizza 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 memorizzare il mirror su un server LAN e accedervi tramite NFS, SSH o Git. È anche possibile archiviarlo su un'unità rimovibile e trasferirlo 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 la chiave di seguito, quindi digita EOF ( Ctrl-D ) per terminare l'inserimento ed elaborare le chiavi.

-----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 dell'hardware. Vedere le sezioni seguenti per i collegamenti per il download e i file binari del dispositivo per risorse aggiuntive.

Scarica i binari proprietari

Puoi scaricare i file binari ufficiali per i dispositivi supportati che eseguono rami di rilascio AOSP contrassegnati dai driver di Google . Questi binari aggiungono l'accesso a funzionalità hardware aggiuntive con codice non open source. Per creare il ramo master AOSP, usa invece l' anteprima dei binari . Quando si crea il ramo master per un dispositivo, utilizzare i file binari per la versione numerata più recente o con la data più recente.

Estrai binari proprietari

Ogni set di file binari si presenta come uno script autoestraente in un archivio compresso. Decomprimere ogni archivio, eseguire lo script autoestraente incluso dalla radice dell'albero dei sorgenti, quindi confermare di accettare i termini del contratto di licenza allegato. I binari e i makefile corrispondenti verranno installati nel vendor/ gerarchia dell'albero dei sorgenti.

Pulire

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

make clobber