Tipos de build do /e/OS

Tip: Para entender tudo sobre os vários tipos de build do /e/OS, consulte este guia

Requisitos para diferentes builds:

Builds personalizados

  • O código-fonte foi modificado e, se a ROM for redistribuída, temos vários requisitos:
  • Qualquer referência ao /e/OS, incluindo “/e/OS”, e nosso logotipo devem ser removidos da compilação.
  • A redistribuição não deve levar as pessoas a pensar que se trata do /e/OS.
  • O nome da ROM deve ser alterado e, possivelmente, indicar que foi bifurcado do /e/OS.
  • As chamadas para a nossa infraestrutura de servidor OTA devem ser removidas.
  • As ROMs personalizadas podem ser criadas nos servidores /e/OS apenas por motivos excepcionais (desenvolvimento especial…).

Builds não oficiais do /e/OS

  • O código-fonte só pode ser modificado para garantir compatibilidade total com o dispositivo de destino.
  • Os recursos do /e/OS, a lista de aplicativos instalados etc. não devem ser alterados
  • Builds não oficiais podem ser publicados no site do /e/OS em uma seção específica, acompanhados de avisos e de uma lista do que funciona e do que não funciona
  • Não há builds noturnos nem atualizações OTA.

Builds da comunidade (community)

  • O nível de qualidade é considerado alto; as atualizações de segurança são aplicadas sempre que possível,
  • Pode haver ou não um mantenedor da ROM
  • As compilações da comunidade incluem builds noturnos e podem ser atualizados via OTA
  • O código-fonte deve estar hospedado em nossa instância do GitLab ou em fontes confiáveis (grupo do LineageOS no GitHub, AOSP).

Builds oficiais do /e/OS

  • O nível de qualidade deve atender aos nossos requisitos.
  • Deve ter um mantenedor oficial.
  • Os builds oficiais incluem builds noturnos e podem ser atualizados via OTA.
  • O código-fonte deve estar hospedado em nossa instância do GitLab ou em fontes confiáveis (grupo do LineageOS no GitHub, AOSP).

Alguma dúvida sobre isso? Entre em contato conosco

Como criar a ROM?

AVISO: Este processo só funciona em sistemas de arquivos que distinguem maiúsculas de minúsculas!

  • Windows: não vai funcionar
  • macOS: também não funciona com o sistema de arquivos HPS+ - o ADFS ainda não foi testado
  • Linux: funciona no Ubuntu e no CentOS

Requisitos do sistema: Seu computador deve ser de 64 bits e rodar um sistema operacional de 64 bits, com pelo menos 400 GB de espaço livre no disco rígido e 16 GB de RAM.

1. Instale o Docker

Se ainda não o fez, instale o Docker

2. Obtenha nossa imagem Docker

Tip: Por favor, execute esta etapa antes de cada compilação, para garantir que você obtenha a imagem Docker mais recente.
$ sudo docker pull registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community

3. Encontre o seu código do dispositivo

O código do dispositivo pode ser encontrado na lista de dispositivos do /e/OS ou executando o seguinte comando no adb:

$ adb shell getprop ro.product.device

4. Crie diretórios

$ sudo mkdir -p \
/srv/e/src \
/srv/e/zips \
/srv/e/logs \
/srv/e/ccache \

5. Extraia blobs proprietários

Alguns fabricantes de dispositivos, como a Xiaomi, bloquearam o acesso aos seus arquivos de fabricante, uma vez que alguns deles podem ser de propriedade exclusiva.

Para contornar isso, você terá que extrair manualmente os arquivos do fornecedor do seu dispositivo.

Tip: Esta etapa requer que você tenha um dispositivo já executando a versão mais recente do /e/OS, com base no branch para o qual deseja compilar. Se você não tiver acesso a um dispositivo desse tipo, consulte Extrair blobs proprietários de um arquivo ZIP instalável.

Agora, certifique-se de que seu dispositivo

  • esteja conectado ao computador por meio do cabo USB
  • tenha o ADB e o acesso root habilitados
  • e que você está na pasta /srv/e/src/<versão>/device/<nome-do-fabricante>/<meu-dispositivo>
  • agora execute o script ./extract-files.sh

Os arquivos devem ser movidos para a pasta /srv/e/src/<versão>/vendor/<nome-do-fornecedor>/<meu-dispositivo>.

Depois de baixar os blobs do fornecedor, você pode (re)executar a compilação.

6. Iniciar compilação

Execute o seguinte comando. Não se esqueça de substituir <my-device> pelo código do seu dispositivo!

$ sudo docker run \
-v "/srv/e/src:/srv/src" \
-v "/srv/e/zips:/srv/zips" \
-v "/srv/e/logs:/srv/logs" \
-v "/srv/e/ccache:/srv/ccache" \
-e "BRANCH_NAME=<tag>" \
-e "DEVICE_LIST=<meu-dispositivo>" \
-e "REPO=https://gitlab.e.foundation/e/os/releases.git" \
registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community

A lista de tags a serem usadas para BRANCH_NAME está disponível em https://gitlab.e.foundation/e/os/releases/-/tags.

Tip: Agora usamos tags do Git, além de um manifesto específico para cada versão. Isso nos permite saber exatamente o que está incluído em cada build.

Se você quiser criar uma versão de teste, pode usar:

  • BRANCH_NAME definido como v1-nougat, v1-oreo, v1-pie, v1-q, v1-r, v1-s, v1-t
  • REPO=https://gitlab.e.foundation/e/os/android.git

Para entender o que esses parâmetros significam, consulte o documento fornecido aqui

Exemplo para o Google Pixel 5

$ sudo docker run \
-v "/srv/e/src:/srv/src" \
-v "/srv/e/zips:/srv/zips" \
-v "/srv/e/logs:/srv/logs" \
-v "/srv/e/ccache:/srv/ccache" \
-e "BRANCH_NAME=v1-t" \
-e "DEVICE_LIST=redfin" \
-e "REPO=https://gitlab.e.foundation/e/os/releases.git" \
registry.gitlab.e.foundation:5000/e/os/docker-lineage-cicd:community

7. Opções de build

Agora você pode personalizar os aplicativos instalados por padrão no /e/OS.

  • Se você quiser adicionar aplicativos extras aos aplicativos padrão: coloque seu APK no diretório android_prebuilts_prebuiltapks/ e defina a variável de ambiente CUSTOM_APPS adequadamente na imagem Docker, antes da compilação.
  • Se você quiser manter uma compilação mínima do /e/OS, defina a variável de ambiente MINIMAL_APPS como true (o padrão é false). Por enquanto, isso remove o visualizador do LibreOffice, o PDFViewer, o Maps e o Weather.

8. Obtenha sua imagem!

Quando a compilação estiver concluída, você encontrará as imagens na pasta /srv/e/zips/<meu-dispositivo>. Para instalar, consulte nossa documentação.

Precisa de mais ajuda?

Se precisar de ajuda, consulte outros criadores de ROMs que estão ativos no nosso fórum e desenvolvem ROMs não oficiais do /e/OS. Uma pesquisa na Internet por guias sobre a criação de ROMs para Android também deve revelar sites que podem ser úteis.

Para obter mais informações sobre nossa imagem Docker e suas variáveis de ambiente, clique aqui.

Para relatar um problema sobre uma compilação, consulte este guia