From 775c56473e3aae8bedb88b90ad719a8df3324d02 Mon Sep 17 00:00:00 2001 From: Cuynu Date: Sat, 7 Feb 2026 23:44:00 +0700 Subject: [PATCH 01/32] readme: fetch badges from disroot repo & gitlab notice Signed-off-by: Cuynu --- README.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 9e40e08..e4dc107 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,14 @@ Lightweight **AI-free, human-written** open source tool for patching MB Bank (Android) app with Flutter framework (v6.4.0+) for rooted users (or ROMs with bulit-in CorePatch). primarily written in Bash, made possible by @cuynu and community in Vietnam. -Gitea Release +Gitea Release -Gitea Issues +Gitea Issues -Gitea language count +Gitea language count - If you are looking pre-bulit app, here : [MBCP Releases](/mbcp/mbbpatch/releases) | [Install guide](/mbcp/info_en/wiki/mbcpinstall) +- Coming from GitLab? Go to the main location here to avoid link errors : [Disroot](https://git.disroot.org/mbcp/mbbpatch) | [Selfhost](http://cuynutt.ddns.net/mbcp/mbbpatch) - Project FAQ : [Read here](/mbcp/info_en/wiki/faq) - Licensed as MIT License. From 97f401cf2c562bb4ad1f6b38d361e540115c9e04 Mon Sep 17 00:00:00 2001 From: fukiame Date: Sat, 7 Feb 2026 22:42:15 +0700 Subject: [PATCH 02/32] fix: patches: *.sh: kill all trailing whitespaces sed -i 's/[ \t]*$//' * Signed-off-by: fukiame --- MBCPApp/patches/add_verified_badge.sh | 2 +- MBCPApp/patches/autopatch_strings.sh | 22 ++++++++--------- MBCPApp/patches/better_custombgscreen.sh | 2 +- MBCPApp/patches/bypass_checksum.sh | 6 ++--- MBCPApp/patches/change_app_logo.sh | 2 +- MBCPApp/patches/custom_vtapscreen.sh | 4 ++-- MBCPApp/patches/disable_membership.sh | 2 +- MBCPApp/patches/fix_tian37.sh | 4 ++-- .../hide_vtap_root_detection_activity.sh | 18 +++++++------- MBCPApp/patches/legacy_hide_vtap.sh | 2 +- MBCPApp/patches/modify_app_theme.sh | 24 +++++++++---------- MBCPApp/patches/remove_banner_miniapp.sh | 2 +- MBCPApp/patches/remove_bulitin_fonts.sh | 4 ++-- MBCPApp/patches/remove_custompfp.sh | 2 +- MBCPApp/patches/remove_embee.sh | 6 ++--- MBCPApp/patches/remove_invoke_to_mbshield.sh | 4 ++-- MBCPApp/patches/remove_mbai.sh | 4 ++-- MBCPApp/patches/remove_new_zimperium_check.sh | 14 +++++------ MBCPApp/patches/remove_useless_lib.sh | 2 +- MBCPApp/patches/restore_old_lib_682.sh | 14 +++++------ MBCPApp/patches/spoof_appver.sh | 2 +- MBCPApp/patches/widget_dark.sh | 2 +- 22 files changed, 72 insertions(+), 72 deletions(-) diff --git a/MBCPApp/patches/add_verified_badge.sh b/MBCPApp/patches/add_verified_badge.sh index 3c0dee3..e900978 100644 --- a/MBCPApp/patches/add_verified_badge.sh +++ b/MBCPApp/patches/add_verified_badge.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # PATCHNAME: Add verified badge # MAXVER: -# MINVER: +# MINVER: # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/autopatch_strings.sh b/MBCPApp/patches/autopatch_strings.sh index 8894c34..bb0cac3 100644 --- a/MBCPApp/patches/autopatch_strings.sh +++ b/MBCPApp/patches/autopatch_strings.sh @@ -46,7 +46,7 @@ sed_libapp 's|To provide the best experience, the MBBank APP needs access to som # QR on "Other" sed_libapp 's|QR receive|My QR |g' -# Digital OTP related +# Digital OTP related sed_libapp 's|To use transaction authentication feature with Online OTP, please signin APP MB Bank and implement Online OTP registration in the Installation item|DigitalOTP is not currently registered on your MBCP app. In order to use this feature, please login to MBCP and setup DigitalOTP, then try again. |' sed_libapp 's|When transacting via Internet banking or registering Online OTP on other device|Used for transactions via eMB or when registering DigitalOTP on other device |' sed_libapp 's|online OTP|DigitalOTP|g' @@ -101,18 +101,18 @@ sed_libapp 's|You want to send a gift for the occasion?|You want to send a gift sed_libapp 's|Intruction|How-to |g' sed_libapp 's|MBBank will send the withdrawal verification code to the APP instead of SMS on the phone.|MB Bank will send the withdrawal verification code to MBCPApp instead of SMS as before. |' -# Latest version check +# Latest version check sed_libapp 's|The lastest version|TG/Disroot:mbbpatch|' -# Profile section +# Profile section sed_libapp 's|User profile|View profile|g' sed_libapp 's|MB Membership Package|MB Membership |' sed_libapp 's|email information|Email information|g' -# Account related +# Account related sed_libapp 's|Premium Account Number|Open new lucky account|' -# Cashback 150K badge (unused on v6.4.62+) +# Cashback 150K badge (unused on v6.4.62+) sed_libapp 's|Cashback 150K| |' # Forgot password screen @@ -120,7 +120,7 @@ sed_libapp 's|Request for supplying password|Request for new password |' sed_libapp 's|ID card/ID card|Old/New ID card|g' sed_libapp 's|Number of document|Number of ID card |g' -# Wrong password dialog +# Wrong password dialog sed_libapp 's|Your device will be locked if you enter incorrectly more than 5 times. Please try again or select the "Forgot password" feature to be reissued.|Your account will be locked if you enter incorrect password more than 5 times. Please try again or use the "Forgot password" feature to reset. |' # Others section on MB @@ -138,7 +138,7 @@ sed_libapp 's|Please come back later for more new themes!|Tips: Unofficial theme sed_libapp 's|Change theme successfully|App theme changed :) |' sed_libapp 's|Change theme|Store themes|' -# Balance fluctuations notifications (Configuration -> Balance fluctuations notifications) +# Balance fluctuations notifications (Configuration -> Balance fluctuations notifications) sed_libapp 's|get notifications|Get notifications|g' sed_libapp 's|Read the announcement|Notify with voice |' @@ -155,7 +155,7 @@ sed_libapp 's|Start journey|Alright ! |' sed_libapp 's|Go here to install the app|MBCPApp settings are here |' -# EKYC error dialog +# EKYC error dialog sed_libapp 's|Verification information is invalid, please contact hotline 1900545426 for support|EKYC failed, please go to Telegram group (@mbbpatch_eng) for details and help !!! |' # XPE002/XPE003 dialog : @@ -190,7 +190,7 @@ sed_libapp 's|Zalo Pay|ZolaPay |' sed_libapp 's|MB membership|MB Membership|g' # Explore strings (homeLanding -> More -> Discovery) -sed_libapp 's|New release|Features |g' +sed_libapp 's|New release|Features |g' sed_libapp 's|Challenge to receive gifts|Others |g' # Close account hints (homeLanding -> Total balance VND -> See -> Close account) @@ -198,7 +198,7 @@ sed_libapp 's|MB will Autoally transfer the entire remaining balance to the acco # Expired login session dialog sed_libapp 's|The login session expired. Please login again|Login session are expired. Please login again|' -# Confirm button on dialog +# Confirm button on dialog sed_libapp 's|I understand|OKAY |g' # Exit application dialog @@ -239,7 +239,7 @@ sed_libapp 's|AI Suggestion|MB Suggestion|' sed_libapp 's|Quick transfer using AI|Quick transfer |' -# Placeholder toolbox +# Placeholder toolbox sed_libapp 's|Shopping, entertainment|MBCPApp Toolbox |' diff --git a/MBCPApp/patches/better_custombgscreen.sh b/MBCPApp/patches/better_custombgscreen.sh index 7c3088d..b612c24 100644 --- a/MBCPApp/patches/better_custombgscreen.sh +++ b/MBCPApp/patches/better_custombgscreen.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Better custom background screen -# MAXVER: +# MAXVER: # MINVER: 83 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/bypass_checksum.sh b/MBCPApp/patches/bypass_checksum.sh index a6745ee..107df90 100644 --- a/MBCPApp/patches/bypass_checksum.sh +++ b/MBCPApp/patches/bypass_checksum.sh @@ -18,11 +18,11 @@ fi info "Extracting [app-debug.apk]..." unzip -o 'tools/bypass/app-debug.apk' -d 'tools/bypass' -mv 'tools/bypass/lib/arm64-v8a/libSignatureKiller.so' 'tools/bypass/lib/arm64-v8a/libmodft3.so' +mv 'tools/bypass/lib/arm64-v8a/libSignatureKiller.so' 'tools/bypass/lib/arm64-v8a/libmodft3.so' mv 'tools/bypass/lib/armeabi-v7a/libSignatureKiller.so' 'tools/bypass/lib/armeabi-v7a/libmodft3.so' info "Moving libraries..." -mv 'tools/bypass/lib/arm64-v8a/libmodft3.so' 'mbapk/mbapk_unpacked/root/lib/arm64-v8a' -mv 'tools/bypass/lib/armeabi-v7a/libmodft3.so' 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a' +mv 'tools/bypass/lib/arm64-v8a/libmodft3.so' 'mbapk/mbapk_unpacked/root/lib/arm64-v8a' +mv 'tools/bypass/lib/armeabi-v7a/libmodft3.so' 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a' mv 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libapp.so' 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libmbcp.so' mv 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libapp.so' 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libmbcp.so' diff --git a/MBCPApp/patches/change_app_logo.sh b/MBCPApp/patches/change_app_logo.sh index 93c2f07..15dd607 100644 --- a/MBCPApp/patches/change_app_logo.sh +++ b/MBCPApp/patches/change_app_logo.sh @@ -27,7 +27,7 @@ do rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/resources/package_1/res/mipmap-xhdpi rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/resources/package_1/res/mipmap-xxhdpi rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/resources/package_1/res/mipmap-xxxhdpi - + info 'Copying new logos to [mbapk_unpacked/res]...' cp -r -f "$DIRPATH"/mbcpicons/"$variant"/mipmap-hdpi mbapk/mbapk_unpacked/resources/package_1/res cp -r -f "$DIRPATH"/mbcpicons/"$variant"/mipmap-mdpi mbapk/mbapk_unpacked/resources/package_1/res diff --git a/MBCPApp/patches/custom_vtapscreen.sh b/MBCPApp/patches/custom_vtapscreen.sh index efdcaff..1267751 100644 --- a/MBCPApp/patches/custom_vtapscreen.sh +++ b/MBCPApp/patches/custom_vtapscreen.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# PATCHNAME: Custom VTAP screen -# MAXVER: +# PATCHNAME: Custom VTAP screen +# MAXVER: # MINVER: 52 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/disable_membership.sh b/MBCPApp/patches/disable_membership.sh index 06ddedd..bfd0d38 100644 --- a/MBCPApp/patches/disable_membership.sh +++ b/MBCPApp/patches/disable_membership.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# PATCHNAME: Disable MB Membership +# PATCHNAME: Disable MB Membership # MAXVER: 67 # MINVER: # shellcheck disable=SC1091 diff --git a/MBCPApp/patches/fix_tian37.sh b/MBCPApp/patches/fix_tian37.sh index ac4b2d5..3d24b8b 100644 --- a/MBCPApp/patches/fix_tian37.sh +++ b/MBCPApp/patches/fix_tian37.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash -# PATCHNAME: Tian37 Fix -# MAXVER: +# PATCHNAME: Tian37 Fix +# MAXVER: # MINVER: 85 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/hide_vtap_root_detection_activity.sh b/MBCPApp/patches/hide_vtap_root_detection_activity.sh index c6b135c..39e2e99 100644 --- a/MBCPApp/patches/hide_vtap_root_detection_activity.sh +++ b/MBCPApp/patches/hide_vtap_root_detection_activity.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Hide VTAP root detection activity & dialog -# MAXVER: +# MAXVER: # MINVER: # shellcheck disable=SC1091,SC2016 . "$DIRPATH"/common.sh @@ -9,26 +9,26 @@ 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' + 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 + 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/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' -else +else 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/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 @@ -37,5 +37,5 @@ 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 + exit 1 fi diff --git a/MBCPApp/patches/legacy_hide_vtap.sh b/MBCPApp/patches/legacy_hide_vtap.sh index 489cbae..131fd1a 100644 --- a/MBCPApp/patches/legacy_hide_vtap.sh +++ b/MBCPApp/patches/legacy_hide_vtap.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Legacy hide VTAP activity & dialog -# MAXVER: +# MAXVER: # MINVER: # shellcheck disable=SC1091,SC2016 diff --git a/MBCPApp/patches/modify_app_theme.sh b/MBCPApp/patches/modify_app_theme.sh index 3c29f77..4742e10 100644 --- a/MBCPApp/patches/modify_app_theme.sh +++ b/MBCPApp/patches/modify_app_theme.sh @@ -21,8 +21,8 @@ do 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 + + 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...' @@ -64,12 +64,12 @@ do cp -f 'blob_patches/trungthu_theme/bill_background_gold.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' cp -f 'blob_patches/trungthu_theme/coreBanking_img_successBackground.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' cp -f 'blob_patches/trungthu_theme/qr_img_ThemeDefalut.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/trungthu' - + rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/onboarding/onboarding_illus_a80.webp' rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/onboarding/onboarding_img_a80Banner.webp' 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 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' @@ -78,7 +78,7 @@ do 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." @@ -92,7 +92,7 @@ do 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() { # Modify theme preview on settings @@ -100,15 +100,15 @@ do 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' - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_thumbnailClassic.png|https://gitlab.com/-/project/56341767/uploads/ba4f0923a4956ba379868e01c55e9cfb/thumb.png?aaaaaaa|g' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_thumbnailClassic.png|https://gitlab.com/-/project/56341767/uploads/ba4f0923a4956ba379868e01c55e9cfb/thumb.png?aaaaaaa|g' sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_thumbnailClassic.png|https://gitlab.com/-/project/56341767/uploads/ba4f0923a4956ba379868e01c55e9cfb/thumb.png?aaaaaaa|g' sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenHomeClassic.png|https://gitlab.com/-/project/56341767/uploads/1d7fcf300167e87440220a6f0d28b8c1/mbcp_lobby.png?aaa|g' - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenHomeClassic.png|https://gitlab.com/-/project/56341767/uploads/1d7fcf300167e87440220a6f0d28b8c1/mbcp_lobby.png?aaa|g' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenHomeClassic.png|https://gitlab.com/-/project/56341767/uploads/1d7fcf300167e87440220a6f0d28b8c1/mbcp_lobby.png?aaa|g' - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenSuccessClassic.png|https://gitlab.com/-/project/56341767/uploads/d94e257eb6cf59865016a939541c32fc/mbcp_transfer.png?aaa|g' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenSuccessClassic.png|https://gitlab.com/-/project/56341767/uploads/d94e257eb6cf59865016a939541c32fc/mbcp_transfer.png?aaa|g' sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenSuccessClassic.png|https://gitlab.com/-/project/56341767/uploads/d94e257eb6cf59865016a939541c32fc/mbcp_transfer.png?aaa|g' @@ -166,7 +166,7 @@ do 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' sed_libapp 's|theme|Noel |g' @@ -175,7 +175,7 @@ do sed_libapp 's|Change Noel |Noel 2024 |g' # Modify the demo screen 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/bab657a5c0a9d0c4e0f7ddd5ba5772e9/noel1.png?ref=mbcpappgit1234|g' - + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/module/onboarding/welcome/welcom_img_demoImage02.png|https://gitlab.com/-/project/56341767/uploads/8314efa7352360a84df8ec8315ee587b/noel2.png?ref=mbcpappgit1234|g' sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/module/onboarding/welcome/welcom_img_demoImage03.png|https://gitlab.com/-/project/56341767/uploads/f05f1e2fc54d24d99504141d65a107e8/noel3.png?ref=mbcpappgit1234|g' @@ -196,7 +196,7 @@ do 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' diff --git a/MBCPApp/patches/remove_banner_miniapp.sh b/MBCPApp/patches/remove_banner_miniapp.sh index 57b23e8..a0b59de 100644 --- a/MBCPApp/patches/remove_banner_miniapp.sh +++ b/MBCPApp/patches/remove_banner_miniapp.sh @@ -37,7 +37,7 @@ rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/pri rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority/khien_img_muasam.webp' rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority/khien_img_offline.webp' -# +# rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/banner_transfer_mass.webp' rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/banner_transfer_private.webp' rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/recap_banner.webp' diff --git a/MBCPApp/patches/remove_bulitin_fonts.sh b/MBCPApp/patches/remove_bulitin_fonts.sh index 9c4cc88..da87b39 100644 --- a/MBCPApp/patches/remove_bulitin_fonts.sh +++ b/MBCPApp/patches/remove_bulitin_fonts.sh @@ -27,9 +27,9 @@ 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' -# Placeholder font to fix display issues when open details balance notifications +# 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' +touch 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/fonts/AvertaStdCY-Regular.otf' # Placeholder to prevent compiling resource fail touch 'mbapk/mbapk_unpacked/resources/package_1/res/font/avenir_next_bold.ttf' info 'Copying fix fonts...' diff --git a/MBCPApp/patches/remove_custompfp.sh b/MBCPApp/patches/remove_custompfp.sh index 8cc6ddf..7649ee9 100644 --- a/MBCPApp/patches/remove_custompfp.sh +++ b/MBCPApp/patches/remove_custompfp.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# PATCHNAME: Remove custom profile picture +# PATCHNAME: Remove custom profile picture # MAXVER: 67 # MINVER: # shellcheck disable=SC1091 diff --git a/MBCPApp/patches/remove_embee.sh b/MBCPApp/patches/remove_embee.sh index 1990d75..bf8ab39 100644 --- a/MBCPApp/patches/remove_embee.sh +++ b/MBCPApp/patches/remove_embee.sh @@ -19,8 +19,8 @@ rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/bas # Priority support rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_page.webp' rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_header.webp' -rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_login.webp' -# Private support +rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_login.webp' +# Private support rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_page.private.webp' rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_login.private.webp' rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_header.private.webp' @@ -31,6 +31,6 @@ rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/bas # Private support rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_loginSupport.private.webp' rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_loginSupport.webp' -# Priority support +# Priority support rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_headerNew.webp' rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_loginSupport.webp' diff --git a/MBCPApp/patches/remove_invoke_to_mbshield.sh b/MBCPApp/patches/remove_invoke_to_mbshield.sh index 5db9403..5e6df42 100644 --- a/MBCPApp/patches/remove_invoke_to_mbshield.sh +++ b/MBCPApp/patches/remove_invoke_to_mbshield.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Remove invoke to mbshield -# MAXVER: +# MAXVER: # MINVER: 21 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh @@ -21,7 +21,7 @@ done else warn "Flutter not found on classes4, ignoring..." fi - + # Newer dex location (found on v6.4.82+, might present since v6.4.70+) if [[ -f mbapk/mbapk_unpacked/smali/classes3/io/flutter/plugins/MainActivity.smali ]]; then info "Flutter found on classes3 !!" diff --git a/MBCPApp/patches/remove_mbai.sh b/MBCPApp/patches/remove_mbai.sh index 4b0b48b..da73494 100644 --- a/MBCPApp/patches/remove_mbai.sh +++ b/MBCPApp/patches/remove_mbai.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Remove MB AI Bullsh*t resources -# MAXVER: +# MAXVER: # MINVER: 73 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh @@ -21,7 +21,7 @@ rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/ba rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/mbai_img_search.webp' rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/coreBanking_illus_p2p.webp' rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/coreBanking_illus_p2p.private.webp' -# Tet binh ngo +# Tet binh ngo rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/tetbinhngo/coreBanking_illus_p2p.webp' diff --git a/MBCPApp/patches/remove_new_zimperium_check.sh b/MBCPApp/patches/remove_new_zimperium_check.sh index 12b3794..23c6b8c 100644 --- a/MBCPApp/patches/remove_new_zimperium_check.sh +++ b/MBCPApp/patches/remove_new_zimperium_check.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Remove new zimperium check -# MAXVER: +# MAXVER: # MINVER: 59 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh @@ -22,7 +22,7 @@ sed -i 's|designersactivists |weneedfreedom|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes/androidx/UnderlyingVcl.smali # Adapt with v6.4.66 sed -i 's|estimateddistributions |weneedfreedom|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes/androidx/UnderlyingVcl.smali -else +else warn "[UnderlyingVcl.smali] not found! skipping" fi # Adapt with v6.4.67+ @@ -70,12 +70,12 @@ fi cp 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libweneedfreedom.so' 'temp/' mv 'temp/libweneedfreedom.so' 'temp/libdesignersactivists.so' cp -f 'temp/libdesignersactivists.so' 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libdesignersactivists.so' - rm -rf temp + rm -rf temp mkdir temp cp 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libweneedfreedom.so' 'temp/' mv 'temp/libweneedfreedom.so' 'temp/libdesignersactivists.so' cp -f 'temp/libdesignersactivists.so' 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libdesignersactivists.so' - rm -rf temp + rm -rf temp else warn "[libdesignersactivists.so] not found! skipping" fi @@ -171,6 +171,6 @@ fi # Fixes EKYC3002-MS6998 (DF16246.6) error on devices with randomized apps info "Patching [AndroidManifest.xml]" sed -i 's|||g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' - - - + + + diff --git a/MBCPApp/patches/remove_useless_lib.sh b/MBCPApp/patches/remove_useless_lib.sh index 8e50731..2890f89 100644 --- a/MBCPApp/patches/remove_useless_lib.sh +++ b/MBCPApp/patches/remove_useless_lib.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Remove useless libraries -# MAXVER: +# MAXVER: # MINVER: 68 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/restore_old_lib_682.sh b/MBCPApp/patches/restore_old_lib_682.sh index 43a6dd8..743ce09 100644 --- a/MBCPApp/patches/restore_old_lib_682.sh +++ b/MBCPApp/patches/restore_old_lib_682.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# PATCHNAME: Restore old 682 lib +# PATCHNAME: Restore old 682 lib # MAXVER: 63 # MINVER: 61 # shellcheck disable=SC1091 @@ -10,13 +10,13 @@ echo "Downloading v6.4.61 apks..." wget https://github.com/kongu2k8-svg/mbapk/releases/download/mb/embee_v6.4.61_682_arm64-v8a_armeabi-v7a.apks -q --show-progress mv *.apks old682/ echo "Unpacking..." -java -jar tools/apkeditor.jar m -i old682/*.apks +java -jar tools/apkeditor.jar m -i old682/*.apks java -jar tools/apktool.jar d old682/*.apk -o old682/unpacked -j$(nproc) -mv old682/unpacked/lib/arm64-v8a/libapp.so mbapk/mbapk_unpacked/root/lib/arm64-v8a/ -mv old682/unpacked/lib/armeabi-v7a/libapp.so mbapk/mbapk_unpacked/root/lib/armeabi-v7a/ -mv old682/unpacked/lib/arm64-v8a/libflutter.so mbapk/mbapk_unpacked/root/lib/arm64-v8a/ -mv old682/unpacked/lib/armeabi-v7a/libflutter.so mbapk/mbapk_unpacked/root/lib/armeabi-v7a/ -echo "Cleaning..." +mv old682/unpacked/lib/arm64-v8a/libapp.so mbapk/mbapk_unpacked/root/lib/arm64-v8a/ +mv old682/unpacked/lib/armeabi-v7a/libapp.so mbapk/mbapk_unpacked/root/lib/armeabi-v7a/ +mv old682/unpacked/lib/arm64-v8a/libflutter.so mbapk/mbapk_unpacked/root/lib/arm64-v8a/ +mv old682/unpacked/lib/armeabi-v7a/libflutter.so mbapk/mbapk_unpacked/root/lib/armeabi-v7a/ +echo "Cleaning..." rm -rf old682 echo "WARNING : Any changes to [libapp.so] like Autopatch strings are reverted, please apply again if you want to !" diff --git a/MBCPApp/patches/spoof_appver.sh b/MBCPApp/patches/spoof_appver.sh index c0969d7..f309561 100644 --- a/MBCPApp/patches/spoof_appver.sh +++ b/MBCPApp/patches/spoof_appver.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # PATCHNAME: Spoof app version to 698 # MAXVER: 67 -# MINVER: +# MINVER: # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/widget_dark.sh b/MBCPApp/patches/widget_dark.sh index 67eecb2..56d5bfe 100644 --- a/MBCPApp/patches/widget_dark.sh +++ b/MBCPApp/patches/widget_dark.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# PATCHNAME: Change widget background to dark +# PATCHNAME: Change widget background to dark # MAXVER: # MINVER: # shellcheck disable=SC1091 From 9641de80e30b87e7ecf87aae1fdd423d110298d3 Mon Sep 17 00:00:00 2001 From: Cuynu Date: Sun, 8 Feb 2026 00:48:49 +0700 Subject: [PATCH 03/32] feat: notice with extract assets for v6.4.86+ find `libvcm1.so` because it only exists as of v6.4.86+ not effective ig Signed-off-by: Cuynu --- MBCPApp/common.sh | 8 ++++++++ MBCPApp/mbcpapp.sh | 1 + 2 files changed, 9 insertions(+) diff --git a/MBCPApp/common.sh b/MBCPApp/common.sh index 945a3ae..0f68c19 100644 --- a/MBCPApp/common.sh +++ b/MBCPApp/common.sh @@ -106,6 +106,14 @@ iszdefend() { fi } +isvcm1() { + if [[ -f mbapk/mbapk_unpacked/root/lib/arm64-v8a/libvcm1.so ]]; then + warn "As of v6.4.86+, to extract assets, you need to clear app data and then open the app again!" + else + info "[libvcm1.so] not found! ignoring notice" + fi +} + manifest_remove() { sed -i "/$1/d" "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml && \ info "[manifest_remove] removing $1" || \ diff --git a/MBCPApp/mbcpapp.sh b/MBCPApp/mbcpapp.sh index d06507d..8cf89a1 100755 --- a/MBCPApp/mbcpapp.sh +++ b/MBCPApp/mbcpapp.sh @@ -291,6 +291,7 @@ do 'MBShield Check' ) check_mbshield ;; 'Convert apks to apk' ) convert_apks ;; 'Extract assets [ROOT]' ) + isvcm1 iszdefend info 'To extract encrypted assets [if current app has MBShield protection] you need rooted device' info 'And trigger a bulit-in app assets extraction !' From 408eeda03e20c6650ba8cdad857931bd93aa8f43 Mon Sep 17 00:00:00 2001 From: Cuynu Date: Sun, 8 Feb 2026 14:07:06 +0700 Subject: [PATCH 04/32] feat: mbcpapp.sh: check for unpacked app before extract assets Signed-off-by: Cuynu --- MBCPApp/mbcpapp.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/MBCPApp/mbcpapp.sh b/MBCPApp/mbcpapp.sh index 8cf89a1..7913508 100755 --- a/MBCPApp/mbcpapp.sh +++ b/MBCPApp/mbcpapp.sh @@ -291,6 +291,7 @@ do 'MBShield Check' ) check_mbshield ;; 'Convert apks to apk' ) convert_apks ;; 'Extract assets [ROOT]' ) + is_unpacked || exit 1 isvcm1 iszdefend info 'To extract encrypted assets [if current app has MBShield protection] you need rooted device' From 29313e5e548873c70c4a48bcd91b24be4c5222a6 Mon Sep 17 00:00:00 2001 From: fukiame Date: Sat, 7 Feb 2026 22:08:49 +0700 Subject: [PATCH 05/32] [1/2] feat: {parse.sh, common.sh}: "y2k" support parse whole version, avoid potential patches leak when, for example, 6.5.0 lands get_mb_ver now must have an argument, for any usage outside of what ive grep'd, to retain the previous behavior, pass '2' Signed-off-by: fukiame --- MBCPApp/common.sh | 3 ++- MBCPApp/parse.sh | 30 ++++++++++++++++++++++++++++-- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/MBCPApp/common.sh b/MBCPApp/common.sh index 0f68c19..2a887ec 100644 --- a/MBCPApp/common.sh +++ b/MBCPApp/common.sh @@ -126,10 +126,11 @@ pblock() { } get_mb_ver() { + [ -z "$1" ] && return 42 a="$(grep -m1 'android:versionName' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml | tr ' ' '\n' | grep -m1 'android:versionName')" a="$(bb_split "$a" '=' '1')" a="$(strip_all "$a" '"')" - bb_split "$a" '.' '2' + bb_split "$a" '.' "$1" } good() { diff --git a/MBCPApp/parse.sh b/MBCPApp/parse.sh index f91aa40..9a638b1 100644 --- a/MBCPApp/parse.sh +++ b/MBCPApp/parse.sh @@ -77,12 +77,38 @@ for f in patches/*.sh ; do continue } [ -n "$minver" ] && { - [ "$(get_mb_ver)" -gt "$minver" ] || { + chk="${minver//[^.]}" + [ "${#chk}" -ne 2 ] && { + warn "[parser] skipping [$pname] with malformed minver" + continue + } + + minmajor="$(bb_split "$minver" '.' '0')" + minminor="$(bb_split "$minver" '.' '1')" + minpatch="$(bb_split "$minver" '.' '2')" + + [ "$(( \ + $(get_mb_ver 0) * 10000 + $(get_mb_ver 1) * 100 + $(get_mb_ver 2) ))" -lt \ + "$(( minmajor * 10000 + minminor * 100 + minpatch ))" \ + ] && { info "[parser] skipping [$pname] as current version is lower than patch version clamp" continue ; } } || : [ -n "$maxver" ] && { - [ "$(get_mb_ver)" -lt "$maxver" ] || { + chk="${maxver//[^.]}" + [ "${#chk}" -ne 2 ] && { + warn "[parser] skipping [$pname] with malformed maxver" + continue + } + + maxmajor="$(bb_split "$maxver" '.' '0')" + maxminor="$(bb_split "$maxver" '.' '1')" + maxpatch="$(bb_split "$maxver" '.' '2')" + + [ "$(( \ + $(get_mb_ver 0) * 10000 + $(get_mb_ver 1) * 100 + $(get_mb_ver 2) ))" -gt \ + "$(( maxmajor * 10000 + maxminor * 100 + maxpatch ))" \ + ] && { info "[parser] skipping [$pname] as current version is higher than patch version clamp" continue ; } } || : From bf2d50e5afae1d87c1762bcc122bb7669b1a2bb5 Mon Sep 17 00:00:00 2001 From: fukiame Date: Sat, 7 Feb 2026 22:44:54 +0700 Subject: [PATCH 06/32] [2/2] fix: patches: *.sh: adapt for y2k sed -i 's/MAXVER: /MAXVER: 6.4./' * sed -i 's/MINVER: /MINVER: 6.4./' * Signed-off-by: fukiame --- MBCPApp/patches/autopatch_strings.sh | 2 +- MBCPApp/patches/better_custombgscreen.sh | 2 +- MBCPApp/patches/bypass_accessibility_malicious_app_check.sh | 2 +- MBCPApp/patches/bypass_checksum.sh | 4 ++-- MBCPApp/patches/bypass_new_zimperium_detection.sh | 2 +- MBCPApp/patches/custom_vtapscreen.sh | 2 +- MBCPApp/patches/disable_membership.sh | 2 +- MBCPApp/patches/fix_tian37.sh | 2 +- MBCPApp/patches/remove_banner_miniapp.sh | 2 +- MBCPApp/patches/remove_custompfp.sh | 2 +- MBCPApp/patches/remove_embee.sh | 2 +- MBCPApp/patches/remove_invoke_to_mbshield.sh | 2 +- MBCPApp/patches/remove_mbai.sh | 2 +- MBCPApp/patches/remove_new_root_detection.sh | 2 +- MBCPApp/patches/remove_new_zimperium_check.sh | 2 +- MBCPApp/patches/remove_useless_lib.sh | 2 +- MBCPApp/patches/remove_vnpay_vmb20.sh | 2 +- MBCPApp/patches/remove_vpn_detection.sh | 2 +- MBCPApp/patches/restore_old_lib_682.sh | 4 ++-- MBCPApp/patches/spoof_appver.sh | 2 +- 20 files changed, 22 insertions(+), 22 deletions(-) diff --git a/MBCPApp/patches/autopatch_strings.sh b/MBCPApp/patches/autopatch_strings.sh index bb0cac3..e13fb4c 100644 --- a/MBCPApp/patches/autopatch_strings.sh +++ b/MBCPApp/patches/autopatch_strings.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Autopatch strings -# MAXVER: 67 +# MAXVER: 6.4.67 # MINVER: # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/better_custombgscreen.sh b/MBCPApp/patches/better_custombgscreen.sh index b612c24..59f509d 100644 --- a/MBCPApp/patches/better_custombgscreen.sh +++ b/MBCPApp/patches/better_custombgscreen.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # PATCHNAME: Better custom background screen # MAXVER: -# MINVER: 83 +# MINVER: 6.4.83 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/bypass_accessibility_malicious_app_check.sh b/MBCPApp/patches/bypass_accessibility_malicious_app_check.sh index b04e3c5..423b093 100644 --- a/MBCPApp/patches/bypass_accessibility_malicious_app_check.sh +++ b/MBCPApp/patches/bypass_accessibility_malicious_app_check.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Bypass accessibility & malicious apps check -# MAXVER: 55 +# MAXVER: 6.4.55 # MINVER: # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/bypass_checksum.sh b/MBCPApp/patches/bypass_checksum.sh index 107df90..5daf1de 100644 --- a/MBCPApp/patches/bypass_checksum.sh +++ b/MBCPApp/patches/bypass_checksum.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # PATCHNAME: Bypass GW934 checksum -# MAXVER: 67 -# MINVER: 63 +# MAXVER: 6.4.67 +# MINVER: 6.4.63 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/bypass_new_zimperium_detection.sh b/MBCPApp/patches/bypass_new_zimperium_detection.sh index 0bfc1aa..3eda1c0 100644 --- a/MBCPApp/patches/bypass_new_zimperium_detection.sh +++ b/MBCPApp/patches/bypass_new_zimperium_detection.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Bypass new zimperium detection -# MAXVER: 63 +# MAXVER: 6.4.63 # MINVER: # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/custom_vtapscreen.sh b/MBCPApp/patches/custom_vtapscreen.sh index 1267751..765ff29 100644 --- a/MBCPApp/patches/custom_vtapscreen.sh +++ b/MBCPApp/patches/custom_vtapscreen.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # PATCHNAME: Custom VTAP screen # MAXVER: -# MINVER: 52 +# MINVER: 6.4.52 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/disable_membership.sh b/MBCPApp/patches/disable_membership.sh index bfd0d38..5f46067 100644 --- a/MBCPApp/patches/disable_membership.sh +++ b/MBCPApp/patches/disable_membership.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Disable MB Membership -# MAXVER: 67 +# MAXVER: 6.4.67 # MINVER: # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/fix_tian37.sh b/MBCPApp/patches/fix_tian37.sh index 3d24b8b..bb71130 100644 --- a/MBCPApp/patches/fix_tian37.sh +++ b/MBCPApp/patches/fix_tian37.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # PATCHNAME: Tian37 Fix # MAXVER: -# MINVER: 85 +# MINVER: 6.4.85 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/remove_banner_miniapp.sh b/MBCPApp/patches/remove_banner_miniapp.sh index a0b59de..0af60c4 100644 --- a/MBCPApp/patches/remove_banner_miniapp.sh +++ b/MBCPApp/patches/remove_banner_miniapp.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Remove banners & MiniApp -# MAXVER: 67 +# MAXVER: 6.4.67 # MINVER: # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/remove_custompfp.sh b/MBCPApp/patches/remove_custompfp.sh index 7649ee9..e98b6f0 100644 --- a/MBCPApp/patches/remove_custompfp.sh +++ b/MBCPApp/patches/remove_custompfp.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Remove custom profile picture -# MAXVER: 67 +# MAXVER: 6.4.67 # MINVER: # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/remove_embee.sh b/MBCPApp/patches/remove_embee.sh index bf8ab39..9bd24d8 100644 --- a/MBCPApp/patches/remove_embee.sh +++ b/MBCPApp/patches/remove_embee.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Remove eMBee -# MAXVER: 67 +# MAXVER: 6.4.67 # MINVER: # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/remove_invoke_to_mbshield.sh b/MBCPApp/patches/remove_invoke_to_mbshield.sh index 5e6df42..315c1da 100644 --- a/MBCPApp/patches/remove_invoke_to_mbshield.sh +++ b/MBCPApp/patches/remove_invoke_to_mbshield.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # PATCHNAME: Remove invoke to mbshield # MAXVER: -# MINVER: 21 +# MINVER: 6.4.21 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/remove_mbai.sh b/MBCPApp/patches/remove_mbai.sh index da73494..b696a24 100644 --- a/MBCPApp/patches/remove_mbai.sh +++ b/MBCPApp/patches/remove_mbai.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # PATCHNAME: Remove MB AI Bullsh*t resources # MAXVER: -# MINVER: 73 +# MINVER: 6.4.73 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/remove_new_root_detection.sh b/MBCPApp/patches/remove_new_root_detection.sh index 4886a4f..4635343 100644 --- a/MBCPApp/patches/remove_new_root_detection.sh +++ b/MBCPApp/patches/remove_new_root_detection.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Remove new root detection -# MAXVER: 59 +# MAXVER: 6.4.59 # MINVER: # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/remove_new_zimperium_check.sh b/MBCPApp/patches/remove_new_zimperium_check.sh index 23c6b8c..c752260 100644 --- a/MBCPApp/patches/remove_new_zimperium_check.sh +++ b/MBCPApp/patches/remove_new_zimperium_check.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # PATCHNAME: Remove new zimperium check # MAXVER: -# MINVER: 59 +# MINVER: 6.4.59 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/remove_useless_lib.sh b/MBCPApp/patches/remove_useless_lib.sh index 2890f89..7199478 100644 --- a/MBCPApp/patches/remove_useless_lib.sh +++ b/MBCPApp/patches/remove_useless_lib.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # PATCHNAME: Remove useless libraries # MAXVER: -# MINVER: 68 +# MINVER: 6.4.68 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/remove_vnpay_vmb20.sh b/MBCPApp/patches/remove_vnpay_vmb20.sh index c028607..e8d1e20 100644 --- a/MBCPApp/patches/remove_vnpay_vmb20.sh +++ b/MBCPApp/patches/remove_vnpay_vmb20.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # PATCHNAME: Remove VNPAY VMB20 # MAXVER: -# MINVER: 56 +# MINVER: 6.4.56 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/remove_vpn_detection.sh b/MBCPApp/patches/remove_vpn_detection.sh index e631ab6..45fad9e 100644 --- a/MBCPApp/patches/remove_vpn_detection.sh +++ b/MBCPApp/patches/remove_vpn_detection.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Remove VPN detection -# MAXVER: 67 +# MAXVER: 6.4.67 # MINVER: # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/restore_old_lib_682.sh b/MBCPApp/patches/restore_old_lib_682.sh index 743ce09..b7ec821 100644 --- a/MBCPApp/patches/restore_old_lib_682.sh +++ b/MBCPApp/patches/restore_old_lib_682.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # PATCHNAME: Restore old 682 lib -# MAXVER: 63 -# MINVER: 61 +# MAXVER: 6.4.63 +# MINVER: 6.4.61 # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/spoof_appver.sh b/MBCPApp/patches/spoof_appver.sh index f309561..c8b9293 100644 --- a/MBCPApp/patches/spoof_appver.sh +++ b/MBCPApp/patches/spoof_appver.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Spoof app version to 698 -# MAXVER: 67 +# MAXVER: 6.4.67 # MINVER: # shellcheck disable=SC1091 . "$DIRPATH"/common.sh From 9d5f548050486b885cc4e67901119f4634b4faa0 Mon Sep 17 00:00:00 2001 From: fukiame Date: Sat, 7 Feb 2026 23:34:55 +0700 Subject: [PATCH 07/32] fix: common.sh: getvar: reset i usually not a problem though? Signed-off-by: fukiame --- MBCPApp/common.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/MBCPApp/common.sh b/MBCPApp/common.sh index 2a887ec..d270ea5 100644 --- a/MBCPApp/common.sh +++ b/MBCPApp/common.sh @@ -29,6 +29,7 @@ strip_all() { getvar() { # Usage: getline "n" "pattern" "file" + i=0 while IFS= read -r line; do i=$((i+1)) [ "$i" = "$1" ] && printf '%s\n' "${line##$2}" && return From a45bcb42be435bbcc6ff7330f40167c2806ec6f7 Mon Sep 17 00:00:00 2001 From: fukiame Date: Sun, 8 Feb 2026 01:29:02 +0700 Subject: [PATCH 08/32] chore: {parse.sh, common.sh}: get_mb_ver -> mb_ver shorter, why not? Signed-off-by: fukiame --- MBCPApp/common.sh | 2 +- MBCPApp/parse.sh | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/MBCPApp/common.sh b/MBCPApp/common.sh index d270ea5..402b8a2 100644 --- a/MBCPApp/common.sh +++ b/MBCPApp/common.sh @@ -126,7 +126,7 @@ pblock() { echo "$1" > "$blocker" } -get_mb_ver() { +mb_ver() { [ -z "$1" ] && return 42 a="$(grep -m1 'android:versionName' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml | tr ' ' '\n' | grep -m1 'android:versionName')" a="$(bb_split "$a" '=' '1')" diff --git a/MBCPApp/parse.sh b/MBCPApp/parse.sh index 9a638b1..4878c5f 100644 --- a/MBCPApp/parse.sh +++ b/MBCPApp/parse.sh @@ -87,9 +87,8 @@ for f in patches/*.sh ; do minminor="$(bb_split "$minver" '.' '1')" minpatch="$(bb_split "$minver" '.' '2')" - [ "$(( \ - $(get_mb_ver 0) * 10000 + $(get_mb_ver 1) * 100 + $(get_mb_ver 2) ))" -lt \ - "$(( minmajor * 10000 + minminor * 100 + minpatch ))" \ + [ "$(( $(mb_ver 0) * 10000 + $(mb_ver 1) * 100 + $(mb_ver 2) ))" -lt \ + "$(( minmajor * 10000 + minminor * 100 + minpatch ))" \ ] && { info "[parser] skipping [$pname] as current version is lower than patch version clamp" continue ; } @@ -105,9 +104,8 @@ for f in patches/*.sh ; do maxminor="$(bb_split "$maxver" '.' '1')" maxpatch="$(bb_split "$maxver" '.' '2')" - [ "$(( \ - $(get_mb_ver 0) * 10000 + $(get_mb_ver 1) * 100 + $(get_mb_ver 2) ))" -gt \ - "$(( maxmajor * 10000 + maxminor * 100 + maxpatch ))" \ + [ "$(( $(mb_ver 0) * 10000 + $(mb_ver 1) * 100 + $(mb_ver 2) ))" -gt \ + "$(( maxmajor * 10000 + maxminor * 100 + maxpatch ))" \ ] && { info "[parser] skipping [$pname] as current version is higher than patch version clamp" continue ; } From f7a143d53a3a233314f5a2f0b8914918e6b6b7b1 Mon Sep 17 00:00:00 2001 From: Cuynu Date: Fri, 13 Feb 2026 01:58:50 +0700 Subject: [PATCH 09/32] 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 10/32] 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 11/32] 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 12/32] 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 13/32] 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 14/32] 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 15/32] 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 16/32] 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 17/32] 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 !!!" />