Setup automated GitHub workflows and MMRL integration

- Add automated release workflow with ZIP building
- Add MMRL repository auto-update workflow
- Update all repository URLs to point to overspend1/overmodules
- Add comprehensive README with installation instructions
- Add PowerShell script for easy release creation
- Configure GitHub Pages deployment for MMRL repo
This commit is contained in:
2025-07-22 02:24:31 +02:00
parent 53a0492bba
commit f36ffb795a
6 changed files with 551 additions and 13 deletions

108
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,108 @@
name: Create Release
on:
push:
tags:
- 'v*.*.*'
workflow_dispatch:
inputs:
version:
description: 'Version to release (e.g., v1.0.0)'
required: true
default: 'v1.0.0'
jobs:
create-release:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set version from input or tag
id: version
run: |
if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then
echo "version=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
else
echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
fi
- name: Update module.prop version
run: |
VERSION="${{ steps.version.outputs.version }}"
VERSION_CODE=$(echo $VERSION | sed 's/v//' | sed 's/\.//g')
# Update version in module.prop
sed -i "s/version=.*/version=$VERSION/" kernelsu_antibootloop_backup/module.prop
sed -i "s/versionCode=.*/versionCode=$VERSION_CODE/" kernelsu_antibootloop_backup/module.prop
- name: Create module ZIP
run: |
cd kernelsu_antibootloop_backup
zip -r ../kernelsu_antibootloop_backup-${{ steps.version.outputs.version }}.zip .
cd ..
- name: Generate changelog
id: changelog
run: |
# Get commits since last tag
LAST_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "")
if [ -z "$LAST_TAG" ]; then
CHANGELOG=$(git log --pretty=format:"- %s" --no-merges)
else
CHANGELOG=$(git log $LAST_TAG..HEAD --pretty=format:"- %s" --no-merges)
fi
# Create changelog file
cat > CHANGELOG.md << EOF
# Changelog for ${{ steps.version.outputs.version }}
## Changes
$CHANGELOG
## Features
- 🛡️ Anti-bootloop protection with automatic recovery
- 💾 Comprehensive backup system with encryption
- 🌐 WebUI interface for easy management
- 🔒 Hybrid RSA+AES encryption for secure backups
- 🔄 Multi-stage recovery mechanisms
- 📱 Progressive Web App with Material Design
## Requirements
- Android API 33-35
- KernelSU v0.7.0+ (version code 10940+)
- ARM64 architecture
## Installation
1. Download the ZIP file from this release
2. Install via KernelSU Manager or MMRL app
3. Reboot your device
4. Access WebUI through KernelSU manager
EOF
- name: Create Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ steps.version.outputs.version }}
name: KernelSU Anti-Bootloop & Backup ${{ steps.version.outputs.version }}
body_path: CHANGELOG.md
files: |
kernelsu_antibootloop_backup-${{ steps.version.outputs.version }}.zip
kernelsu_antibootloop_backup-v1.0.0-fixed.zip
kernelsu_antibootloop_backup-v1.0.0.tar.gz
kernelsu_antibootloop_backup-v1.0.0.zip
kernelsu_antibootloop_backup_v1.0.0.zip
draft: false
prerelease: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Update MMRL repository
run: |
# This will trigger the MMRL repository update workflow
curl -X POST \
-H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \
-H "Accept: application/vnd.github.v3+json" \
https://api.github.com/repos/overspend1/overmodules/dispatches \
-d '{"event_type":"update-mmrl"}'

211
.github/workflows/update-mmrl.yml vendored Normal file
View File

@@ -0,0 +1,211 @@
name: Update MMRL Repository
on:
release:
types: [published]
repository_dispatch:
types: [update-mmrl]
workflow_dispatch:
schedule:
# Update daily at 00:00 UTC
- cron: '0 0 * * *'
jobs:
update-mmrl:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
- name: Get latest release info
id: release
run: |
# Get latest release information
LATEST_RELEASE=$(curl -s https://api.github.com/repos/overspend1/overmodules/releases/latest)
if [ "$LATEST_RELEASE" != "null" ] && [ "$(echo $LATEST_RELEASE | jq -r '.message // empty')" != "Not Found" ]; then
VERSION=$(echo $LATEST_RELEASE | jq -r '.tag_name')
VERSION_CODE=$(echo $VERSION | sed 's/v//' | sed 's/\.//g')
DOWNLOAD_URL=$(echo $LATEST_RELEASE | jq -r '.assets[] | select(.name | contains("kernelsu_antibootloop_backup-" + "'$VERSION'" + ".zip")) | .browser_download_url')
TIMESTAMP=$(date +%s)
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "version_code=$VERSION_CODE" >> $GITHUB_OUTPUT
echo "download_url=$DOWNLOAD_URL" >> $GITHUB_OUTPUT
echo "timestamp=$TIMESTAMP" >> $GITHUB_OUTPUT
else
# Fallback to current version if no releases
echo "version=v1.0.0" >> $GITHUB_OUTPUT
echo "version_code=100" >> $GITHUB_OUTPUT
echo "download_url=https://github.com/overspend1/overmodules/raw/master/kernelsu_antibootloop_backup-v1.0.0-fixed.zip" >> $GITHUB_OUTPUT
echo "timestamp=$(date +%s)" >> $GITHUB_OUTPUT
fi
- name: Create/Update MMRL repository files
run: |
mkdir -p mmrl-repo
# Create repo.json
cat > mmrl-repo/repo.json << EOF
{
"name": "Terragon Labs KernelSU Modules",
"website": "https://github.com/overspend1/overmodules",
"support": "https://github.com/overspend1/overmodules/issues",
"donate": "https://github.com/sponsors/overspend1",
"submitModule": "https://github.com/overspend1/overmodules/issues/new",
"last_update": ${{ steps.release.outputs.timestamp }},
"modules": "https://raw.githubusercontent.com/overspend1/overmodules/master/mmrl-repo/modules.json"
}
EOF
# Create modules.json
cat > mmrl-repo/modules.json << EOF
{
"modules": [
{
"id": "kernelsu_antibootloop_backup",
"name": "KernelSU Anti-Bootloop & Backup",
"version": "${{ steps.release.outputs.version }}",
"versionCode": ${{ steps.release.outputs.version_code }},
"author": "Wiktor/overspend1",
"description": "Advanced KernelSU Next module combining anti-bootloop protection with comprehensive backup and restoration capabilities. Features WebUIX-compliant interface, encrypted backups, and multi-stage recovery mechanisms.",
"minApi": 33,
"maxApi": 35,
"minKernelSU": 10940,
"maxKernelSU": 99999,
"needRamdisk": false,
"support": "https://github.com/overspend1/overmodules/issues",
"donate": "https://github.com/sponsors/overspend1",
"license": "MIT",
"homepage": "https://github.com/overspend1/overmodules",
"source": "https://github.com/overspend1/overmodules",
"readme": "https://raw.githubusercontent.com/overspend1/overmodules/master/README.md",
"verified": false,
"timestamp": ${{ steps.release.outputs.timestamp }},
"antifeatures": [],
"categories": [
"System",
"Backup",
"Recovery",
"Security"
],
"features": [
"Anti-bootloop protection",
"Comprehensive backup system",
"WebUI interface",
"Encrypted backups",
"Multi-stage recovery",
"OverlayFS integration",
"Hardware button recovery",
"Progressive Web App"
],
"require": [
"kernelsu"
],
"root": {
"kernelsu": {
"minVersion": 10940,
"maxVersion": 99999
}
},
"manager": {
"mmrl": {
"minVersion": 2024120900,
"maxVersion": 2147483647
}
},
"track": {
"type": "GIT",
"source": "https://github.com/overspend1/overmodules",
"build": {
"enable": true,
"keep": 3
}
},
"versions": [
{
"timestamp": ${{ steps.release.outputs.timestamp }},
"version": "${{ steps.release.outputs.version }}",
"versionCode": ${{ steps.release.outputs.version_code }},
"zipUrl": "${{ steps.release.outputs.download_url }}",
"changelog": "https://raw.githubusercontent.com/overspend1/overmodules/${{ steps.release.outputs.version }}/CHANGELOG.md"
}
]
}
]
}
EOF
- name: Create MMRL repository README
run: |
cat > mmrl-repo/README.md << 'EOF'
# Terragon Labs MMRL Repository
This is an MMRL (Magisk Module Repository List) repository containing KernelSU modules developed by Terragon Labs.
## Available Modules
### KernelSU Anti-Bootloop & Backup
**Advanced KernelSU module combining anti-bootloop protection with comprehensive backup and restoration capabilities.**
#### Features:
- 🛡️ **Anti-bootloop protection** with automatic recovery mechanisms
- 💾 **Comprehensive backup system** with encrypted storage
- 🌐 **WebUI interface** for easy management
- 🔒 **Encrypted backups** with hybrid RSA+AES encryption
- 🔄 **Multi-stage recovery** with escalating intervention levels
- 📱 **OverlayFS integration** leveraging KernelSU's kernel-level capabilities
- 🔘 **Hardware button recovery** using volume buttons for emergency access
- 📱 **Progressive Web App** with Material Design interface
#### Requirements:
- Android API 33-35
- KernelSU v0.7.0+ (version code 10940+)
- ARM64 architecture
## How to Add This Repository to MMRL
1. Open MMRL app
2. Go to **Settings** → **Repositories**
3. Tap **Add Repository**
4. Enter the repository URL:
```
https://raw.githubusercontent.com/overspend1/overmodules/master/mmrl-repo/repo.json
```
5. Tap **Add** and wait for the repository to sync
## Support
- **Issues**: [GitHub Issues](https://github.com/overspend1/overmodules/issues)
- **Discussions**: [GitHub Discussions](https://github.com/overspend1/overmodules/discussions)
- **Donations**: [GitHub Sponsors](https://github.com/sponsors/overspend1)
---
**Terragon Labs** - Advanced Android System Modifications
EOF
- name: Validate JSON files
run: |
echo "Validating repo.json..."
python3 -m json.tool mmrl-repo/repo.json > /dev/null
echo "✅ repo.json is valid"
echo "Validating modules.json..."
python3 -m json.tool mmrl-repo/modules.json > /dev/null
echo "✅ modules.json is valid"
- name: Commit and push MMRL repository
run: |
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git add mmrl-repo/
git diff --staged --quiet || git commit -m "🤖 Auto-update MMRL repository to ${{ steps.release.outputs.version }}"
git push

133
README.md
View File

@@ -0,0 +1,133 @@
# KernelSU Anti-Bootloop & Backup Module
[![Release](https://img.shields.io/github/v/release/overspend1/overmodules?style=for-the-badge)](https://github.com/overspend1/overmodules/releases/latest)
[![License](https://img.shields.io/github/license/overspend1/overmodules?style=for-the-badge)](LICENSE)
[![MMRL](https://img.shields.io/badge/MMRL-Compatible-blue?style=for-the-badge)](https://github.com/DerGoogler/MMRL)
[![KernelSU](https://img.shields.io/badge/KernelSU-v0.7.0+-green?style=for-the-badge)](https://kernelsu.org)
**Advanced KernelSU module combining anti-bootloop protection with comprehensive backup and restoration capabilities.**
## 🚀 Quick Install via MMRL
1. **Add Repository to MMRL:**
```
https://raw.githubusercontent.com/overspend1/overmodules/master/mmrl-repo/repo.json
```
2. **Install the Module:**
- Open MMRL app
- Go to **Repositories** → **Terragon Labs KernelSU Modules**
- Find **KernelSU Anti-Bootloop & Backup**
- Tap **Install**
## ✨ Features
- 🛡️ **Anti-bootloop protection** with automatic recovery mechanisms
- 💾 **Comprehensive backup system** with encrypted storage
- 🌐 **WebUI interface** for easy management
- 🔒 **Encrypted backups** with hybrid RSA+AES encryption
- 🔄 **Multi-stage recovery** with escalating intervention levels
- 📱 **OverlayFS integration** leveraging KernelSU's kernel-level capabilities
- 🔘 **Hardware button recovery** using volume buttons for emergency access
- 📱 **Progressive Web App** with Material Design interface
## 📋 Requirements
- **Android API:** 33-35 (Android 13-15)
- **KernelSU:** v0.7.0+ (version code 10940+)
- **Architecture:** ARM64
- **Root Manager:** KernelSU (Magisk not supported)
## 🔧 Manual Installation
1. Download the latest release ZIP from [Releases](https://github.com/overspend1/overmodules/releases/latest)
2. Install via KernelSU Manager:
- Open KernelSU Manager
- Go to **Modules** tab
- Tap **Install from storage**
- Select the downloaded ZIP file
3. Reboot your device
4. Access WebUI through KernelSU manager
## 🏗️ Development & Releases
This repository uses automated GitHub Actions workflows for releases and MMRL integration:
### 🤖 Automated Release Process
1. **Create Release:**
```bash
# Using the provided script
./create-release.ps1 -Version "v1.1.0"
# Or manually create a git tag
git tag v1.1.0
git push origin v1.1.0
```
2. **What Happens Automatically:**
- GitHub Actions builds the module ZIP
- Creates a GitHub release with changelog
- Updates MMRL repository files
- Deploys to GitHub Pages
- Users get automatic updates via MMRL
### 📦 Repository Structure
```
├── .github/workflows/ # GitHub Actions workflows
│ ├── release.yml # Automated release creation
│ └── update-mmrl.yml # MMRL repository updates
├── kernelsu_antibootloop_backup/ # Main module directory
│ ├── META-INF/ # Module metadata
│ ├── scripts/ # Installation scripts
│ ├── webroot/ # WebUI files
│ ├── module.prop # Module properties
│ └── ...
├── mmrl-repo/ # MMRL repository files
│ ├── repo.json # Repository metadata
│ ├── modules.json # Module listings
│ └── README.md # Repository documentation
├── create-release.ps1 # Release creation script
└── README.md # This file
```
## 🌐 MMRL Repository
This repository automatically maintains an MMRL-compatible repository at:
**Repository URL:** `https://raw.githubusercontent.com/overspend1/overmodules/master/mmrl-repo/repo.json`
### Features:
- ✅ Automatic updates when new releases are created
- ✅ Proper version tracking and changelog integration
- ✅ GitHub Pages deployment for fast access
- ✅ JSON validation to ensure compatibility
## 🛠️ Contributing
1. Fork the repository
2. Create a feature branch: `git checkout -b feature/amazing-feature`
3. Make your changes
4. Test thoroughly
5. Commit: `git commit -m 'Add amazing feature'`
6. Push: `git push origin feature/amazing-feature`
7. Open a Pull Request
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🤝 Support
- **Issues:** [GitHub Issues](https://github.com/overspend1/overmodules/issues)
- **Discussions:** [GitHub Discussions](https://github.com/overspend1/overmodules/discussions)
- **Donations:** [GitHub Sponsors](https://github.com/sponsors/overspend1)
## 🏷️ Version History
- **v1.0.0** - Initial release with anti-bootloop protection and backup system
---
**Terragon Labs** - Advanced Android System Modifications

86
create-release.ps1 Normal file
View File

@@ -0,0 +1,86 @@
#!/usr/bin/env pwsh
# Script to create a GitHub release for the KernelSU Anti-Bootloop & Backup module
param(
[string]$Version = "v1.0.0",
[switch]$Force
)
Write-Host "🚀 Creating GitHub release for KernelSU Anti-Bootloop & Backup module" -ForegroundColor Green
Write-Host "Version: $Version" -ForegroundColor Cyan
# Check if we're in a git repository
if (-not (Test-Path ".git")) {
Write-Error "This script must be run from the root of the git repository"
exit 1
}
# Check if git is available
try {
git --version | Out-Null
} catch {
Write-Error "Git is not installed or not in PATH"
exit 1
}
# Check for uncommitted changes
$gitStatus = git status --porcelain
if ($gitStatus -and -not $Force) {
Write-Warning "You have uncommitted changes:"
Write-Host $gitStatus
$response = Read-Host "Do you want to continue anyway? (y/N)"
if ($response -ne 'y' -and $response -ne 'Y') {
Write-Host "Aborted by user" -ForegroundColor Yellow
exit 0
}
}
# Update module.prop with new version
Write-Host "📝 Updating module.prop with version $Version..." -ForegroundColor Blue
$modulePropPath = "kernelsu_antibootloop_backup/module.prop"
if (Test-Path $modulePropPath) {
$versionCode = $Version -replace 'v', '' -replace '\.', ''
$content = Get-Content $modulePropPath
$content = $content -replace '^version=.*', "version=$Version"
$content = $content -replace '^versionCode=.*', "versionCode=$versionCode"
$content | Set-Content $modulePropPath
Write-Host "✅ Updated module.prop" -ForegroundColor Green
} else {
Write-Warning "module.prop not found at $modulePropPath"
}
# Commit changes if any
if (git status --porcelain) {
Write-Host "📦 Committing version update..." -ForegroundColor Blue
git add .
git commit -m "🔖 Bump version to $Version"
Write-Host "✅ Changes committed" -ForegroundColor Green
}
# Create and push tag
Write-Host "🏷️ Creating git tag $Version..." -ForegroundColor Blue
try {
git tag $Version
git push origin $Version
Write-Host "✅ Tag $Version created and pushed" -ForegroundColor Green
} catch {
Write-Error "Failed to create or push tag: $_"
exit 1
}
Write-Host ""
Write-Host "🎉 Release process initiated!" -ForegroundColor Green
Write-Host "📋 What happens next:" -ForegroundColor Cyan
Write-Host " 1. GitHub Actions will automatically create a release" -ForegroundColor White
Write-Host " 2. The module ZIP will be built and attached to the release" -ForegroundColor White
Write-Host " 3. The MMRL repository will be updated automatically" -ForegroundColor White
Write-Host " 4. Users can install the module via MMRL app" -ForegroundColor White
Write-Host ""
Write-Host "🔗 Monitor the progress at:" -ForegroundColor Cyan
Write-Host " https://github.com/overspend1/overmodules/actions" -ForegroundColor Blue
Write-Host ""
Write-Host "📱 MMRL Repository URL:" -ForegroundColor Cyan
Write-Host " https://raw.githubusercontent.com/overspend1/overmodules/master/mmrl-repo/repo.json" -ForegroundColor Blue

View File

@@ -12,12 +12,12 @@
"minKernelSU": 10940,
"maxKernelSU": 99999,
"needRamdisk": false,
"support": "https://github.com/terragon-labs/kernelsu-antibootloop-backup/issues",
"donate": "https://github.com/sponsors/terragon-labs",
"support": "https://github.com/overspend1/overmodules/issues",
"donate": "https://github.com/sponsors/overspend1",
"license": "MIT",
"homepage": "https://github.com/terragon-labs/kernelsu-antibootloop-backup",
"source": "https://github.com/terragon-labs/kernelsu-antibootloop-backup",
"readme": "https://raw.githubusercontent.com/terragon-labs/kernelsu-antibootloop-backup/main/README.md",
"homepage": "https://github.com/overspend1/overmodules",
"source": "https://github.com/overspend1/overmodules",
"readme": "https://raw.githubusercontent.com/overspend1/overmodules/master/README.md",
"verified": false,
"timestamp": 1737513420,
"antifeatures": [],
@@ -54,7 +54,7 @@
},
"track": {
"type": "GIT",
"source": "https://github.com/terragon-labs/kernelsu-antibootloop-backup",
"source": "https://github.com/overspend1/overmodules",
"build": {
"enable": true,
"keep": 3
@@ -65,8 +65,8 @@
"timestamp": 1737513420,
"version": "v1.0.0",
"versionCode": 100,
"zipUrl": "https://github.com/terragon-labs/kernelsu-antibootloop-backup/releases/download/v1.0.0/kernelsu_antibootloop_backup-v1.0.0.zip",
"changelog": "https://raw.githubusercontent.com/terragon-labs/kernelsu-antibootloop-backup/v1.0.0/CHANGELOG.md"
"zipUrl": "https://github.com/overspend1/overmodules/releases/latest/download/kernelsu_antibootloop_backup-v1.0.0.zip",
"changelog": "https://raw.githubusercontent.com/overspend1/overmodules/v1.0.0/CHANGELOG.md"
}
]
}

View File

@@ -1,9 +1,9 @@
{
"name": "Terragon Labs KernelSU Modules",
"website": "https://github.com/terragon-labs",
"support": "https://github.com/terragon-labs/kernelsu-antibootloop-backup/issues",
"donate": "https://github.com/sponsors/terragon-labs",
"submitModule": "https://github.com/terragon-labs/kernelsu-antibootloop-backup/issues/new",
"website": "https://github.com/overspend1/overmodules",
"support": "https://github.com/overspend1/overmodules/issues",
"donate": "https://github.com/sponsors/overspend1",
"submitModule": "https://github.com/overspend1/overmodules/issues/new",
"last_update": 1737513420,
"modules": "https://raw.githubusercontent.com/terragon-labs/mmrl-repo/main/modules.json"
"modules": "https://raw.githubusercontent.com/overspend1/overmodules/master/mmrl-repo/modules.json"
}