このプロジェクトについて

AutoMorpheBuilderは、Morpheパッチ、morphe-desktop、APKEditorを使用してパッチ適用済みAndroid APKをビルドするGitHub Actionsパイプラインです。出力は署名され、アプリごとにバージョン管理され、Obtainiumが更新を追跡できる形式になっています。個人利用のためのフォークが推奨されており、アプリの追加や削除はconfig.jsonのpatch_reposを編集するだけで済み、ワークフローの変更は不要です。 READMEには、YouTube、YouTube Music、Reddit、Sofascore、Twitch、NZB360、AIDA64、Mimo、Flightradar24など、テスト済みのアプリが一覧されており、それぞれがパッケージ名と上流のパッチリポジトリにマッピングされています。法的およびセキュリティに関する注意事項では、本プロジェクトがAPKMirrorやAPKPureなどのソースからサードパーティアプリケーションをダウンロードして改変すること、ユーザーが各アプリのライセンスおよび現地法を遵守する責任を負うこと、すべてのAPKはビルド時に設定された上流ソースから取得されるため著作権で保護されたAPKをホストまたは再配布しないことが述べられています。ビルドはユーザー自身のキーストアで署名され、これらのシークレットは本番認証情報として扱われます。 4つのワークフローが文書化されています。morphe-build.ymlは毎日05:15 UTCおよび手動で実行されます。check-versionsは最新タグを解決し、リリースが既に存在するアプリをスキップし、アプリごとのマトリックスビルドがAPKをダウンロードしてパッチを適用し署名し、create-releaseがアプリごとに1つのGitHub Releaseを公開しつつ、最も古いものを削除してアプリごとに2つを保持します。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では、リポジトリに対してアプリごとに1つの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、次にAPKPure用のapkeep、認証情報が設定されている場合の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の下でライセンスされています。