How to Build the /e/OS ROM?
Tipos de build do /e/OS
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
$ 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.
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.
Se você quiser criar uma versão de teste, pode usar:
BRANCH_NAMEdefinido como v1-nougat, v1-oreo, v1-pie, v1-q, v1-r, v1-s, v1-tREPO=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 ambienteCUSTOM_APPSadequadamente 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_APPScomo 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