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:
Crie e navegue até um diretório de trabalho:
$ mkdir WORKING_DIRECTORY $ cd WORKING_DIRECTORY
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ãorepo 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:
- Extraia o arquivo.
- Execute o script de shell de extração automática incluído na raiz da árvore de origem do AOSP.
- 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:
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-----
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
Após importar as chaves, você pode verificar qualquer tag executando este comando:
$ git tag -v TAG_NAME