这个项目能做什么
AutoMorpheBuilder 是一个 GitHub Actions 流水线,使用 Morphe 补丁、morphe-desktop 和 APKEditor 构建已修补的 Android APK。输出按应用签名、版本化,并格式化以便 Obtainium 跟踪更新。鼓励分叉供个人使用;添加或移除应用只需编辑 config.json 中的 patch_repos,无需更改工作流。
README 列出了已测试的应用,包括 YouTube、YouTube Music、Reddit、Sofascore、Twitch、NZB360、AIDA64、Mimo 和 Flightradar24,每个都映射到包名和上游补丁仓库。法律和安全声明指出,该项目从 APKMirror 和 APKPure 等来源下载并修改第三方应用,用户有责任遵守每个应用的许可和当地法律,并且不托管或重新分发任何受版权保护的 APK,因为每个 APK 都在构建时从配置的上游源获取。构建使用用户自己的密钥库签名,这些机密被视为生产凭据。
文档记录了四个工作流。morphe-build.yml 每天 05:15 UTC 和手动运行;check-versions 解析最新标签并跳过已存在发布的应用,按应用矩阵构建下载 APK、应用补丁并签名,create-release 为每个应用发布一个 GitHub Release,同时修剪最旧的并保留每个应用两个。update-patches.yml 从上游补丁仓库刷新 patches.json,默认启用新补丁并保留现有切换。ci.yml 在拉取请求和推送到 main 时运行 npm ci、eslint 和 jest。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,以及带 Chromium 回退的 APKMirror 抓取器。XAPK、APKM 和 APKS 等拆分包保存为 .apk 并通过内容而非扩展名检测,合并后验证内部 base.apk。
APK 选择优先使用 config.json 中的架构,默认为 arm64-v8a,应用 APKMirror 的 DPI 偏好,使用 APKEditor 合并拆分包或回退到提取含 dex 的 APK,并拒绝没有 classes dex 文件的 APK。签名解码密钥库,将其传递给 morphe-desktop 补丁,带密码、条目密码和条目别名选项,让 morphe-desktop 检测 PKCS12、JKS 或 BKS 并在内部转换,就地签名修补后的 APK,并在任何签名错误时立即失败,不提供未签名回退。
README 记录了常见失败的原因和修复,包括缺少 classes dex、版本未确定、密钥库密码错误、架构捆绑标签错误以及 Obtainium 找不到更新。进一步文档涵盖配置字段、流水线架构和 check-versions 到 build 到 create-release 的作业图、故障排除目录、发布流程和回滚、分叉和配置机密的设置步骤、贡献指南和安全披露政策。该项目根据 GPL-3.0 许可。
评论
0 评分人数达到10人后显示
登录后参与讨论。