Configurar para desenvolvimento AOSP (9.0 ou posterior)

Antes de baixar e construir a ramificação main da fonte Android, certifique-se de que seu hardware atenda aos requisitos necessários e que o software necessário esteja instalado corretamente. Você também deve estar familiarizado com os seguintes termos:

Git
Git é um sistema de controle de versão distribuído gratuito e de código aberto. O Android usa Git para operações locais, como ramificações, confirmações, diferenças e edições. Para obter ajuda para aprender o Git, consulte a documentação do Git .
Repositório
Repo é um wrapper Python em torno do Git que simplifica a execução de operações complexas em vários repositórios Git. O Repo não substitui o Git para todas as operações de controle de versão, apenas facilita a realização de operações complexas do Git. O Repo usa arquivos de manifesto para agregar projetos Git ao superprojeto Android.
Arquivo de manifesto
Um arquivo de manifesto é um arquivo XML que especifica onde os vários projetos Git na fonte Android são colocados em uma árvore de origem AOSP.

Atenda aos requisitos de hardware

Sua estação de trabalho de desenvolvimento deve atender ou exceder estes requisitos de hardware:

  • Um sistema de 64 bits.

  • Pelo menos 400 GB de espaço livre em disco para fazer check-out e compilar o código (250 GB para fazer check-out + 150 GB para compilar).

  • Um mínimo de 64 GB de RAM. O Google usa máquinas de 72 núcleos com 64 GB de RAM para construir o Android. Com essa configuração de hardware, leva aproximadamente 40 minutos para uma compilação completa do Android e apenas alguns minutos para uma compilação incremental do Android. Por outro lado, leva aproximadamente 6 horas para uma construção completa com uma máquina de 6 núcleos com 64 GB de RAM.

Atenda aos requisitos do sistema operacional

Sua estação de trabalho de desenvolvimento deve executar qualquer distribuição Linux de 64 bits com GNU C Library (glibc) 2.17 ou posterior.

Instale os pacotes necessários

Para construir o Android 11 ou superior, você deve usar o Ubuntu 18.04 ou posterior. Para instalar os pacotes necessários para Ubuntu 18.04 ou posterior, execute o seguinte comando:

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

Dentre os pacotes instalados, este comando instala o Git, que é utilizado para baixar o código-fonte AOSP.

Instale o software necessário

Antes de poder trabalhar com AOSP, você deve ter instalações de OpenJDK, Make, Python 3 e Repo. O ramo principal AOSP do Android vem com versões pré-construídas de OpenJDK, Make e Python 3, portanto, etapas de instalação adicionais não são necessárias. A seção a seguir explica como instalar o Repo.

Instalar repositório

Siga estas etapas para instalar o Repo:

  1. Baixe as informações atuais do pacote:

    sudo apt-get update
    
  2. Execute o seguinte comando para instalar o inicializador do Repo:

    sudo apt-get install repo
    

    O inicializador do Repo fornece um script Python que inicializa um checkout e baixa a ferramenta Repo completa.

    Se for bem-sucedido, pule para a etapa 4.

  3. (opcional) Instale manualmente o Repo usando a seguinte série de comandos:

    export REPO=$(mktemp /tmp/repo.XXXXXXXXX)
    curl -o ${REPO} https://storage.googleapis.com/git-repo-downloads/repo
    gpg --recv-keys 8BB9AD793E8E6153AF0F9A4416530D5E920F5C65
    curl -s https://storage.googleapis.com/git-repo-downloads/repo.asc | gpg --verify - ${REPO} && install -m 755 ${REPO} ~/bin/repo
    

    Os três primeiros comandos configuram um arquivo temporário, baixam o Repo para o arquivo e verificam se a chave fornecida corresponde à chave necessária. Se esses comandos forem bem-sucedidos, o comando final instala o inicializador do Repo.

  4. Verifique a versão do iniciador do Repo:

    repo version
    

    A saída deve indicar uma versão 2.5 ou superior, por exemplo:

    repo launcher version 2.40

Defina um diretório de saída alternativo

Por padrão, a saída de cada construção é armazenada no subdiretório out/ da árvore de origem correspondente. Você pode substituir esse diretório exportando a variável de ambiente OUT_DIR . Por exemplo, se quiser armazenar sua saída em uma unidade diferente, você pode apontar OUT_DIR para essa unidade:

export OUT_DIR=my_other_drive

Qual é o próximo?