Baixe a fonte do Android

A fonte do Android está localizada em uma coleção de repositórios Git hospedados pelo Google. O repositório Git inclui todo o histórico da fonte do Android, incluindo alterações na fonte e quando as alterações foram feitas. Esta página descreve como baixar a fonte.

Inicialize o cliente Repo

Configure seu cliente para acessar o repositório de origem do Android:

  1. Crie e navegue até um diretório de trabalho:

    $ mkdir WORKING_DIRECTORY
    $ cd WORKING_DIRECTORY
    
  2. Inicialize seu diretório de trabalho para controle de origem:

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

    A opção -b é usada para identificar o branch que você está inicializando. Se -b não for fornecido, o padrão repo init é o branch principal. Para obter uma lista de ramificações e nomes de tags, consulte Tags e compilações de código-fonte .

    A opção -u é obrigatória e usada para especificar um arquivo de manifesto , que é um arquivo XML que especifica onde os vários projetos Git na origem do Android são colocados em seu diretório de trabalho. Neste exemplo, o nome do arquivo de manifesto não é especificado, portanto o comando usa o arquivo de manifesto padrão ( default.xml ).

    A saída deve conter a mensagem:

    $ repo has been initialized in path_to_working_directory
    

Para obter informações sobre o formato do arquivo de manifesto, consulte repo Manifest Format .

Para obter uma lista de todos os comandos do Repo, consulte a referência de comandos do Repo .

Baixe a fonte do Android

Execute o seguinte comando para baixar a árvore de origem do Android em seu diretório de trabalho:

$ repo sync -c -j8

O argumento -c instrui o Repo a buscar a ramificação do manifesto atual do servidor. O comando -j8 divide a sincronização entre threads para uma conclusão mais rápida.

Esta operação deve demorar um pouco mais de uma hora.

Se você tiver algum problema durante o download, consulte Solucionar e corrigir problemas de sincronização .

Baixe binários proprietários

O AOSP pode ser executado diretamente em emuladores Cuttlefish, mas o AOSP não pode ser usado em hardware sem bibliotecas proprietárias adicionais específicas do dispositivo. Veja como obter esses binários de dispositivos:

  • Se você estiver baixando o branch main e construindo para um dispositivo Nexus ou Pixel, baixe os binários mais recentes no site de visualização de binários .
  • Se você estiver baixando e compilando a ramificação main e compilando para seu próprio dispositivo, deverá fornecer os binários específicos do dispositivo.
  • Se você estiver baixando e criando uma ramificação marcada, não principal, e construindo para um dispositivo Nexus ou Pixel, baixe o binário específico do dispositivo em Binários para dispositivos Nexus e Pixel .

Extraia binários proprietários

Cada conjunto de binários vem como um script autoextraível em um arquivo compactado. Para extrair e colocar esses binários no local correto da sua árvore de origem:

  1. Extraia o arquivo.
  2. Execute o script de shell de extração automática incluído na raiz da árvore de origem do AOSP.
  3. Concorde com os termos do contrato de licença anexo. Os binários e seus makefiles correspondentes são instalados na hierarquia vendor/ da árvore de origem.

(opcional) Verifique a legitimidade do código

Se você estiver preocupado com a legitimidade do código-fonte, por exemplo, se ele veio do Google, poderá verificar as tags git da ramificação. Para verificar tags Git:

  1. Copie e cole o seguinte bloco de chave em um arquivo de texto, como 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. Execute o seguinte comando para inserir uma chave pública em seu banco de dados de chaves GnuPG. A chave é usada para assinar tags anotadas que representam lançamentos.

    $ gpg --import keyfile.asc
    
  3. Após importar as chaves, você pode verificar qualquer tag executando este comando:

    $ git tag -v TAG_NAME