À propos du projet
AutoMorpheBuilder est un pipeline GitHub Actions qui construit des APK Android patchés à l'aide des patchs Morphe, de morphe-desktop et d'APKEditor. Les sorties sont signées, versionnées par application et formatées pour qu'Obtainium puisse suivre les mises à jour. Le fork pour un usage personnel est encouragé ; ajouter ou retirer une application ne nécessite que de modifier patch_repos dans config.json, sans changement de workflow.
Le README liste des applications testées, notamment YouTube, YouTube Music, Reddit, Sofascore, Twitch, NZB360, AIDA64, Mimo et Flightradar24, chacune associée à un nom de package et à un dépôt de patchs en amont. Un avertissement juridique et de sécurité indique que le projet télécharge et modifie des applications tierces depuis des sources telles qu'APKMirror et APKPure, que les utilisateurs sont responsables du respect de la licence de chaque application et de la législation locale, et qu'aucun APK protégé par le droit d'auteur n'est hébergé ou redistribué, car chaque APK est récupéré au moment du build depuis la source amont configurée. Les builds sont signés avec le keystore de l'utilisateur, et ces secrets sont traités comme des identifiants de production.
Quatre workflows sont documentés. morphe-build.yml s'exécute quotidiennement à 05:15 UTC et manuellement ; check-versions résout les derniers tags et ignore les applications dont la release existe déjà, un build matriciel par application télécharge l'APK, applique les patchs et le signe, et create-release publie une GitHub Release par application tout en élaguant les plus anciennes et en conservant deux par application. update-patches.yml actualise patches.json depuis les dépôts de patchs en amont, active par défaut les nouveaux patchs et préserve les bascules existantes. ci.yml exécute npm ci, eslint et jest sur les pull requests et les pushs vers main. codeql.yml effectue une analyse de sécurité statique pour JavaScript/TypeScript et Actions.
Les tags de release suivent le motif app-vbase-version-patches-version, par exemple youtube-v20.44.38-v1.24.0-dev.8.apk. Le README explique comment créer une entrée Obtainium par application pointant vers le dépôt avec un Release Tag Filter correspondant au nom de l'application, et fournit des liens Obtainium prêts à l'emploi pour les applications testées.
Les secrets requis incluent KEYSTORE_BASE64 et KEYSTORE_PASSWORD, obligatoires car les builds signés sont imposés ; KEY_ALIAS et KEY_PASSWORD sont facultatifs, et APKMIRROR_API_USER et APKMIRROR_API_PASS permettent éventuellement d'éviter le repli Playwright. Le téléchargement des APK utilise un repli multi-source : APK d'outils pré-téléchargés, un cache d'URL, les download_urls configurées, puis une résolution parallèle via apkeep pour APKPure, APKMirror-API lorsque des identifiants sont définis, et un scraper APKMirror avec un repli Chromium. Les packages fractionnés tels que XAPK, APKM et APKS sont enregistrés en .apk et détectés par leur contenu plutôt que par leur extension, le base.apk interne étant validé après la fusion.
La sélection des APK privilégie une architecture issue de config.json, par défaut arm64-v8a, applique les préférences DPI pour APKMirror, fusionne les packages fractionnés avec APKEditor ou se rabat sur l'extraction d'APK contenant des dex, et rejette les APK sans fichiers classes dex. La signature décode le keystore, le transmet au patch morphe-desktop avec les options password, entry password et entry alias, laisse morphe-desktop détecter PKCS12, JKS ou BKS et convertir en interne, signe l'APK patché sur place, et échoue immédiatement en cas d'erreur de signature sans repli non signé.
Le README documente les échecs courants avec leurs causes et correctifs, notamment les classes dex manquantes, les versions indéterminées, les mots de passe de keystore erronés, les bundles d'architecture mal étiquetés et Obtainium qui ne trouve pas les mises à jour. Une documentation complémentaire couvre les champs de configuration, l'architecture du pipeline et le graphe de jobs check-versions vers build vers create-release, un catalogue de dépannage, le processus de release et de rollback, les étapes de configuration pour forker et configurer les secrets, les conseils de contribution et une politique de divulgation de sécurité. Le projet est sous licence GPL-3.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.