Sobre o projeto

AutoMorpheBuilder é um pipeline do GitHub Actions que compila APKs Android com patches usando patches Morphe, morphe-desktop e APKEditor. As saídas são assinadas, versionadas por app e formatadas para que o Obtainium possa rastrear atualizações. O fork para uso pessoal é incentivado; adicionar ou remover um app exige apenas editar patch_repos em config.json, sem alterações no workflow. O README lista apps testados, incluindo YouTube, YouTube Music, Reddit, Sofascore, Twitch, NZB360, AIDA64, Mimo e Flightradar24, cada um mapeado para um nome de pacote e um repositório de patches upstream. Um aviso legal e de segurança afirma que o projeto baixa e modifica aplicativos de terceiros de fontes como APKMirror e APKPure, que os usuários são responsáveis por cumprir a licença de cada app e a lei local, e que nenhum APK protegido por direitos autorais é hospedado ou redistribuído porque todo APK é obtido no momento da compilação a partir da fonte upstream configurada. As compilações são assinadas com o keystore do próprio usuário, e esses segredos são tratados como credenciais de produção. Quatro workflows são documentados. morphe-build.yml é executado diariamente às 05:15 UTC e manualmente; check-versions resolve as tags mais recentes e ignora apps cuja release já existe, uma compilação em matriz por app baixa o APK, aplica patches e o assina, e create-release publica uma GitHub Release por app enquanto remove as mais antigas e mantém duas por app. update-patches.yml atualiza patches.json a partir dos repositórios de patches upstream, define novos patches como habilitados por padrão e preserva os toggles existentes. ci.yml executa npm ci, eslint e jest em pull requests e pushes para main. codeql.yml realiza análise estática de segurança para JavaScript/TypeScript e Actions. As tags de release seguem o padrão app-vbase-version-patches-version, por exemplo youtube-v20.44.38-v1.24.0-dev.8.apk. O README explica como criar uma entrada do Obtainium por app apontando para o repositório com um Release Tag Filter correspondente ao nome do app, e fornece links prontos do Obtainium para os apps testados. Os segredos obrigatórios incluem KEYSTORE_BASE64 e KEYSTORE_PASSWORD, que são obrigatórios porque compilações assinadas são exigidas; KEY_ALIAS e KEY_PASSWORD são opcionais, e APKMIRROR_API_USER e APKMIRROR_API_PASS opcionalmente ignoram o fallback do Playwright. O download de APK usa um fallback multi-fonte: APKs de ferramentas pré-baixados, um cache de URL, download_urls configurados, depois resolução paralela via apkeep para APKPure, APKMirror-API quando credenciais estão definidas, e um scraper do APKMirror com fallback do Chromium. Pacotes divididos como XAPK, APKM e APKS são salvos como .apk e detectados por conteúdo em vez de extensão, com o base.apk interno validado após a mesclagem. A seleção de APK prefere uma arquitetura de config.json, usa arm64-v8a por padrão, aplica preferências de DPI para APKMirror, mescla pacotes divididos com APKEditor ou recorre à extração de APK com dex, e rejeita APKs sem arquivos classes dex. A assinatura decodifica o keystore, passa-o para o patch do morphe-desktop com opções de senha, senha de entrada e alias de entrada, deixa o morphe-desktop detectar PKCS12, JKS ou BKS e converter internamente, assina o APK com patch no local e falha imediatamente em qualquer erro de assinatura sem fallback não assinado. O README documenta falhas comuns com causas e correções, incluindo classes dex ausentes, versões indeterminadas, senhas de keystore incorretas, pacotes de arquitetura rotulados incorretamente e Obtainium não encontrando atualizações. Documentação adicional cobre campos de configuração, arquitetura do pipeline e o grafo de jobs de check-versions para build para create-release, um catálogo de solução de problemas, o processo de release e rollback, etapas de configuração para fork e configuração de segredos, orientações de contribuição e uma política de divulgação de segurança. O projeto é licenciado sob GPL-3.0.