Morph Patches

July 21, 2026 · View on GitHub

Overview

Custom Morphe bytecode patches for multiple Android apps. Patches are bundled as .mpp files and applied directly to an app's APK. Currently includes Tantan premium bypass patches; more apps can be added over time (see Adding support for a new app below).

Installation (Morphe Manager)

Add this repo as a patch bundle source in Morphe Manager using:

https://raw.githubusercontent.com/JonnyVR1/morph-patches/main/patches-bundle.json

Version Compatibility

AppPackageVersion
Tantancom.p335p1.mobile.putong7.2.9

Patches (13 total)

Settings Patches (4)

PatchMethodEffect
SettingsSupremePartnerSettings.isSupremePartner()Returns true
SettingsPlatinumSettings.isPlatinum()Returns true
SettingsODiamondSettings.userIsODiamond()Returns true
SettingsDisableAdsSettings.personalizeAdsSuggest()Returns false

User Patches (9)

PatchMethodEffect
UserIsVipUser.isVIP()Returns true
UserIsSVIPUser.isSVIP()Returns true
UserIsUltraPremiumUser.isUltraPremium()Returns true
UserIsSupremePartnerUser.isSupremePartner()Returns true
UserIsPlatinumUser.isPlatinum()Returns true
UserIsODiamondUser.isODiamond()Returns true
UserIsMembershipUser.isMembership()Returns true
UserIsMembershipUsedUser.isMembershipUsed()Returns true
UserIsVipExpiredUser.isVIPExpired()Returns false

A full, authoritative patch listing is auto-generated in patches-list.json.

Adding support for a new app

Each app's patches should live under patches/src/main/java/<app's actual obfuscated package name>/, matching the real bytecode package of the target APK (do not rename it to something generic — it must match the classes being patched). Organize patches one file per feature area, e.g.:

patches/src/main/java/<app package>/
├── SettingsPatches.kt
├── UserPatches.kt
└── ...

Compatibility (target app package + version) should be declared via a shared Compatibility constant per app, referenced by each patch in that app's package. See the existing com/p335p1/mobile/putong/data/ patches (Tantan) as a reference implementation.

Building

Prerequisites

  • Java 17+
  • Android SDK with build-tools

Build Commands

# Build the patch bundle
./gradlew :patches:jar

# Run tests
./gradlew :patches:test

# Build and apply patches to APK
./gradlew :patches:patchApk
# Output: tantan-premium-unlocked.apk

Apply Patches Manually

# After building the bundle
java -cp "patches/build/libs/patches-1.0.0.mpp:patches/build/libs/*" \
  app.morphe.PatcherMainKt <input.apk> <output.apk>

Publishing to GitHub Packages

# Set credentials
export GITHUB_ACTOR=your-username
export GITHUB_TOKEN=your-token

# Publish
./gradlew :patches:publish

Project Structure

morph-patches/
├── patches/
│   ├── src/main/java/
│   │   ├── app/morphe/
│   │   │   ├── PatcherMain.kt        # CLI entry point
│   │   │   └── PatchRegistry.kt      # Patch collection
│   │   └── com/p335p1/mobile/putong/data/   # Tantan patches
│   │       ├── SettingsPatches.kt    # 4 settings patches
│   │       └── UserPatches.kt        # 9 user patches
│   └── build.gradle.kts
├── patches-bundle.json
├── patches-list.json
└── README.md