Scarica il sorgente Android

Il sorgente Android si trova in una raccolta di repository Git ospitati da Google. Il repository Git include l'intera cronologia dell'origine Android, comprese le modifiche all'origine e il momento in cui sono state apportate le modifiche. Questa pagina descrive come scaricare il sorgente.

Inizializza il client Repo

Configura il tuo client per accedere al repository dei sorgenti Android:

  1. Crea e vai a una directory di lavoro:

    $ mkdir WORKING_DIRECTORY
    $ cd WORKING_DIRECTORY
    
  2. Inizializza la tua directory di lavoro per il controllo del codice sorgente:

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

    L'opzione -b viene utilizzata per identificare il ramo che stai inizializzando. Se -b non viene fornito, repo init utilizza per impostazione predefinita il ramo principale. Per un elenco di rami e nomi di tag, consulta Tag e build del codice sorgente .

    L'opzione -u è obbligatoria e viene utilizzata per specificare un file manifest , ovvero un file XML che specifica dove vengono posizionati i vari progetti Git nell'origine Android all'interno della directory di lavoro. In questo esempio, il nome del file manifest non è specificato, quindi il comando utilizza il file manifest predefinito ( default.xml ).

    L'output dovrebbe contenere il messaggio:

    $ repo has been initialized in path_to_working_directory
    

Per informazioni sul formato del file manifest, consulta Formato manifest del repository .

Per un elenco di tutti i comandi Repo, vedere il riferimento ai comandi Repo .

Scarica il sorgente Android

Esegui il comando seguente per scaricare l'albero dei sorgenti Android nella tua directory di lavoro:

$ repo sync -c -j8

L'argomento -c indica a Repo di recuperare il ramo manifest corrente dal server. Il comando -j8 suddivide la sincronizzazione tra i thread per un completamento più rapido.

Questa operazione dovrebbe durare poco più di un'ora.

Se riscontri problemi durante la repo sync , fai riferimento a Risoluzione dei problemi e correzione dei problemi di sincronizzazione .

Scarica i binari proprietari

AOSP può essere eseguito direttamente sugli emulatori Cuttlefish, ma AOSP non può essere utilizzato su hardware senza librerie proprietarie aggiuntive specifiche del dispositivo. Ecco come ottenere i file binari del dispositivo:

  • Se stai scaricando il ramo main e creandolo per un dispositivo Nexus o Pixel, scarica i file binari più recenti dal sito di anteprima di Binaries .
  • Se stai scaricando e compilando il ramo main e creando per il tuo dispositivo, devi fornire i file binari specifici del dispositivo.
  • Se stai scaricando e creando un ramo e un edificio con tag, non principale, per un dispositivo Nexus o Pixel, scarica il file binario specifico del dispositivo da Binari per dispositivi Nexus e Pixel .

Estrai file binari proprietari

Ogni set di file binari si presenta come uno script autoestraente in un archivio compresso. Per estrarre e posizionare questi file binari nella posizione corretta del tuo albero dei sorgenti:

  1. Estrai l'archivio.
  2. Esegui lo script di shell autoestraente incluso dalla radice dell'albero dei sorgenti AOSP.
  3. Accettare i termini del contratto di licenza allegato. I file binari e i relativi makefile corrispondenti vengono installati nella gerarchia vendor/ dell'albero dei sorgenti.

(facoltativo) Verificare la legittimità del codice

Se sei preoccupato della legittimità del codice sorgente, ad esempio se proviene da Google, puoi verificare i tag git per il ramo. Per verificare i tag Git:

  1. Copia e incolla il seguente blocco di chiavi in ​​un file di testo, ad esempio keyfile.asc .

    -----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-----
    
  2. Esegui il comando seguente per inserire una chiave pubblica nel tuo database delle chiavi GnuPG. La chiave viene utilizzata per firmare tag annotati che rappresentano le versioni.

    $ gpg --import keyfile.asc
    
  3. Dopo aver importato le chiavi, puoi verificare qualsiasi tag eseguendo questo comando:

    $ git tag -v TAG_NAME