Unified Morphe builder — patched APK + Magisk modules with fully automated daily builds.
Currently builds YouTube, YouTube Music and Reddit (universal, APK + Magisk module) plus Gboard (universal, APK only, jasonwu patches). Configuration is data-driven; no code change is needed to add versions, arches, or modes.
- Features
- Telegram
- Quick start
- Configuration overview
- How it works
- Workflows overview
- Requirements
- Docs
- License
- Patched APK (with MicroG support) + Magisk modules (root, no MicroG needed)
- Auto daily builds via GitHub Actions (schedule + manual trigger)
- Multi-source stock fetcher with fallback: Archive to APKMirror to Uptodown / APKPure / Direct
- Auto patch planning (MicroG / branding handling for APK vs module)
- Auto APK signing + signature guard + integrity check
- Bundle merge via APKEditor for split APKs
- Smart release cleanup — keep newest 3 releases, prune old files only (releases kept)
- Telegram release notification with download links (HTML, BD time)
- Manifest history carried on update branch
Build updates: Morphe Automation Builds
Release notifications include APK links, MicroG note with download link, module links, date in Asia/Dhaka time, and channel footer links.
- Edit
unified.json— enable apps, setarchesandbuild_modes(apk,module). - Run manual workflow (
Actions -> Manual Build) or locally:
pip install -r requirements.txt
mkdir -p build temp build_records
python -m srcFiltered local run:
APP_NAME=youtube SOURCE=morphe ARCH=universal MODE=apk python -m srcTermux:
./build-termux.sh- Get outputs from Releases:
youtube-universal-morphe-v*.apkyoutube-music-universal-morphe-v*.apkreddit-universal-morphe-v*.apkgboard-universal-morphe-v*.apkyoutube-morphe-module-v*-universal.zipmusic-morphe-module-v*-universal.zipreddit-morphe-module-v*-universal.zipmanifest.json
unified.json— apps, arches, modes, version policy, module metadata. See CONFIGURATION.sources/morphe.json— Morphe CLI + patches GitHub releases.apps/archive/*.json,apps/apkmirror/*.json— stock package, dlurl/org, arch, pinned version.patches/*.txt—+include/-excluderules. Empty (comment only) means defaults + auto MicroG/branding.sig.txt— optional signature whitelist.keystore/unified.jks— APK signing key, auto-generated in CI if missing.
Example target matrix from default config: 3 apps x 1 arch x 2 modes + Gboard x 1 arch x 1 mode = 7 targets.
unified.json -> targets -> download CLI/patches -> download stock (fallback chain)
-> signature guard -> patch rules -> retry over versions
-> bundle merge -> arch strip -> integrity check
-> patch -> sign (apk) / pack module (zip)
-> record + manifest + release + telegram + cleanup
Details: ARCHITECTURE
build.yml(scheduled daily 06:00 UTC + manual dispatch with force rebuild): check/audit -> matrix build-apps -> release + manifest + telegram + cleanup.manual.yml(manual single app/source/arch/mode, including both): build only, upload artifact, no release.
Details: WORKFLOWS
- Python 3.11 with
requirements.txt(requests,beautifulsoup4,PyGithub) - Java 21 (Temurin in CI)
zip,unzipGITHUB_TOKENfor GitHub API (CI provides automatically)- Optional for notify:
TG_TOKEN,TG_CHAT, channel link envs
- INSTALLATION — APK + MicroG + module install guide for end users
- CONFIGURATION — unified.json, sources, apps, patches, signing, env vars
- WORKFLOWS — local build, scheduled/manual CI, audit/record/manifest/prune, telegram format, retention
- ARCHITECTURE — pipeline, modules, invariants, known gaps
- FAQ — troubleshooting and how to add a new app