Skip to content

About

Config-driven CI pipeline that automates Android app builds daily. Educational purposes.

Topics

Resources

Stars

1.2k stars

Watchers

22 watching

Forks

Latest commit

Β 

History

145 Commits

Folders and files

Repository files navigation

πŸ”§ Automated Android Build Pipeline

Daily Build Python Version License

Donate via Ko-fi Β Β  Donate via UPI
Donate via PayPal

Config-driven CI builds for Android
Multi-source β€’ Multi-architecture β€’ GitHub Actions Powered

A sophisticated, automated pipeline that assembles installable Android applications for non-rooted devices. The system fetches build tooling, downloads base APKs from multiple sources, applies community build configurations, and produces architecture-specific outputs.

Report Bug Request Feature


⚑ 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, and universal APKs 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": ""
}

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)
  • zip utility
  • apksigner (part of Android SDK Build-Tools)

Installation & Execution

  1. Clone the repository:
git clone https://github.com/RookieEnough/morphe-AutoBuilds.git
cd Morphe-AutoBuilds
  1. Install dependencies:
pip install -r requirements.txt
pip install requests beautifulsoup4
  1. Run the build: You can build for a specific app and source.
export APP_NAME="youtube"
export SOURCE="morphe"
python -m src
  1. 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.

  1. Fork the repository.
  2. Create a feature branch (git checkout -b feature/new-app).
  3. Test your changes locally using the Python scripts.
  4. Commit your changes (git commit -m "Add support for new-app").
  5. Push to the branch (git push origin feature/new-app).
  6. 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

About

Config-driven CI pipeline that automates Android app builds daily. Educational purposes.

Topics

Resources

Stars

1.2k stars

Watchers

22 watching

Forks

Releases

Packages

Contributors

Languages