mbbpatch/docs/patcher-usage.-.md
Cuynu 31f78ca301 docs: move from wiki to docs
Signed-off-by: Cuynu <cuynu@proton.me>
2026-03-16 04:08:07 +07:00

6.3 KiB

Requirements

Warning

AI-powered forks are not suitable with this docs! USE ANOTHER FORK !

  • Any actual Linux environment or macOS (Arch Linux based recommended)
  • Little knowledge about terminal commands
  • android-tools wget for Arch/Fedora based and android-sdk-platform-tools for Debian based
  • android-platform-tools for macOS with brew
  • git installed
  • java or jdk-openjdk installed
  • figlet for showing banner (optional)
  • xmlstarlet for reformatting AndroidManifest after unpacking

Install dependencies

for Arch Linux / EndeavourOS / CachyOS / any Arch-based distributions (except Manjaro as it's usually break system packages)

sudo pacman -Sy android-tools wget jdk-openjdk figlet xmlstarlet git

for Debian / Mint / Ubuntu / any debian-based distributions

sudo apt install android-sdk-platform-tools xmlstarlet figlet wget git default-jre

for Fedora / any fedora-based distributions

sudo dnf makecache --refresh
sudo dnf -y install wget xmlstarlet android-tools java-latest-openjdk.x86_64
git clone https://github.com/M0Rf30/android-udev-rules.git
cd android-udev-rules
sudo bash install.sh

for macOS (brew)

brew install xmlstarlet wget openjdk android-platform-tools figlet gnu-sed
sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
PATH="/usr/local/opt/gnu-sed/libexec/gnubin:$PATH"

Clone repository

You can choose between 2 repository mirrors, one is the repository on Disroot, and the other one is the Selfhosted Forgejo instance, it has no difference as both are pushed at the same time.

DIsroot

cd ~
git clone https://git.disroot.org/mbcp/mbbpatch.git
cd mbbpatch/MBCPApp

Self-hosted Instance

cd ~
git clone http://cuynutt.ddns.net/mbcp/mbbpatch.git
cd mbbpatch/MBCPApp

Run the Patcher

Ensure that you already in following folder to continue : ~/mbbpatch/MBCPApp

./mbcpapp.sh
  • Download tools with 14) Download tools function first, it will download apktool and apkeditor to tools folder. This is required since 2) Unpack APK function requires it.

Patch the app

Important

If you are patching MB Bank with those version :

MB Bank : v6.4.63 | v6.4.64 | v6.4.65 | v6.4.66

Ensure that you applied Bypass GW934 checksum patch after applied all other patches, so the app can works without GW934 error when logging in.

  • Grab MB Bank apks from eMBee APKs or Lotus Chat (in case if you don't have access to Telegram) and copy it to ~/mbbpatch/MBCPApp/mbapk
  • Alternatively, if you don't have access to both Telegram & Lotus Chat, download from Google Play then extract the MB Bank apks and copy it to ~/mbbpatch/MBCPApp/mbapk or get it from my instance
  • Convert apks to apk first using 3) Convert apks to apk function
  • Unpack apk with 2) Unpack apk function
  • Use 7) Patch App function, it should show a list of patches, select the patch you wanted to and it will automatically patch the app at mbapk/mbapk_original
  • Note that the patches list might different, depends on your current unpacked MB Bank app version, as there will be a patch that compatible with specific version, for example patch [Bypass accessibility & malicious apps check] is compatible with v6.4.54, but not with v6.4.55 or newer, so if you have v6.4.55 or newer, then that patch will be hidden from patches list.
  • The patcher should show info to the log when use 7) Patch App function if it found that the current unpacked app version is not compatible with one of implemented patches like this :
[INFO] [parser] skipping [Patch A] as current version is higher than patch version clamp
[INFO] [parser] skipping [Patch B] as current version is lower than patch version clamp
  • View full patches list here for more info about compatible version, or view the MAXVER value and MINVER in patch files ~/mbbpatch/MBCPApp/patches/*.sh

Repack the app

  • So you have applied all the patches you wanted to ?
  • Exit patch app function with the exit option in the last patch list
  • Use 4) Repack APK to repack patched app
  • What's next? wait :)
  • Patcher will repack the app, and then restore signature to make sure that app can load, the example of nice repack process :
00.000 I: [BUILD] Using: APKEditor version 1.4.5, ARSCLib version 1.3.8
            -t = sig                                     
      -dex-lib = internal                                
          -sig = mbsig/signatures                        
            -i = mbcpapp_apk/MBCP_Flutter_TMP.apk        
            -o = mbcpapp_apk/MBCP_Flutter_SelfPatched.apk
 _______________________________________________________ 
00.013 I: [BUILD] Restoring signatures ...
00.214 I: [BUILD] Writing apk...
00.217 I: [BUILD] Buffering compress changed files ...
00.226 I: [BUILD] Writing files: 3332
00.453 I: [BUILD] Writing signature block ...                                                                                             
00.909 I: [BUILD] Saved to: mbcpapp_apk/MBCP_Flutter_SelfPatched.apk
[19:45:55:70] [INFO] Completed! Repacked APK are saved as [mbcpapp_apk/MBCP_Flutter_SelfPatched.apk] !!!
[19:45:55:70] [INFO] Install and trying to open it when ಠ‿ಠ
[19:45:55:70] [INFO] If you are facing issues, report it on Telegram [@mbbpatch_eng] or Disroot Forgejo : mbbpatch !!
  • Patched app will be MBCP_Flutter_SelfPatched.apk on ~/mbbpatch/MBCPApp/mbcpapp_apk/
  • As this is unsigned app, Android will refuse to install MBCP_Flutter_SelfPatched.apk by default. In order to install it, you MUST install MBCP Helper or CorePatch and enable the "Disable digest verify" option to bypass android package signature verification.
  • If you don't know how to deal with MBCP Helper, follow this guide : MBCP Installation
  • Copy this MBCP_Flutter_SelfPatched.apk then install to your device, or simply use 5) Install patched app function, its will do the same thing with adb
  • Profit :)