仓库不托管任何 APK,构建产物只在 CI 或本地生成,需自行运行流水线;本地构建必须自备 Android SDK Build-Tools 中的 apksigner,TikTok/Twitter/X 还需支持 16KB 页对齐的 zipalign;非 root 设备上的应用依赖 Morphe 的 MicroG-RE(GmsCore)才能正常工作。

Morphe-AutoBuilds
RookieEnoughGPL-3.0活跃维护用配置驱动的 CI 流水线每天自动构建 Android 应用,省去手动打包和重复操作,适合学习自动化构建流程。
Config-driven CI pipeline that automates Android app builds daily. Educational purposes.
git clone https://github.com/RookieEnough/morphe-AutoBuilds.git
cd Morphe-AutoBuilds
pip install -r requirements.txt
pip install requests beautifulsoup4
export APP_NAME="youtube"
export SOURCE="morphe"
python -m srcREADME 未说明本地构建的硬件要求;构建在 GitHub Actions 上运行,本地需 Python 3.11+、JRE、zip 与 Android SDK 的 apksigner。
配置驱动的 Android 应用自动构建流水线,每天在 GitHub Actions 上产出可安装 APK
用配置驱动的 CI 流水线每天自动构建 Android 应用,省去手动打包和重复操作,适合学习自动化构建流程。
核心能力
- 按 patch-config.json 与 arch-config.json 配置要构建的应用和架构
- 从 APKMirror、APKPure、Uptodown 多源下载基础 APK 并自动切换源
- 按 patches/ 下文本规则用 + 和 - 精确增删构建选项
- 分别产出 arm64-v8a、armeabi-v7a、universal 三种架构 APK
- 用固定公共密钥库自动签名,构建完即可直接安装
容易踩的坑
暂无 release 数据(可能没有发版,或尚未同步)。
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
🔧 Automated Android Build Pipeline
⚡ At a Glance
Note: This repository hosts no downloadable files. Builds are produced automatically every day at 06:00 UTC for personal use. See the Disclaimer below.
📱 Supported Apps & Architectures
The full list of supported apps lives in patch-config.json (95 apps and growing). Each app can target arm64-v8a, armeabi-v7a, and/or universal builds, configured in arch-config.json.
( Legend: ✅ = Available / ❌ = Not configured )
✨ Key Features
This repository utilizes a robust Python-based pipeline to ensure high reliability and optimization.
- Fully Automated: GitHub Actions workflow executes daily at 06:00 UTC, requiring zero manual intervention.
- Architecture Optimization: Builds specific
arm64-v8a,armeabi-v7a, anduniversalAPKs to reduce file size and improve performance on target devices. - Multi-Source Strategy: Intelligent fetching from APKMirror, APKPure, and Uptodown ensures high success rates even if one source is down.
- Granular Build Control: Simple text-based configuration allows for precise inclusion or exclusion of specific build options.
- Smart Failover: The system automatically switches download sources if a fetch attempt fails.
- Auto-Signing: All APKs are signed with a consistent public keystore, making them ready to install immediately.
- Clean Release Cycle: Previous releases are replaced rather than archived, preventing clutter and making it easy for external managers (like Orion) to track updates.
🛠️ Repository Structure
Morphe-AutoBuilds/
├── .github/workflows/ # GitHub Actions automation
│ ├── patch.yml # Daily automated builds (06:00 UTC)
│ └── manual-patch.yml # Manual trigger workflow
├── apps/ # APK source configurations
│ ├── apkmirror/ # APKMirror definitions
│ ├── apkpure/ # APKPure definitions
│ └── uptodown/ # UptoDown definitions
├── patches/ # Build option rules
├── sources/ # Morphe tool source definitions
├── src/ # Core Python build logic
├── arch-config.json # Architecture build matrix
├── patch-config.json # App build configuration
└── requirements.txt # Project dependencies
⚙️ Configuration Guide
This builder is highly configurable. You can adjust the following files to customize the build output.
1. App Selection (patch-config.json)
Define which applications the pipeline should attempt to build.
{
"patch_list": [
{ "app_name": "youtube", "source": "morphe" },
{ "app_name": "youtube-music", "source": "morphe" },
{ "app_name": "X", "source": "crimera" }
]
}
2. Architecture Matrix (arch-config.json)
Specify which CPU architectures to target for each application.
[
{
"app_name": "youtube",
"source": "morphe",
"arches": ["arm64-v8a", "armeabi-v7a", "universal"]
},
{
"app_name": "youtube-music",
"source": "morphe",
"arches": ["arm64-v8a", "armeabi-v7a"]
}
]
3. Source Definitions
Located in the apps/ directory. Example for apps/apkmirror/youtube.json:
{
"org": "google-inc",
"name": "youtube",
"type": "APK",
"arch": "universal",
"dpi": "nodpi",
"package": "com.google.android.youtube",
"version": ""
}
Play Store update protection
TikTok, Twitter and X builds set android:versionCode to 2147483647 before
alignment and signing, matching Morphe's Disable Play Store updates patch.
Package IDs, versionName, patch selection and the existing signing key stay
unchanged. This prevents ordinary higher-version Play Store update offers; it
is not a root-level detach and does not erase Play Store's cached listings.
Future protected builds can replace protected installs at the same version code.
Returning to a stock/lower-version-code build requires uninstalling first (with
potential data loss). Orion's current update detection compares versionName,
so the fixed code does not hide newer Orion versions. When first deploying this
change, force a full rebuild so the incremental release does not carry over old
APKs.
Requires Android SDK zipalign with 16 KB page-alignment support alongside
apksigner. Run the offline regression check with
python tests/test_play_updates.py.
4. Build Options
Located in patches/. Example for patches/youtube-morphe.txt. Use + to force include and - to exclude.
# Essential options
+ microg-support
+ premium-heading
+ hide-infocard-suggestions
# Exclusions
- custom-branding
- amoled
🚀 Local Build Instructions
If you prefer to build the APKs on your own machine, follow these steps.
Prerequisites
- Python 3.11 or higher
- Java Runtime Environment (JRE)
ziputilityapksigner(part of Android SDK Build-Tools)
Installation & Execution
- Clone the repository:
git clone https://github.com/RookieEnough/morphe-AutoBuilds.git
cd Morphe-AutoBuilds
- Install dependencies:
pip install -r requirements.txt
pip install requests beautifulsoup4
- Run the build: You can build for a specific app and source.
export APP_NAME="youtube"
export SOURCE="morphe"
python -m src
- Target specific architecture (Optional):
export APP_NAME="youtube"
export SOURCE="morphe"
export ARCH="arm64-v8a" # Options: arm64-v8a, armeabi-v7a, universal
python -m src
🔄 GitHub Actions Workflows
Daily Automated Build (patch.yml)
- Schedule: Runs daily at 06:00 UTC.
- Function: Iterates through all configured apps and architectures.
- Output: Refreshed build outputs for the configured apps.
Manual Build (manual-patch.yml)
- Trigger: Manually via the GitHub Actions "Run workflow" button.
- Capabilities:
- Target specific apps.
- Target specific architectures.
- Force specific APK versions.
- Option to update the public release or just build artifacts.
🤝 Contributing
Contributions to improve the toolchain or add support for new apps are welcome.
- Fork the repository.
- Create a feature branch (
git checkout -b feature/new-app). - Test your changes locally using the Python scripts.
- Commit your changes (
git commit -m "Add support for new-app"). - Push to the branch (
git push origin feature/new-app). - Open a Pull Request.
⚠️ Disclaimer & Legal
Important: This repository is a build-automation toolkit. It contains no APK files, no binaries, and no copyrighted media of any kind. Nothing here is a downloadable app.
- No binaries hosted: All build outputs are produced locally or in CI and are never committed to this repository.
- Educational purpose: The workflows and scripts are provided for educational and research purposes, to demonstrate automated Android build pipelines.
- Affiliation: This project is not affiliated with the Morphe Team or with any app publisher whose software it can process.
- Your responsibility: You are responsible for complying with the licenses and terms of service of the apps and build sources you choose to use. Do not redistribute builds in ways that violate those terms.
- Use at your own risk: Builds are generated automatically from third-party sources and may contain experimental features.
- GmsCore: Morphe's MicroG-RE is required for these non-root apps to function correctly.
If you found this project helpful, please consider giving it a ⭐ Star.
Made with 💜 by RookieZ