Tachiyomi/Mihon extension repository for personal use, based on the Keiyoushi build infrastructure.
| Extension | Language | Site | Status |
|---|---|---|---|
| Comix | All | comix.to | Working |
| ManhuaRMTL | English | manhuarmtl.com | Working (with OCR text overlay) |
To use this repo in Mihon, add:
https://raw.githubusercontent.com/marbou92/MHRepo/main/repo.json
- Reverse-engineered API with request signing and response decryption
- Image descrambling for tile-scrambled pages
- 10 extension settings (content rating, deduplication, score display, etc.)
- Comix-style description format with stars and bold info line
- Madara-based theme with custom MRM selectors
- OCR text overlay — burns English MTL text onto raw images (the site serves raw images; English is a JS overlay fetched from
fetch-ocr.php) - Toggle between English (MTL overlay) and Raw images in settings
- NSFW content filter (hide/show adult content)
- Comix-style description format with stars and bold info line
- Custom filters: genres (include/exclude), status, sort, author, artist, release year
-
GitHub Secrets (in this repo's Settings → Secrets and variables → Actions):
SIGNING_KEY— base64-encoded.jkskeystore fileKEY_STORE_PASSWORD— keystore passwordALIAS— key alias nameKEY_PASSWORD— key passwordREPO_PAT— GitHub PAT with write access tomarbou92/MHRepoSIGNING_FINGERPRINT_MANUAL— SHA-256 fingerprint of your signing key (for cleanup mode)
-
To get the signing fingerprint:
keytool -list -v \ -keystore signingkey.jks \ -storepass "YOUR_KEYSTORE_PASSWORD" \ -alias "YOUR_ALIAS" \ -keypass "YOUR_KEY_PASSWORD" \ | grep "SHA256:"
- Make your changes to the extension source code
- Bump
versionCodein the extension'sbuild.gradle.kts - Commit and push to
main - Go to Actions → Release & Publish → Run workflow
- Select
publishmode and run
The workflow will:
- Build signed release APKs for all extensions in
settings.gradle.kts - Compute the signing key fingerprint
- Publish APKs, JARs, icons, and protobuf index (
index.pb) to MHRepo - Purge the jsDelivr CDN cache
If you rename or move an extension (e.g., from src/all/ to src/en/), the old entry stays in MHRepo's index. To clean up:
- Go to Actions → Release & Publish → Run workflow
- Select
cleanup-dry-runmode first to preview what will be deleted - If correct, run again with
cleanupmode to actually delete
MHExtensions/
├── .github/
│ ├── scripts/
│ │ ├── publish-repo.py # Publish & cleanup script (protobuf-based)
│ │ ├── index.proto # Protobuf schema for Mihon v2 index
│ │ └── index.min.json # Static legacy marker file
│ └── workflows/
│ └── release_publish.yml # Build + publish + cleanup workflow
├── core/ # Shared library code
├── compiler/ # KSP annotation processor
├── lib/ # Shared libraries (cryptoaes, i18n)
├── lib-multisrc/ # Multisrc themes (madara, etc.)
├── src/
│ ├── all/comixto/ # Comix extension
│ └── en/manhuarmtl/ # ManhuaRMTL extension
├── settings.gradle.kts # Extension loading config
└── gradlew # Gradle wrapper
- Create
src/<lang>/<name>/with the extension source - Add
loadIndividualExtension("<lang>", "<name>")tosettings.gradle.kts - Add the icon at
src/<lang>/<name>/res/mipmap-xhdpi/ic_launcher.png - Commit, push, and run the publish workflow
- Build infrastructure: Keiyoushi/extensions-source
- Multisrc themes: Keiyoushi
- App: Mihon
See LICENSE.