From f7a143d53a3a233314f5a2f0b8914918e6b6b7b1 Mon Sep 17 00:00:00 2001 From: Cuynu Date: Fri, 13 Feb 2026 01:58:50 +0700 Subject: [PATCH 01/24] readme: bump suggested version to v6.4.88 Signed-off-by: Cuynu --- README.md | 58 +++++++++++++++++++++++++++---------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/README.md b/README.md index e4dc107..19b5467 100644 --- a/README.md +++ b/README.md @@ -70,35 +70,35 @@ I'm not responsible if someone abuse this patch to do illegal things, since it's | ⚙️ Patch | 📜 Description | 🏦 Suggested version | |:--------:|:--------------:|:-----------------:| -| `Add verified badge` | Replaces the MIC protection shield with verified badge to make it looks more cute :3 | v6.4.0 ~ v6.4.87 | -| `Adaptive launcher icon` | Adds the adaptive & themed icon support to the app. Thanks to @fukiame ! | v6.4.0 ~ v6.4.87 | -| `Proper notification icon` | Temporary fixes for the app notification icon. Thanks to @fukiame ! | v6.4.0 ~ v6.4.87 | -| `Block adjust volume on sEKYC` | Prevent the device volume from being adjusted when entering eKYC activity. | v6.4.0 ~ v6.4.87 | -| `Better custom background screen` | Replace the preview custom background from awful to useful. | v6.4.84 ~ v6.4.87 | -| `Change app logo` | Change the app logo with set of icons. | v6.4.0 ~ v6.4.87 | -| `Change widget background to dark ` | Change widget background to dark if you use MBBHomeWidget. | v6.4.0 ~ v6.4.87 | -| `Custom VTAP screen` | Warn users about critical VTAP trigger error from app. | v6.4.53 ~ v6.4.87 | -| `Tian37 Fix` | Nuke detection points within Tian37 libraries. | v6.4.87 | -| `Force portrait screen` | Force the screen always portrait on app, espcially when launching. | v6.4.0 ~ v6.4.87 | -| `Remove MB AI Bullsh*t resources` | Remove the bullsh*t MB AI resources from app. Need to implement more in the future. | v6.4.74 ~ v6.4.87 | -| `Remove MB Themes Store` | Remove the MB Themes Store banner from Themes list, preventing access to MB Theme Store. | v6.4.28 ~ v6.4.87 | -| `Remove invoke to mbshield` | Make app don't invoke to mbshield when opening (MainActivity) and (MBBHomeWidgetQR) only | v6.4.22 ~ v6.4.87 | -| `Remove new zimperium check` | Remove the new Zimperium (ZDefend) root detection from app. Picked up from Legacy Patch. | v6.4.60 ~ v6.4.87 | -| `Remove bulit-in fonts` | Remove app font and force to use device font for most app components. | v6.4.0 ~ v6.4.87 | -| `Modify app theme` | Modify the bulit-in app theme from original one to other themes. | v6.4.30 ~ v6.4.87 | -| `Remove garbage permission and activities` | Removes tracking permission & activities from app. | v6.4.0 ~ v6.4.87 | -| `Revert old eMBee logo` | Revert old eMBee logo, especially on product consultation options. | v6.4.53 ~ v6.4.87 | -| `Remove useless libraries` | Remove the useless libraries from app, only for v6.4.67+ | v6.4.67 ~ v6.4.87 | -| `Remove animated QR background` | Remove the animated QR background from bottom navigation bar and replace with white background. | v6.4.43 ~ v6.4.87 | -| `Remove VNPAY VMB20` | Remove the VNPAY Airplane related activities. | v6.4.55 ~ v6.4.87 | -| `Restore old registration resources` | Restore old resources on `onboarding` page. | v6.4.48 ~ v6.4.87 | -| `Hide VTAP root detection activity & dialog` | Hide the old root detection screen and dialog showing "Device is rooted" (might have issues with some HyperOS ROMs). | v6.4.0 ~ v6.4.87 | -| `Legacy hide VTAP activity & dialog` | Hide the first root detection screen with dialog showing "Device is rooted" but not bypassing it. (GW908 will present, unlike standard `Hide VTAP root detection activity & dialog` patch). Only use for some ugly ROMs which is crashing with standard patch. | v6.4.53 ~ v6.4.87 | -| `Remove protection shield` | Remove the MIC protection shield on profile picture and login screen. (not app protection) | v6.4.0 ~ v6.4.87 | -| `Remove app from launcher` | Remove the app icon from launcher, and start with `am start` or with MBZDefend-Fix Action/Termux. | v6.4.0 ~ v6.4.87 | -| `Set targetSdkVersion to 34` | Set the `targetSdkVersion` to 34 (Android 14) to prevent UI issues on some activities. | v6.4.10 ~ v6.4.87 | -| `Add modified resources` | Adds the specific strings for MBCP on eKYC phases, and modify the DigiBank logo. | v6.4.0 ~ v6.4.87 | -| `Add anime resources` | Adds anime-related resources to some components inside app. | v6.4.45 ~ v6.4.87 | +| `Add verified badge` | Replaces the MIC protection shield with verified badge to make it looks more cute :3 | v6.4.0 ~ v6.4.88 | +| `Adaptive launcher icon` | Adds the adaptive & themed icon support to the app. Thanks to @fukiame ! | v6.4.0 ~ v6.4.88 | +| `Proper notification icon` | Temporary fixes for the app notification icon. Thanks to @fukiame ! | v6.4.0 ~ v6.4.88 | +| `Block adjust volume on sEKYC` | Prevent the device volume from being adjusted when entering eKYC activity. | v6.4.0 ~ v6.4.88 | +| `Better custom background screen` | Replace the preview custom background from awful to useful. | v6.4.84 ~ v6.4.88 | +| `Change app logo` | Change the app logo with set of icons. | v6.4.0 ~ v6.4.88 | +| `Change widget background to dark ` | Change widget background to dark if you use MBBHomeWidget. | v6.4.0 ~ v6.4.88 | +| `Custom VTAP screen` | Warn users about critical VTAP trigger error from app. | v6.4.53 ~ v6.4.88 | +| `Tian37 Fix` | Nuke detection points within Tian37 libraries. | v6.4.87 ~ v6.4.88 | +| `Force portrait screen` | Force the screen always portrait on app, espcially when launching. | v6.4.0 ~ v6.4.88 | +| `Remove MB AI Bullsh*t resources` | Remove the bullsh*t MB AI resources from app. Need to implement more in the future. | v6.4.74 ~ v6.4.88 | +| `Remove MB Themes Store` | Remove the MB Themes Store banner from Themes list, preventing access to MB Theme Store. | v6.4.28 ~ v6.4.88 | +| `Remove invoke to mbshield` | Make app don't invoke to mbshield when opening (MainActivity) and (MBBHomeWidgetQR) only | v6.4.22 ~ v6.4.88 | +| `Remove new zimperium check` | Remove the new Zimperium (ZDefend) root detection from app. Picked up from Legacy Patch. | v6.4.60 ~ v6.4.88 | +| `Remove bulit-in fonts` | Remove app font and force to use device font for most app components. | v6.4.0 ~ v6.4.88 | +| `Modify app theme` | Modify the bulit-in app theme from original one to other themes. | v6.4.30 ~ v6.4.88 | +| `Remove garbage permission and activities` | Removes tracking permission & activities from app. | v6.4.0 ~ v6.4.88 | +| `Revert old eMBee logo` | Revert old eMBee logo, especially on product consultation options. | v6.4.53 ~ v6.4.88 | +| `Remove useless libraries` | Remove the useless libraries from app, only for v6.4.67+ | v6.4.67 ~ v6.4.88 | +| `Remove animated QR background` | Remove the animated QR background from bottom navigation bar and replace with white background. | v6.4.43 ~ v6.4.88 | +| `Remove VNPAY VMB20` | Remove the VNPAY Airplane related activities. | v6.4.55 ~ v6.4.88 | +| `Restore old registration resources` | Restore old resources on `onboarding` page. | v6.4.48 ~ v6.4.88 | +| `Hide VTAP root detection activity & dialog` | Hide the old root detection screen and dialog showing "Device is rooted" (might have issues with some HyperOS ROMs). | v6.4.0 ~ v6.4.88 | +| `Legacy hide VTAP activity & dialog` | Hide the first root detection screen with dialog showing "Device is rooted" but not bypassing it. (GW908 will present, unlike standard `Hide VTAP root detection activity & dialog` patch). Only use for some ugly ROMs which is crashing with standard patch. | v6.4.53 ~ v6.4.88 | +| `Remove protection shield` | Remove the MIC protection shield on profile picture and login screen. (not app protection) | v6.4.0 ~ v6.4.88 | +| `Remove app from launcher` | Remove the app icon from launcher, and start with `am start` or with MBZDefend-Fix Action/Termux. | v6.4.0 ~ v6.4.88 | +| `Set targetSdkVersion to 34` | Set the `targetSdkVersion` to 34 (Android 14) to prevent UI issues on some activities. | v6.4.10 ~ v6.4.88 | +| `Add modified resources` | Adds the specific strings for MBCP on eKYC phases, and modify the DigiBank logo. | v6.4.0 ~ v6.4.88 | +| `Add anime resources` | Adds anime-related resources to some components inside app. | v6.4.45 ~ v6.4.88 | From b849e927fb8c85be95ae2e2b47b2cdcae6583d75 Mon Sep 17 00:00:00 2001 From: Cuynu Date: Thu, 19 Feb 2026 01:36:32 +0700 Subject: [PATCH 02/24] docs: move from wiki to `docs` Signed-off-by: Cuynu --- docs/implementing-patches.-.md | 58 +++++++++++++++++ docs/patcher-dependencies.-.md | 12 ++++ docs/patcher-usage.-.md | 114 +++++++++++++++++++++++++++++++++ 3 files changed, 184 insertions(+) create mode 100644 docs/implementing-patches.-.md create mode 100644 docs/patcher-dependencies.-.md create mode 100644 docs/patcher-usage.-.md diff --git a/docs/implementing-patches.-.md b/docs/implementing-patches.-.md new file mode 100644 index 0000000..fd613ca --- /dev/null +++ b/docs/implementing-patches.-.md @@ -0,0 +1,58 @@ +## Implementing patches +- patch template is implemented by @fukiame from this commit : aa4eb65992 so just need to follow their `TEMPLATE` +- they well documented it on the commit message : +``` +adding new patches is now trivial: + + cd patches + cp TEMPLATE patch_name_whatever.sh + # then just fill in patch name and ver clamp if desired + +this gets rid of the need for excessive if-elses and not-so-pleasing indents + +for logging, instead of using pure echo, 4 new "levels" can be utilized +- `info` : normal +- `good` : info but have green color? +- `warn` : warning +- `err` : error +``` + +- they even implemented the sed that patching libapp to one function, called `sed_libapp` so you just need to call them and define it a value + + example : +``` +sed_libapp 's|{old string}|{new string}|g' +``` +- note that the old string and new string MUST be at the same character length in order to not breaking `libapp.so` ELF header + +same thing with `AndroidManifest.xml` too, called `manifest_remove` +``` +manifest_remove "android.manifest.YouWantedToRemove" +``` +- `get_mb_ver` function is used to get MB app version by reading version code + +- but that is not actually enough, you have to do smth that is patching the app, like `rm`, `sed`, `mv` operation. below is the example. you can literally do anything you wanted to mess up in the patches file : +``` +#!/usr/bin/env bash +# PATCHNAME: Remove banners & MiniApp +# MAXVER: 67 +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +sed_libapp 's|banner|remove|g' +sed_libapp 's|marketplacehome|removemarketapp|g' + +info 'Moving links...' +sed_libapp 's|https://miniappgw.mbbank.com.vn/homebox/webview/auth?|https://git.disroot.org/mbcp/info/wiki/MiniApp?ref=mb|g' +sed_libapp 's|https://miniappgw-uat.mbbank.com.vn/homebox-public/|https://git.disroot.org/mbcp/info/wiki/MiniApp?refs|g' + +info 'Removing related resources...' +rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/packages' +rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/billing_img_defaultBanner.webp' +rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/billing_img_defaultBanner.private.webp' +rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/explore_img_defaultBanner.webp' +rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/coreBanking_img_successBanner.webp' +rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/homeLanding_img_defaultBanner.webp' +rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/homeLanding_img_defaultBanner.private.webp' +``` \ No newline at end of file diff --git a/docs/patcher-dependencies.-.md b/docs/patcher-dependencies.-.md new file mode 100644 index 0000000..37e47db --- /dev/null +++ b/docs/patcher-dependencies.-.md @@ -0,0 +1,12 @@ +## MBCPApp Patcher are using those dependencies : +- GNU `sed` : https://www.gnu.org/software/sed/ +- GNU `wget` : https://www.gnu.org/software/wget/ +- GNU `bash` : https://www.gnu.org/software/bash/ +- `figlet` : https://www.figlet.org/ +- `xmlstarlet` : https://xmlstar.sourceforge.net/ +- `openjdk` : https://openjdk.org/ +- `git` : https://git-scm.com/ +- `platform-tools` : https://developer.android.com/tools/releases/platform-tools + +## Project Development : +- `nvim` : https://github.com/neovim/neovim \ No newline at end of file diff --git a/docs/patcher-usage.-.md b/docs/patcher-usage.-.md new file mode 100644 index 0000000..5a0a9ad --- /dev/null +++ b/docs/patcher-usage.-.md @@ -0,0 +1,114 @@ +## 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 :) From 2ce667d81aa4a76766dadca97ba6480b60f5dfbc Mon Sep 17 00:00:00 2001 From: Cuynu Date: Thu, 19 Feb 2026 14:47:18 +0700 Subject: [PATCH 03/24] misc: shortcut for launching `mbcpapp.sh` Signed-off-by: Cuynu --- mbcp.sh | 2 ++ 1 file changed, 2 insertions(+) create mode 100755 mbcp.sh diff --git a/mbcp.sh b/mbcp.sh new file mode 100755 index 0000000..8b3e19c --- /dev/null +++ b/mbcp.sh @@ -0,0 +1,2 @@ +#!/bin/bash +bash MBCPApp/mbcpapp.sh From 64fc1639a9b066cc8606ff7a2e680de814e0dd3f Mon Sep 17 00:00:00 2001 From: Cuynu Date: Fri, 20 Feb 2026 01:26:04 +0700 Subject: [PATCH 04/24] feat: mbcpapp.sh: check for right app when convert apk or unpacking & refer to `docs` folder prevent other apps from being accepted as the patcher is supposed to only works with MBBank `com.mbmobile` im so bored and literally has nothing to do. anything i can think right now is this commit, it works and makes me happy Signed-off-by: Cuynu --- MBCPApp/mbcpapp.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/MBCPApp/mbcpapp.sh b/MBCPApp/mbcpapp.sh index 7913508..c3fc56f 100755 --- a/MBCPApp/mbcpapp.sh +++ b/MBCPApp/mbcpapp.sh @@ -119,6 +119,7 @@ unpack_mbcp() { rm -rf 'mbapk/*merged.apk' java -jar tools/apkeditor.jar d -i mbapk/*.apk -o mbapk/mbapk_unpacked || { err "Unpacking failed !" ; return 1 ; } touch 'mbapk/mbapk_unpacked/isreal_unpacked' + unzip -l mbapk/MBOriginal.apk | grep -oH "ic-appmb.ttf" && good "Current converted app is MBBank! Continuing" || { err "Current converted app is NOT MBBank! Deleting files" ; rm -rf mbapk/* ; return 1 ; } info "Cleaning useless files..." rm -rf 'mbapk/mbapk_unpacked/root/assets/_4A9w8flncUrhDOG8dyqLi_azBTYT3PlSXz0hiCzRQA_' rm -rf 'mbapk/mbapk_unpacked/root/assets/0QDl12M5S2hKxoKF4cNI4kEX1qDQRMiOd34TXjSjy4M_' @@ -255,6 +256,7 @@ convert_apks() { mv mbapk/*.apk mbapk/MBOriginal.apk info 'Cleaning left over [apks] files...' rm -f mbapk/*.apks + unzip -l mbapk/MBOriginal.apk | grep -oH "ic-appmb.ttf" && good "Current converted app is MBBank! Continuing" || { err "Current converted app is NOT MBBank! Deleting files" ; rm -rf mbapk/* ; return 1 ; } info "You probably can continue to unpack APK!" } @@ -274,7 +276,8 @@ echo "Original APK must be inside [mbapk] folder !" echo ------------------------------------------------------------- echo "Current commit : $COMMIT ($BRANCH)" echo "Source code : https://git.disroot.org/mbcp/mbbpatch.git" -echo "Made possible by Cuynu's brain with love <3" +echo "Documentation : see [docs] folder" +echo "Written from scratch by Cuynu with love <3" echo ------------------------------------------------------------- echo App status : $(successunpack) echo ------------------------------------------------------------- From 0268e73dbc6bca38fbb635df0c190f842ff03e38 Mon Sep 17 00:00:00 2001 From: Cuynu Date: Sun, 1 Mar 2026 14:06:00 +0700 Subject: [PATCH 05/24] feat: patches: vtap zygisk detection bypass Signed-off-by: Cuynu --- .../hide_vtap_root_detection_activity.sh | 57 ++++++++++--------- 1 file changed, 30 insertions(+), 27 deletions(-) diff --git a/MBCPApp/patches/hide_vtap_root_detection_activity.sh b/MBCPApp/patches/hide_vtap_root_detection_activity.sh index 39e2e99..417e794 100644 --- a/MBCPApp/patches/hide_vtap_root_detection_activity.sh +++ b/MBCPApp/patches/hide_vtap_root_detection_activity.sh @@ -5,37 +5,40 @@ # shellcheck disable=SC1091,SC2016 . "$DIRPATH"/common.sh - if [[ -d mbapk/mbapk_unpacked/smali/classes4/com/vtap/ ]]; then - info "VTAP is found on [smali_classes4], Applying!" - # Adapt with v6.4.53+ - sed -i 's|Lcom/vtap/MaintenanceActivity;|Lio/flutter/plugins/MainActivity;|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes4/com/vtap/d.smali - sed -i 's|Lcom/vtap/MaintenanceActivity;|Lio/flutter/plugins/MainActivity;|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes4/com/vtap/VTapSetupPlugin.smali - rm -f 'mbapk/mbapk_unpacked/smali/classes4/com/vtap/MaintenanceActivity.smali' - rm -f 'mbapk/mbapk_unpacked/smali/classes4/com/vtap/MaintenanceActivity$1.smali' - rm -f 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/vguard/VGDialogActivity.smali' - sed -i 's|Lcom/vkey/android/vguard/VGDialogActivity;|Lio/flutter/plugins/MainActivity;|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/dy.smali - # Bypass VKey root check that throw VGFullScreenDialogActivity then exit :) - cp -f 'blob_patches/bypass_rootold/BasicThreatInfo.smali' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/internal/vguard/engine/' - cp -f 'blob_patches/bypass_rootold/VGThreatAppInfo.smali' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/vguard/model/' - cp -f 'blob_patches/bypass_rootold/VGThreatResponse.smali' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/vguard/model/' - # Test crash fixes for some Android 13 devices - sed -i 's|invoke-virtual {v5, v12}, Lcom/vkey/android/vguard/model/VGThreatResponse;->setUsingLegacyMessage(Z)V| |g' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/eg.smali' + info "VTAP is found on [smali_classes4], Applying!" + # Adapt with v6.4.53+ + sed -i 's|Lcom/vtap/MaintenanceActivity;|Lio/flutter/plugins/MainActivity;|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes4/com/vtap/d.smali + sed -i 's|Lcom/vtap/MaintenanceActivity;|Lio/flutter/plugins/MainActivity;|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes4/com/vtap/VTapSetupPlugin.smali + rm -f 'mbapk/mbapk_unpacked/smali/classes4/com/vtap/MaintenanceActivity.smali' + rm -f 'mbapk/mbapk_unpacked/smali/classes4/com/vtap/MaintenanceActivity$1.smali' + rm -f 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/vguard/VGDialogActivity.smali' + sed -i 's|Lcom/vkey/android/vguard/VGDialogActivity;|Lio/flutter/plugins/MainActivity;|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/dy.smali + # Bypass VKey root check that throw VGFullScreenDialogActivity then exit :) + cp -f 'blob_patches/bypass_rootold/BasicThreatInfo.smali' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/internal/vguard/engine/' + cp -f 'blob_patches/bypass_rootold/VGThreatAppInfo.smali' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/vguard/model/' + cp -f 'blob_patches/bypass_rootold/VGThreatResponse.smali' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/vguard/model/' + # Zygisk detection workaround test + sed -i 's|zygisk|giskzy|g' "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libvosWrapperEx.so + sed -i 's|zygisk|giskzy|g' "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libvosWrapperEx.so + + # Test crash fixes for some Android 13 devices + sed -i 's|invoke-virtual {v5, v12}, Lcom/vkey/android/vguard/model/VGThreatResponse;->setUsingLegacyMessage(Z)V| |g' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/eg.smali' else - info "VTAP is not found on [smali_classes4], ignore copying!" + info "VTAP is not found on [smali_classes4], ignore copying!" fi if [[ -d mbapk/mbapk_unpacked/smali/classes3/com/vtap ]]; then - info "VTAP is found on [smali_classes3], Applying!" - # Adapt with v6.4.62+ - cp -f 'blob_patches/bypass_rootold/BasicThreatInfo.smali' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/internal/vguard/engine/' - cp -f 'blob_patches/bypass_rootold/VGThreatAppInfo.smali' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/vguard/model/' - cp -f 'blob_patches/bypass_rootold/VGThreatResponse.smali' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/vguard/model/' - # Test crash fixes for some Android 13 devices - sed -i 's|invoke-virtual {v5, v12}, Lcom/vkey/android/vguard/model/VGThreatResponse;->setUsingLegacyMessage(Z)V| |g' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/eg.smali' + info "VTAP is found on [smali_classes3], Applying!" + # Adapt with v6.4.62+ + cp -f 'blob_patches/bypass_rootold/BasicThreatInfo.smali' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/internal/vguard/engine/' + cp -f 'blob_patches/bypass_rootold/VGThreatAppInfo.smali' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/vguard/model/' + cp -f 'blob_patches/bypass_rootold/VGThreatResponse.smali' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/vguard/model/' + # Test crash fixes for some Android 13 devices + sed -i 's|invoke-virtual {v5, v12}, Lcom/vkey/android/vguard/model/VGThreatResponse;->setUsingLegacyMessage(Z)V| |g' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/eg.smali' else - info "VTAP is not found on [smali_classes3], ignore copying!" - warn "Something wrong here! [smali_classes3] should contains VTAP !!!" - warn "Try to unpack app again !" - exit 1 + info "VTAP is not found on [smali_classes3], ignore copying!" + warn "Something wrong here! [smali_classes3] should contains VTAP !!!" + warn "Try to unpack app again !" + exit 1 fi From cc9f30ec9e4b1f4be78a3f2d76659746e432249d Mon Sep 17 00:00:00 2001 From: Cuynu Date: Sun, 1 Mar 2026 19:05:24 +0700 Subject: [PATCH 06/24] feat: patches(modify_app_theme): override `tetbinhngo` theme with [Tu Hao Viet Nam] theme Lunar New Year is now over, but the latest app is still not removes that theme from their app. this commits adds [Viet Nam] function as theme, it will override the [tetbinhngo] theme with [Tu Hao Viet Nam] one. Signed-off-by: Cuynu --- MBCPApp/patches/modify_app_theme.sh | 219 +++++++++++++++------------- 1 file changed, 114 insertions(+), 105 deletions(-) diff --git a/MBCPApp/patches/modify_app_theme.sh b/MBCPApp/patches/modify_app_theme.sh index 4742e10..09acfe0 100644 --- a/MBCPApp/patches/modify_app_theme.sh +++ b/MBCPApp/patches/modify_app_theme.sh @@ -7,23 +7,21 @@ iszdefend PS3='Select themes : ' -select opt in 'MBCP SemiPriority' 'MBCP MBClassic' 'Noel 2024' 'Tre trung' 'Mid-autumn festival' 'Exit' -do +select opt in 'MBCP SemiPriority' 'MBCP MBClassic' 'Noel 2024' 'Tre trung' 'Mid-autumn festival' 'Viet Nam' 'Exit'; do case "$opt" in - 'MBCP SemiPriority') - info 'Moving [priority] folder...' - cp -r 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority' 'blob_patches/semipriority/' - info 'Modifying QR background...' - cp 'blob_patches/semipriority/priority/a_background_image.webp' 'blob_patches/semipriority/priority/qr_img_ThemeDefalut.webp' - info 'Copying to [flutter_assets/assets/images/dynamic/base]' - cp -r -f 'blob_patches/semipriority/priority/'* 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - prioritylogo - info 'Copying [welcom_img_eMbee.webp]...' - cp -f 'blob_patches/semipriority/welcom_img_eMbee.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + 'MBCP SemiPriority') + info 'Moving [priority] folder...' + cp -r 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority' 'blob_patches/semipriority/' + info 'Modifying QR background...' + cp 'blob_patches/semipriority/priority/a_background_image.webp' 'blob_patches/semipriority/priority/qr_img_ThemeDefalut.webp' + info 'Copying to [flutter_assets/assets/images/dynamic/base]' + cp -r -f 'blob_patches/semipriority/priority/'* 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + prioritylogo + info 'Copying [welcom_img_eMbee.webp]...' + cp -f 'blob_patches/semipriority/welcom_img_eMbee.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - - cat mbapk/mbapk_unpacked/root/lib/arm64-v8a/libapp.so | grep -a -oH filestatic > /dev/null 2>&1 && demopriority - demopriority() { + cat mbapk/mbapk_unpacked/root/lib/arm64-v8a/libapp.so | grep -a -oH filestatic >/dev/null 2>&1 && demopriority + demopriority() { # Modify the demo screen info 'Modifying demo screenshot...' sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/module/onboarding/welcome/welcom_img_demoImage01.png|https://gitlab.com/-/project/56341767/uploads/1616c32f26051152de0ee7e60742c47b/priority1.png?ref=mbcpappgit|g' @@ -35,12 +33,12 @@ do sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/module/onboarding/welcome/welcom_img_demoImage04.png|https://gitlab.com/-/project/56341767/uploads/7bd2d759bb1f2430016e272e27ceb72c/priority4.png?ref=mbcpappgit|g' sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/module/onboarding/welcome/welcom_img_demoImage05.png|https://gitlab.com/-/project/56341767/uploads/7f5a42716cc32b0f9db78076c15d1cfa/priority5.png?ref=mbcpappgit|g' - } + } - info 'Cleaning...' - rm -rf 'blob_patches/semipriority/priority' - echo "Patch applied by MBCPApp Patcher on $(uname -s -r) with commit : $(git rev-parse --short HEAD) at $(date)." > "mbapk/mbapk_unpacked/root/assets/mbcp_info/semipriority_theme.inf" - good "Applied [MBCP SemiPriority] theme." + info 'Cleaning...' + rm -rf 'blob_patches/semipriority/priority' + echo "Patch applied by MBCPApp Patcher on $(uname -s -r) with commit : $(git rev-parse --short HEAD) at $(date)." >"mbapk/mbapk_unpacked/root/assets/mbcp_info/semipriority_theme.inf" + good "Applied [MBCP SemiPriority] theme." ;; 'Mid-autumn festival') @@ -70,31 +68,31 @@ do rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/onboarding/onboarding_img_a80Code.webp' rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/onboarding/onboarding_bg_a80Landing.webp' - cat mbapk/mbapk_unpacked/root/lib/arm64-v8a/libapp.so | grep -a -oH filestatic > /dev/null 2>&1 && demotrungthu + cat mbapk/mbapk_unpacked/root/lib/arm64-v8a/libapp.so | grep -a -oH filestatic >/dev/null 2>&1 && demotrungthu demotrungthu() { - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_thumbnail_quockhanh.png|https://gitlab.com/-/project/56341767/uploads/227ca0fc0dd1b5b3973690c3f9031c27/thumb.png?app=mbcp11|g' - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenLoading_quockhanh.png|https://gitlab.com/-/project/56341767/uploads/27f934ed3f55c3214185bc193cfdfe2b/preview1.png?app=mbcpapp|g' - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenLogin_quockhanh.png|https://gitlab.com/-/project/56341767/uploads/4f5f5398f57ce629b195f0fa6eb21f2a/preview2.png?ref=mbcp1|g' - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenHome_quockhanh.png|https://gitlab.com/-/project/56341767/uploads/b0b35d05a0752b6eec0dd19d50f15afd/preview3.png?ref=mbcp|g' - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenSuccess_quockhanh.png|https://gitlab.com/-/project/56341767/uploads/c61050db4674a181978b6f868c100aa6/preview4.png?ref=mbcpapp|g' - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenShare_quockhanh.png|https://gitlab.com/-/project/56341767/uploads/2bd471b0b9ef7f96b05020bb4af304ed/preview5.png?ref=mbcp1|g' - } - echo "Patch applied by MBCPApp Patcher on $(uname -s -r) with commit : $(git rev-parse --short HEAD) at $(date)." > "mbapk/mbapk_unpacked/root/assets/mbcp_info/midautumn_theme.inf" - good "Applied [Mid-autumn festival] theme." + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_thumbnail_quockhanh.png|https://gitlab.com/-/project/56341767/uploads/227ca0fc0dd1b5b3973690c3f9031c27/thumb.png?app=mbcp11|g' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenLoading_quockhanh.png|https://gitlab.com/-/project/56341767/uploads/27f934ed3f55c3214185bc193cfdfe2b/preview1.png?app=mbcpapp|g' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenLogin_quockhanh.png|https://gitlab.com/-/project/56341767/uploads/4f5f5398f57ce629b195f0fa6eb21f2a/preview2.png?ref=mbcp1|g' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenHome_quockhanh.png|https://gitlab.com/-/project/56341767/uploads/b0b35d05a0752b6eec0dd19d50f15afd/preview3.png?ref=mbcp|g' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenSuccess_quockhanh.png|https://gitlab.com/-/project/56341767/uploads/c61050db4674a181978b6f868c100aa6/preview4.png?ref=mbcpapp|g' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenShare_quockhanh.png|https://gitlab.com/-/project/56341767/uploads/2bd471b0b9ef7f96b05020bb4af304ed/preview5.png?ref=mbcp1|g' + } + echo "Patch applied by MBCPApp Patcher on $(uname -s -r) with commit : $(git rev-parse --short HEAD) at $(date)." >"mbapk/mbapk_unpacked/root/assets/mbcp_info/midautumn_theme.inf" + good "Applied [Mid-autumn festival] theme." ;; - 'MBCP MBClassic') - info "Ensure that SemiPriority theme is not applied before this !" - info "Otherwise it will have like mixed SemiPriority and MB Classic theme, You've been warned !!! " - cp -f 'blob_patches/mbclassic/a_background_image.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/mbclassic/general_bg_screenshot.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/mbclassic/homeLanding_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/mbclassic/loading_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/mbclassic/login_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/mbclassic/qr_img_ThemeDefalut.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + 'MBCP MBClassic') + info "Ensure that SemiPriority theme is not applied before this !" + info "Otherwise it will have like mixed SemiPriority and MB Classic theme, You've been warned !!! " + cp -f 'blob_patches/mbclassic/a_background_image.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/mbclassic/general_bg_screenshot.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/mbclassic/homeLanding_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/mbclassic/loading_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/mbclassic/login_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/mbclassic/qr_img_ThemeDefalut.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cat mbapk/mbapk_unpacked/root/lib/arm64-v8a/libapp.so | grep -a -oH filestatic > /dev/null 2>&1 && demombclassic - demombclassic() { + cat mbapk/mbapk_unpacked/root/lib/arm64-v8a/libapp.so | grep -a -oH filestatic >/dev/null 2>&1 && demombclassic + demombclassic() { # Modify theme preview on settings sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenLoginClassic.png|https://gitlab.com/-/project/56341767/uploads/f585b28f88876db211f116d1d622031d/mbcp_login.png?git1|g' @@ -123,49 +121,49 @@ do sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/module/onboarding/welcome/welcom_img_demoImage04.png|https://gitlab.com/-/project/56341767/uploads/76f1288713391966cfc750388f7f47b2/classic4.png?ref=mbcpappgit1|g' sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/module/onboarding/welcome/welcom_img_demoImage05.png|https://gitlab.com/-/project/56341767/uploads/b9063205666549f28fc6c9c0c99e2336/classic5.png?ref=mbcpappgit1|g' - } - echo "Patch applied by MBCPApp Patcher on $(uname -s -r) with commit : $(git rev-parse --short HEAD) at $(date)." > "mbapk/mbapk_unpacked/root/assets/mbcp_info/mbclassic_theme.inf" - good 'Applied [MBCP MBClassic] theme.' + } + echo "Patch applied by MBCPApp Patcher on $(uname -s -r) with commit : $(git rev-parse --short HEAD) at $(date)." >"mbapk/mbapk_unpacked/root/assets/mbcp_info/mbclassic_theme.inf" + good 'Applied [MBCP MBClassic] theme.' ;; - 'Noel 2024') - info "Ensure that SemiPriority theme is not applied before this !" - info "Otherwise it will have like mixed SemiPriority and MB Classic theme, You've been warned !!! " - cp -f 'blob_patches/noel/a_background_image.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/bill_background_gold.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/coreBanking_img_successBackground.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/general_bg_screenshot.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/general_bg_success.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/homeLanding_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/loading_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/login_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/qr_img_ThemeDefalut.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - # New trungthu - cp -f 'blob_patches/noel/a_background_image.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' - cp -f 'blob_patches/noel/bill_background_gold.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' - cp -f 'blob_patches/noel/coreBanking_img_successBackground.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' - cp -f 'blob_patches/noel/general_bg_screenshot.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' - cp -f 'blob_patches/noel/general_bg_success.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' - cp -f 'blob_patches/noel/homeLanding_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' - cp -f 'blob_patches/noel/loading_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' - cp -f 'blob_patches/noel/login_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' - cp -f 'blob_patches/noel/qr_img_ThemeDefalut.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' + 'Noel 2024') + info "Ensure that SemiPriority theme is not applied before this !" + info "Otherwise it will have like mixed SemiPriority and MB Classic theme, You've been warned !!! " + cp -f 'blob_patches/noel/a_background_image.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/bill_background_gold.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/coreBanking_img_successBackground.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/general_bg_screenshot.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/general_bg_success.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/homeLanding_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/loading_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/login_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/qr_img_ThemeDefalut.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + # New trungthu + cp -f 'blob_patches/noel/a_background_image.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' + cp -f 'blob_patches/noel/bill_background_gold.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' + cp -f 'blob_patches/noel/coreBanking_img_successBackground.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' + cp -f 'blob_patches/noel/general_bg_screenshot.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' + cp -f 'blob_patches/noel/general_bg_success.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' + cp -f 'blob_patches/noel/homeLanding_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' + cp -f 'blob_patches/noel/loading_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' + cp -f 'blob_patches/noel/login_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' + cp -f 'blob_patches/noel/qr_img_ThemeDefalut.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' - ############## - cp -f 'blob_patches/noel/a_background_image.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/bill_background_gold.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/coreBanking_img_successBackground.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/general_bg_screenshot.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/general_bg_success.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/homeLanding_bg_main.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/loading_bg_main.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/login_bg_main.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/qr_img_ThemeDefalut.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - # Change theme preview - cp -f 'blob_patches/noel/customUI_img_classicMode.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'blob_patches/noel/customUI_img_classicMode.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + ############## + cp -f 'blob_patches/noel/a_background_image.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/bill_background_gold.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/coreBanking_img_successBackground.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/general_bg_screenshot.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/general_bg_success.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/homeLanding_bg_main.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/loading_bg_main.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/login_bg_main.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/qr_img_ThemeDefalut.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + # Change theme preview + cp -f 'blob_patches/noel/customUI_img_classicMode.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/customUI_img_classicMode.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base' - cat mbapk/mbapk_unpacked/root/lib/arm64-v8a/libapp.so | grep -a -oH filestatic > /dev/null 2>&1 && noel2024lib - noel2024lib() { + cat mbapk/mbapk_unpacked/root/lib/arm64-v8a/libapp.so | grep -a -oH filestatic >/dev/null 2>&1 && noel2024lib + noel2024lib() { # Lockdown ability to change other theme, also force Noel 2024 theme sed_libapp 's|theme|Noel |g' @@ -185,33 +183,44 @@ do sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/module/onboarding/welcome/welcom_img_demoImage05.png|https://gitlab.com/-/project/56341767/uploads/2d78975896a9f640d1f1e5af06fd1922/noel5.png?ref=mbcpappgit1234|g' warn "You WON'T be able to use other theme than Noel 2024 on app !" - } - echo "Patch applied by MBCPApp Patcher on $(uname -s -r) with commit : $(git rev-parse --short HEAD) at $(date)." > "mbapk/mbapk_unpacked/root/assets/mbcp_info/noel2024_theme.inf" - good "Applied [Noel 2024] theme." -;; - 'Tre trung') - info "Applying..." - cp -f 'blob_patches/tretrung_theme/login_img_notification.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel/' - cp -f 'blob_patches/tretrung_theme/login_img_highlightElement.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' - cp -f 'blob_patches/tretrung_theme/login_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' - cp -f 'blob_patches/tretrung_theme/login_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel/loading_bg_main.webp' - cp -f 'blob_patches/tretrung_theme/login_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel/qr_img_ThemeDefalut.webp' + } + echo "Patch applied by MBCPApp Patcher on $(uname -s -r) with commit : $(git rev-parse --short HEAD) at $(date)." >"mbapk/mbapk_unpacked/root/assets/mbcp_info/noel2024_theme.inf" + good "Applied [Noel 2024] theme." + ;; + 'Tre trung') + info "Applying..." + cp -f 'blob_patches/tretrung_theme/login_img_notification.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel/' + cp -f 'blob_patches/tretrung_theme/login_img_highlightElement.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' + cp -f 'blob_patches/tretrung_theme/login_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' + cp -f 'blob_patches/tretrung_theme/login_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel/loading_bg_main.webp' + cp -f 'blob_patches/tretrung_theme/login_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel/qr_img_ThemeDefalut.webp' - rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel/customUI_img_noelMode.webp' - rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel/a_logo_img_addon.webp' + rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel/customUI_img_noelMode.webp' + rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel/a_logo_img_addon.webp' - cp -f 'blob_patches/tretrung_theme/homeLanding_img_PFM.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' - cp -f 'blob_patches/tretrung_theme/homeLanding_img_assetsReport.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' - cp -f 'blob_patches/tretrung_theme/homeLanding_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' - cp -f 'blob_patches/tretrung_theme/general_bg_success.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' - cp -f 'blob_patches/tretrung_theme/general_bg_success.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel/coreBanking_img_successBackground.webp' - cp -f 'blob_patches/tretrung_theme/general_bg_success.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel/bill_background_gold.webp' - cp -f 'blob_patches/tretrung_theme/general_bg_screenshot.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' - cp -f 'blob_patches/tretrung_theme/cardService_img_cardMKT.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' - cp -f 'blob_patches/tretrung_theme/cardService_bg_cardMKT.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' - cp -f 'blob_patches/tretrung_theme/a_background_image.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' + cp -f 'blob_patches/tretrung_theme/homeLanding_img_PFM.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' + cp -f 'blob_patches/tretrung_theme/homeLanding_img_assetsReport.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' + cp -f 'blob_patches/tretrung_theme/homeLanding_bg_main.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' + cp -f 'blob_patches/tretrung_theme/general_bg_success.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' + cp -f 'blob_patches/tretrung_theme/general_bg_success.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel/coreBanking_img_successBackground.webp' + cp -f 'blob_patches/tretrung_theme/general_bg_success.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel/bill_background_gold.webp' + cp -f 'blob_patches/tretrung_theme/general_bg_screenshot.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' + cp -f 'blob_patches/tretrung_theme/cardService_img_cardMKT.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' + cp -f 'blob_patches/tretrung_theme/cardService_bg_cardMKT.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' + cp -f 'blob_patches/tretrung_theme/a_background_image.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' ;; - 'Exit') exit ;; + 'Viet Nam') + [ ! -d "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/tetbinhngo ] && err "This theme is only suitable for app with [tetbinhngo] theme. Current unpacked app does not have it!" && exit 1 + info "Applying..." + rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/tetbinhngo/*.webp + rm -rf "$DIRPATH"/tmpvn + mkdir "$DIRPATH"/tmpvn + git clone https://git.disroot.org/mbcp/mb-flutter-themes "$DIRPATH"/tmpvn + mv tmpvn/mbstore_theme_original/tuhaovietnam/e0050e73-fc22-4ca8-b1eb-6672ab948c01/images/*.png "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/tetbinhngo/ + rm -rf tmpvn + rename png webp "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/tetbinhngo/*.png + ;; + 'Exit') exit ;; esac done From 7556b36538b1ed0ba5b3182c166ef71f7bdc2d62 Mon Sep 17 00:00:00 2001 From: Cuynu Date: Thu, 5 Mar 2026 00:05:54 +0700 Subject: [PATCH 07/24] feat: patches(remove_bulitin_fonts): also remove `font` folder not used by anything i guess Signed-off-by: Cuynu --- MBCPApp/patches/remove_bulitin_fonts.sh | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/MBCPApp/patches/remove_bulitin_fonts.sh b/MBCPApp/patches/remove_bulitin_fonts.sh index da87b39..1560629 100644 --- a/MBCPApp/patches/remove_bulitin_fonts.sh +++ b/MBCPApp/patches/remove_bulitin_fonts.sh @@ -27,6 +27,7 @@ rm -f 'mbapk/mbapk_unpacked/resources/package_1/res/font/bold.ttf' rm -f 'mbapk/mbapk_unpacked/resources/package_1/res/font/medium.ttf' rm -f 'mbapk/mbapk_unpacked/resources/package_1/res/font/regular.ttf' rm -f 'mbapk/mbapk_unpacked/root/assets/insider.ttf' +rm -rf 'mbapk/mbapk_unpacked/root/assets/font' # Placeholder font to fix display issues when open details balance notifications info "Creating placeholder font..." touch 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/fonts/AvertaStdCY-Regular.otf' @@ -43,8 +44,3 @@ rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/packages/market_place/ass rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/packages/market_place/assets/fonts/AvertaStdCY-Regular.ttf' rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/packages/market_place/assets/fonts/AvertaStdCy-Semibold.ttf' rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/packages/market_place/assets/fonts/Montserrat-Medium.ttf' - - - - - From 11e19aac60a1939b4d5be7542ea5b586807c409c Mon Sep 17 00:00:00 2001 From: Cuynu Date: Thu, 5 Mar 2026 00:12:00 +0700 Subject: [PATCH 08/24] feat: patches(spoof_appver): spoof v6.4.90 Signed-off-by: Cuynu --- MBCPApp/patches/spoof_appver.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/MBCPApp/patches/spoof_appver.sh b/MBCPApp/patches/spoof_appver.sh index c8b9293..6dfe49c 100644 --- a/MBCPApp/patches/spoof_appver.sh +++ b/MBCPApp/patches/spoof_appver.sh @@ -1,15 +1,19 @@ #!/usr/bin/env bash # PATCHNAME: Spoof app version to 698 -# MAXVER: 6.4.67 +# MAXVER: 6.4.89 # MINVER: # shellcheck disable=SC1091 . "$DIRPATH"/common.sh info "Spoofing app version..." + +# Temp spoof only +sed -i 's|6.4.90|6.4.90_mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|727|2000|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' + sed -i 's|v6.4.66|v6.4.68|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|v6.4.65|v6.4.68|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|v6.4.64|v6.4.68|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|692|698|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|691|698|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|689|698|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' - From bc542caa0f965193ec442e77b3b4cf2865969cff Mon Sep 17 00:00:00 2001 From: Cuynu Date: Thu, 5 Mar 2026 00:28:50 +0700 Subject: [PATCH 09/24] feat: mbcpapp.sh: bump apktool to `3.0.1` Signed-off-by: Cuynu --- .../customvtap/custom_vtapdialog_activity.xml | 4 +- .../resources/strings/strings.xml | 15 +- MBCPApp/mbcpapp.sh | 425 +++++++++--------- 3 files changed, 226 insertions(+), 218 deletions(-) diff --git a/MBCPApp/blob_patches/customvtap/custom_vtapdialog_activity.xml b/MBCPApp/blob_patches/customvtap/custom_vtapdialog_activity.xml index 66ffe99..c6e0817 100644 --- a/MBCPApp/blob_patches/customvtap/custom_vtapdialog_activity.xml +++ b/MBCPApp/blob_patches/customvtap/custom_vtapdialog_activity.xml @@ -47,7 +47,7 @@ android:visibility="visible" android:layout_width="fill_parent" android:layout_height="wrap_content" - android:text="TRONG TRƯỜNG HỢP ĐÃ LÀM ĐÚNG TẤT CẢ, CHỤP MÀN HÌNH NÀY VÀ BÁO LỖI QUA Telegram @cuynuz hoặc YouTube @cuynu !!!" /> + android:text="TRONG TRƯỜNG HỢP ĐÃ LÀM ĐÚNG TẤT CẢ, CHỤP MÀN HÌNH NÀY VÀ BÁO LỖI QUA Telegram @cuynuchat hoặc YouTube @cuynu !!!" />