Como fazer o download da origem

A árvore de origem do Android está localizada em um repositório Git hospedado pelo Google. O repositório Git contém metadados da origem do Android, incluindo as alterações da origem e a data em que elas foram feitas. Esta página descreve como fazer o download da árvore de origem para uma linha de código Android específica.

Para começar com uma imagem de fábrica para um dispositivo específico, em vez de fazer o download da origem, consulte Como selecionar um build do dispositivo.

Como instalar o Repo

O Repo é uma ferramenta que facilita o trabalho com o Git no contexto do Android. Para mais informações sobre o Repo, consulte a Referência do comando do Repo e o README do repo (link em inglês).

O Repo vem em duas partes: uma é um script de tela de início que você instala e que se comunica com a segunda parte, a ferramenta Repo completa incluída em uma verificação de código-fonte. Para instalar o Repo:

  1. Verifique se você tem um diretório bin/ no seu diretório inicial e se ele está incluído no seu caminho:

        mkdir ~/bin
        PATH=~/bin:$PATH
        
  2. Faça o download do Repo Launcher e verifique se ele é executável:

        curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
        chmod a+x ~/bin/repo
        
  3. Se quiser, verifique se a tela de início corresponde às nossas assinaturas:

        gpg --recv-key 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
        curl https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ~/bin/repo
        

Repositório mais antigo para sistemas Python 2 legados

Se você está usando um sistema mais antigo sem o Python 3.6 ou versões mais recentes, tente fazer o download de uma versão anterior do Repo Launcher que ainda seja compatível com o Python 2.7. Isso não funcionará indefinidamente, mas pode ajudar até que você faça upgrade do sistema.

    curl https://storage.googleapis.com/git-repo-downloads/repo-1 > ~/bin/repo
    chmod a+x ~/bin/repo
    

Como inicializar um cliente do Repo

Depois de instalar o Repo Launcher, configure seu cliente para acessar o repositório de origem do Android:

  1. Crie um diretório vazio para guardar seus arquivos de trabalho. Se você utiliza o macOS, esse precisa ser um sistema de arquivos com distinção entre maiúsculas e minúsculas. Nomeie o diretório como quiser:

        mkdir WORKING_DIRECTORY
        cd WORKING_DIRECTORY
        
  2. Configure o Git com seu nome e endereço de e-mail reais. Para usar a ferramenta de avaliação de código Gerrit, é necessário um endereço de e-mail conectado a uma Conta do Google registrada. Esse precisa ser um endereço ativo onde você possa receber mensagens. O nome que você fornecer aqui aparecerá em atribuições para os envios de código.

        git config --global user.name "Your Name"
        git config --global user.email "you@example.com"
        
  3. Execute repo init para conseguir a versão mais recente do Repo com as últimas correções de bugs. É preciso designar um URL para o manifesto, que especifica onde os vários repositórios incluídos na origem do Android são colocados no seu diretório de trabalho.

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

    Para verificar um branch diferente do master, especifique-o com -b. Para ver uma lista de branches, consulte Builds e tags de código-fonte.

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

Uma inicialização bem-sucedida termina com uma mensagem informando que o Repo foi inicializado no seu diretório de trabalho. Seu diretório de cliente passa a conter um diretório .repo, em que arquivos como o manifesto são mantidos.

Como fazer o download da árvore de origem do Android

Para fazer o download da árvore de origem do Android nos repositórios para o diretório de trabalho, conforme especificado no manifesto padrão, execute:

repo sync

Os arquivos de origem do Android se encontram no seu diretório de trabalho sob os nomes dos projetos. Para acelerar as sincronizações, use a sinalização -jthreadcount. Considere também adicionar -qc para realizar apenas sincronizações de branch atual silenciosas. Consulte a Referência do comando do Repo para ver mais detalhes.

Como usar a autenticação

Por padrão, o acesso ao código-fonte do Android é anônimo. Para proteger os servidores do uso excessivo, cada endereço IP é associado a uma cota.

Ao compartilhar um endereço IP com outros usuários (por exemplo, ao acessar os repositórios de origem por meio de um firewall NAT), as cotas podem ser acionadas até mesmo para padrões de uso regulares (por exemplo, se muitos usuários sincronizarem novos clientes no mesmo endereço IP em um curto período).

Nesse caso, é possível usar o acesso autenticado, que utiliza uma cota separada para cada usuário, independentemente do endereço IP.

A primeira etapa é criar uma senha com o gerador de senhas e seguir as instruções na página do gerador.

A segunda etapa é forçar o acesso autenticado usando o URI do manifesto https://android.googlesource.com/a/platform/manifest. Observe como o prefixo de diretório do /a/ aciona a autenticação obrigatória. Você pode converter um cliente existente para usar a autenticação obrigatória com o seguinte comando:

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

Como solucionar problemas de rede

Ao fazer o download por um proxy (o que é comum em alguns ambientes corporativos), pode ser necessário especificar explicitamente o proxy que será usado pelo 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>
    

Mais raramente, os clientes Linux enfrentam problemas de conectividade, ficando travados no meio de downloads (normalmente durante o recebimento de objetos). Ajustar as configurações da pilha TCP/IP e usar comandos não paralelos pode melhorar a situação. É preciso acessar a raiz para modificar a configuração do TCP:

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

Como usar um espelho local

Ao usar vários clientes, especialmente em situações em que a largura de banda é escassa, recomendamos que você crie um espelho local de todo o conteúdo do servidor e sincronize os clientes desse espelho (o que não requer acesso à rede). O download de um espelho completo é menor que o de dois clientes e contém mais informações.

Essas instruções presumem que o espelho é criado em /usr/local/aosp/mirror. Primeiro, crie e sincronize o espelho em si. Observe a sinalização --mirror, que só pode ser especificada ao criar um novo 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 o espelho estiver sincronizado, você poderá criar novos clientes com base nele. Observe que é importante especificar um caminho absoluto:

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

Por fim, para sincronizar um cliente com o servidor, sincronize o espelho com o servidor e, em seguida, o cliente com o espelho:

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

É possível armazenar o espelho em um servidor LAN e acessá-lo via NFS, SSH ou Git. Também é possível armazená-lo em uma unidade removível e passar essa unidade para os usuários ou as máquinas.

Como verificar as tags do Git

Carregue a seguinte chave pública para seu banco de dados de chaves do GnuPG. A chave é usada para assinar tags anotadas que representam versões.

    gpg --import
    

Copie e cole a chave abaixo e, em seguida, insira EOF (Ctrl-D) para finalizar a entrada e processar as chaves.

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

Depois de importar as chaves, você pode verificar qualquer tag com:

    git tag -v TAG_NAME
    

Adquirir binários reservados

O AOSP não pode ser usado apenas com base no código-fonte puro e requer que outras bibliotecas reservadas relacionadas a hardware sejam executadas, como para aceleração de gráficos de hardware. Consulte as seções abaixo para ver os links de download e Binários de dispositivos para ver outros recursos.

Fazer o download de binários reservados

Você pode fazer o download de binários oficiais para os dispositivos compatíveis que executam branches de versões AOSP marcadas dos drivers do Google. Esses binários acrescentam acesso a outras funcionalidades de hardware com código-fonte não aberto. Para criar o branch principal do AOSP, use a Visualização de binários. Ao criar o branch principal de um dispositivo, use os binários para a versão numerada mais recente ou com a data mais atual.

Extrair binários reservados

Cada conjunto de binários é fornecido como um script de autoextração em um arquivo compactado. Descompacte cada arquivo, execute o script de autoextração incluído na raiz da árvore de origem e confirme que você concorda com os termos do contrato de licença. Os binários e os makefiles correspondentes serão instalados na hierarquia vendor/ da árvore de origem.

Limpeza

Para garantir que os binários recém-instalados sejam devidamente considerados após serem extraídos, exclua a saída existente de qualquer build anterior usando:

    make clobber