Об этом проекте
AutoMorpheBuilder — это конвейер GitHub Actions, который собирает пропатченные Android APK с использованием патчей Morphe, morphe-desktop и APKEditor. Результаты подписываются, версионируются отдельно для каждого приложения и форматируются так, чтобы Obtainium мог отслеживать обновления. Форк для личного использования приветствуется; добавление или удаление приложения требует лишь редактирования patch_repos в config.json, без изменений workflow.
В README перечислены протестированные приложения, включая YouTube, YouTube Music, Reddit, Sofascore, Twitch, NZB360, AIDA64, Mimo и Flightradar24, каждое сопоставлено с именем пакета и вышестоящим репозиторием патчей. В юридическом уведомлении и уведомлении о безопасности указано, что проект загружает и модифицирует сторонние приложения из таких источников, как APKMirror и APKPure, что пользователи несут ответственность за соблюдение лицензии каждого приложения и местного законодательства, и что ни один защищённый авторским правом APK не размещается и не распространяется, поскольку каждый APK загружается во время сборки из настроенного вышестоящего источника. Сборки подписываются собственным keystore пользователя, и эти секреты рассматриваются как производственные учётные данные.
Документированы четыре workflow. morphe-build.yml запускается ежедневно в 05:15 UTC и вручную; check-versions определяет последние теги и пропускает приложения, релиз которых уже существует, матричная сборка по каждому приложению загружает APK, применяет патчи и подписывает его, а create-release публикует один GitHub Release на приложение, удаляя самые старые и сохраняя по два на приложение. update-patches.yml обновляет patches.json из вышестоящих репозиториев патчей, по умолчанию включает новые патчи и сохраняет существующие переключатели. ci.yml запускает npm ci, eslint и jest при pull request и push в main. codeql.yml выполняет статический анализ безопасности для JavaScript/TypeScript и Actions.
Теги релизов следуют шаблону app-vbase-version-patches-version, например youtube-v20.44.38-v1.24.0-dev.8.apk. В README объясняется создание одной записи Obtainium на приложение против репозитория с фильтром Release Tag Filter, соответствующим имени приложения, и приводятся готовые ссылки Obtainium для протестированных приложений.
Обязательные секреты включают KEYSTORE_BASE64 и KEYSTORE_PASSWORD, которые обязательны, поскольку подписанные сборки принудительны; KEY_ALIAS и KEY_PASSWORD необязательны, а APKMIRROR_API_USER и APKMIRROR_API_PASS необязательно позволяют пропустить резервный вариант с Playwright. Загрузка APK использует многоисточниковый резервный механизм: предварительно загруженные APK инструментов, кэш URL, настроенные download_urls, затем параллельное разрешение через apkeep для APKPure, APKMirror-API при заданных учётных данных и скрапер APKMirror с резервным вариантом на Chromium. Разделённые пакеты, такие как XAPK, APKM и APKS, сохраняются как .apk и определяются по содержимому, а не по расширению, при этом внутренний base.apk проверяется после объединения.
Выбор APK предпочитает архитектуру из config.json, по умолчанию arm64-v8a, применяет предпочтения DPI для APKMirror, объединяет разделённые пакеты с помощью APKEditor или переходит к извлечению APK с dex, и отклоняет APK без файлов classes dex. Подписывание декодирует keystore, передаёт его в патч morphe-desktop с параметрами password, entry password и entry alias, позволяет morphe-desktop определить PKCS12, JKS или BKS и преобразовать внутри, подписывает пропатченный APK на месте и немедленно завершается с ошибкой при любой ошибке подписывания без неподписанного резервного варианта.
В README описаны распространённые сбои с причинами и исправлениями, включая отсутствие classes dex, неопределённые версии, неверные пароли keystore, неправильно помеченные архитектурные пакеты и то, что Obtainium не находит обновления. Дополнительная документация охватывает поля конфигурации, архитектуру конвейера и граф заданий от check-versions до build до create-release, каталог устранения неполадок, процесс релиза и откат, шаги настройки для форка и конфигурирования секретов, руководство по внесению вклада и политику раскрытия информации о безопасности. Проект лицензирован под GPL-3.0.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.