This repository has been archived on 2026-04-04. You can view files and clone it, but you cannot make any changes to its state, such as pushing and creating new issues, pull requests or comments.
mbbpatch_archive/docs/patcher-usage.-.md
Cuynu b849e927fb docs: move from wiki to docs
Signed-off-by: Cuynu <cuynu@proton.me>
2026-02-19 01:36:32 +07:00

114 lines
6.3 KiB
Markdown

## 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](https://t.me/embeeapks) or [Lotus Chat](https://lotuschat.vn/w/+anSH1BbDbAYn54JC9nIC9A) (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](https://play.google.com/store/apps/details?id=com.mbmobile) then extract the MB Bank apks and copy it to `~/mbbpatch/MBCPApp/mbapk` or get it [from my instance](http://cuynutt.ddns.net/mbcp/mbmobile-apks)
- 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](/mbcp/mbbpatch#patches-list) 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](/mbcp/mbcp-helper/releases) or [CorePatch](https://github.com/LSPosed/CorePatch/releases) 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](/mbcp/info_en/wiki/mbcpinstall)
- 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 :)