Compare commits

...
Message SHA1
fix: mbcpapp.sh: do not restore apk signature if apk repacking failed
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-13 14:06:35 +07:00
b525a8fbbe
readme: bump suggested version to v6.4.91
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-13 01:33:13 +07:00
5570f890cf
fix: patches(spoof_appver): incorrect MAXVER
`MAXVER` should be empty and `MINVER` should be 6.4.47

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-11 17:21:11 +07:00
18057c25fc
feat: patches(remove_staticbanner): introduce new patch
inspired by old remove miniapp & banner patch

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-11 01:19:43 +07:00
b3e4f9a866
feat: patches(remove_mbai): adapt with MB v6.4.91 changes
seems like that MB is testing new goreist ai assistant, but who cares? me nope.

im going to remove the resources, will dive into force removing it once the libapp and sha256 checksum puzzle is solved

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-11 00:51:17 +07:00
071c3a84ff
readme: minor changes
mostly docs link fixes

added v6.4.85 situation

some promise

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-08 19:25:34 +07:00
cf7344634a
chore: move some patch specific functions from common.sh to separate patches
i have no idea why it was put to `common.sh`

maybe bcz im too dumb

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-08 18:51:12 +07:00
4fe43f71bf
feat: patches(legacy_patch)!: require download apk manually
MB apk must be manually downloaded instead.

breaks ability to download v6.4.47 apks

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-08 18:25:25 +07:00
6c5c913d50
feat: patches(remove_mbai): remove more resources
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-07 23:58:04 +07:00
1dca1cc358
fix: patches(spoof_appver): typo fix
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-06 01:14:32 +07:00
0607bc5571
feat: patches(spoof_appver): spoof more app versions
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-06 01:09:58 +07:00
03b825276c
8 changed files with 196 additions and 103 deletions

View file

@ -54,39 +54,6 @@ sed_libtian37() {
) && info "[sed_libtian37] [$target] -> [$replacement]" || warn "[sed_libtian37] replacing [$target] failed !"
}
prioritylogo() {
if [ -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/a_logo_img_addon.webp' ]
then
warn "App newer than v6.4.79+ ! Using enforced logo instead"
info "Copying [ic_logo_mb_text_enforced.svg]..."
cp -f 'blob_patches/semipriority/ic_logo_mb_text_enforced.svg' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/svgs/ic_logo_mb_text.svg'
else
info 'Copying [ic_logo_mb_text.svg]...'
cp -f 'blob_patches/semipriority/ic_logo_mb_text.svg' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/svgs/'
fi
}
enforcemb() {
if [ -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/customize_img_changeImageContent.webp' ]
then
info "App newer than v6.4.84 ! Using new search logo!"
# Replace MB AI search button with normal search button
cp -f 'blob_patches/searchicon/search_718.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/img_mbai_textLogo.webp'
cp -f 'blob_patches/searchicon/search_718.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/img_mbai_textLogo.private.webp'
# Adapt new changes with v6.4.75
cp -f 'blob_patches/searchicon/search_718.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/mbai_img_search.webp'
cp -f 'blob_patches/searchicon/search_718.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/mbai_img_search.private.webp'
else
info "App older than v6.4.83 ! Using old search logo!"
# Replace MB AI search button with normal search button
cp -f 'blob_patches/searchicon/search.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/img_mbai_textLogo.webp'
cp -f 'blob_patches/searchicon/search.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/img_mbai_textLogo.private.webp'
# Adapt new changes with v6.4.75
cp -f 'blob_patches/searchicon/search.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/mbai_img_search.webp'
cp -f 'blob_patches/searchicon/search.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/mbai_img_search.private.webp'
fi
}
# libdesignersactivists.so are former known as libZDefend.so
# MB moved it to libdesignersactivists.so since v6.4.48+
# this currently is placeholder, and will be implemented later

View file

@ -1,16 +1,15 @@
#!/usr/bin/env bash
echo "DO NOT use these patches with newer app!"
echo "Legacy patches list for MBCPApp :"
PS3='Select patch options :'
select opt in 'Bypass 1200 error [v6.4.45]' 'Bypass signature check' '[TEST] Remove v6.4.56 root detection' 'Exit'
do
if [ "$opt" == 'Bypass 1200 error [v6.4.45]' ]; then
if [ "$opt" == 'Bypass 1200 error [v6.4.45]' ]; then
[ ! -f 'bypass1200/*.apks' ] && echo "Download the [v6.4.47] app from Telegram [@embeeapks] or Google Play API with versionCode 661" && echo "Then copy it to [bypass1200] folder!" && exit 1
echo "Notice : v6.4.45 are now got [GW525 - Force update !] !!!"
echo "This patch will remain available but you cannot bypass GW525 error !"
mkdir bypass1200
echo "Downloading v6.4.47 apks..."
wget https://github.com/ghclonenah1/mbbpatch_release/releases/download/a/embee_v6.4.47_arm64-v8a_armeabi-v7a.apks -q --show-progress
mv *.apks bypass1200/
mkdir -p bypass1200
echo "Unpacking..."
java -jar tools/apkeditor.jar m -i bypass1200/*.apks
java -jar tools/apktool.jar d bypass1200/*.apk -o bypass1200/unpacked -j$(nproc)
@ -21,17 +20,17 @@ if [ "$opt" == 'Bypass 1200 error [v6.4.45]' ]; then
echo "Cleaning..."
rm -rf bypass1200
## MB Forced update to 658, it must be spoofed!
echo "Patching [apktool.yml]..."
echo "Patching [AndroidManifest.xml]..."
sed -i 's|658|700|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml
echo "This patch are applied by MBCPApp Patcher on $(uname -s -r) with commit :" $(git rev-parse --short HEAD) at $(git show -s --format=%cd HEAD). > 'mbapk/mbapk_unpacked/root/assets/mbcp_info/bypass_1200_error.inf'
# Use bypass gw934 checksum for this patch instead
# Use bypass gw934 checksum for this patch instead
elif [ "$opt" == 'Bypass signature check' ]; then
echo "Applying patch [Bypass signature check]..."
if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ]
then
# Checks for MBShield, if exists then exit function
# Checks for MBShield, if exists then exit function
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/assets/mbshield.szip ]
then
info "MBShield found on unpacked APK ! Bypass signature checks won't be possible if MBShield is present on current unpacked APK !"
@ -52,7 +51,6 @@ fi
elif [ "$opt" == '[TEST] Remove v6.4.56 root detection' ]; then
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali ]
then
echo "Applying patch..."
echo "Removing checksum from provider..."
sed -i 's|e1a14adc915d7ad159edf2668b0dfcb359cf86538642de0e425d027f66eb07b2||g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes/androidx/UnderlyingVcl.smali
@ -87,10 +85,10 @@ fi
mv 'temp/libweneedfreedom.so' 'temp/libdesignersactivists.so'
cp -f 'temp/libdesignersactivists.so' 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libdesignersactivists.so'
rm -rf temp
echo "This patch are applied by MBCPApp Patcher on $(uname -s -r) with commit :" $(git rev-parse --short HEAD) at $(git show -s --format=%cd HEAD). > 'mbapk/mbapk_unpacked/assets/mbcp_info/remove_v6.4.56_root_detection.inf'
echo "This patch is applied by MBCPApp Patcher on $(uname -s -r) with commit :" $(git rev-parse --short HEAD) at $(git show -s --format=%cd HEAD). > 'mbapk/mbapk_unpacked/assets/mbcp_info/remove_v6.4.56_root_detection.inf'
echo "Applied [Remove v6.4.56 root detection] patch !!!"
else
echo "[UnderlyingVcl.smali] not found! Please clear patched app then unpack again!"
echo "[UnderlyingVcl.smali] not found!"
fi

View file

@ -226,6 +226,7 @@ repack_mbcp() {
(
set -e
java -jar tools/apkeditor.jar b -i 'mbapk/mbapk_unpacked' -o mbcpapp_apk/MBCP_Flutter_TMP.apk
[ ! -f 'mbcpapp_apk/MBCP_Flutter_TMP.apk' ] && exit 1
info "Processing APK signature scheme v2/v3..."
rm -rf mbcpapp_apk/MBCP_Flutter_SelfPatched*
java -jar tools/apkeditor.jar b -t sig -i 'mbcpapp_apk/MBCP_Flutter_TMP.apk' -sig 'mbsig/signatures' -o "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk"

View file

@ -5,6 +5,18 @@
# shellcheck disable=SC1091
. "$DIRPATH"/common.sh
prioritylogo() {
if [ -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/a_logo_img_addon.webp' ]
then
warn "App newer than v6.4.79+ ! Using enforced logo instead"
info "Copying [ic_logo_mb_text_enforced.svg]..."
cp -f 'blob_patches/semipriority/ic_logo_mb_text_enforced.svg' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/svgs/ic_logo_mb_text.svg'
else
info 'Copying [ic_logo_mb_text.svg]...'
cp -f 'blob_patches/semipriority/ic_logo_mb_text.svg' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/svgs/'
fi
}
iszdefend
PS3='Select themes : '
select opt in 'MBCP SemiPriority' 'MBCP MBClassic' 'Noel 2024' 'Tre trung' 'Mid-autumn festival' 'Viet Nam' 'Exit'; do

View file

@ -1,10 +1,31 @@
#!/usr/bin/env bash
# PATCHNAME: Remove MB AI Bullsh*t resources
# PATCHNAME: Remove MB AI Bullshit resources
# MAXVER:
# MINVER: 6.4.73
# shellcheck disable=SC1091
. "$DIRPATH"/common.sh
enforcemb() {
if [ -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/customize_img_changeImageContent.webp' ]
then
info "App newer than v6.4.84 ! Using new search logo!"
# Replace MB AI search button with normal search button
cp -f 'blob_patches/searchicon/search_718.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/img_mbai_textLogo.webp'
cp -f 'blob_patches/searchicon/search_718.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/img_mbai_textLogo.private.webp'
# Adapt new changes with v6.4.75
cp -f 'blob_patches/searchicon/search_718.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/mbai_img_search.webp'
cp -f 'blob_patches/searchicon/search_718.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/mbai_img_search.private.webp'
else
info "App older than v6.4.83 ! Using old search logo!"
# Replace MB AI search button with normal search button
cp -f 'blob_patches/searchicon/search.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/img_mbai_textLogo.webp'
cp -f 'blob_patches/searchicon/search.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/img_mbai_textLogo.private.webp'
# Adapt new changes with v6.4.75
cp -f 'blob_patches/searchicon/search.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/mbai_img_search.webp'
cp -f 'blob_patches/searchicon/search.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/mbai_img_search.private.webp'
fi
}
# Currently not possible to completely remove and prevent users from use AI features in MB app.
# So we remove it's resources instead, so the search icon won't show AI things
# Need to implement more ASAP in the future
@ -24,31 +45,29 @@ rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/ba
# Tet binh ngo
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/tetbinhngo/coreBanking_illus_p2p.webp'
# Priority users
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority/mbai_img_paste.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority/mbai_img_paste2Pay.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority/mbai_img_search.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority/coreBanking_illus_p2p.webp'
# New resources
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority/mbai_img_paste.priority.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority/mbai_img_paste2Pay.priority.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority/mbai_img_search.priority.webp'
# New resources
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/mbai_img_paste.priority.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/mbai_img_paste2Pay.priority.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/mbai_img_search.priority.webp'
# Other stuff
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/base/partner/img_mbai_short.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/base/partner/img_mbai_short_white.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/img_mbai_textOnly_white.webp'
# Temp solution for forced MB AI assistant in v6.4.91+ (A/B testing from MB side, not yet in production)
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/ai_assistant'
# Call the enforcemb function in common.sh
# Call the enforcemb function
enforcemb
# Adapt with new animated search AI logo (v6.4.77+)
cp -f 'blob_patches/searchicon/search.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/search_ai.gif'

View file

@ -0,0 +1,24 @@
#!/usr/bin/env bash
# PATCHNAME: Remove some static banners
# MAXVER:
# MINVER:
# shellcheck disable=SC1091
. "$DIRPATH"/common.sh
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/billing_img_defaultBanner.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/billing_img_defaultBanner.private.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/explore_img_defaultBanner.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/exploreLanding_img_background.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/homeLanding_img_defaultBanner.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/homeLanding_img_chatGPT.junior.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/homeLanding_img_banner.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/homeLanding_img_defaultBanner.private.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/homeLanding_img_Kosei.junior.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/img_thumbnail_hotdeal5.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/theme_bg_cuaHang.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/theme_bg_cuaHang.private.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/welcom_img_background.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/img_background_financial.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/background/sub_bg_hoiVien.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/moneyChat_img*.webp'
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/background_moneyChat_base.webp'

View file

@ -1,15 +1,81 @@
#!/usr/bin/env bash
# PATCHNAME: Spoof app version
# MAXVER: 6.4.90
# MINVER:
# MAXVER:
# MINVER: 6.4.47
# shellcheck disable=SC1091
. "$DIRPATH"/common.sh
info "Spoofing app version..."
# Temp spoof only
# v6.5.x
sed -i 's|6.5.0|6.5.0.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
# v6.4.9x
sed -i 's|6.4.99|6.4.99.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.98|6.4.98.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.97|6.4.97.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.96|6.4.96.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.95|6.4.95.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.94|6.4.94.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.93|6.4.93.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.92|6.4.92.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.91|6.4.91.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.90|6.4.90.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
# v6.4.8x
sed -i 's|6.4.89|6.4.89.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.88|6.4.88.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.87|6.4.87.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.86|6.4.86.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.85|6.4.85.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.84|6.4.84.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.83|6.4.83.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.82|6.4.82.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.81|6.4.81.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.80|6.4.80.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
# v6.4.7x
sed -i 's|6.4.79|6.4.79.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.78|6.4.78.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.77|6.4.77.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.75|6.4.75.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.74|6.4.74.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.73|6.4.73.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.72|6.4.72.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.71|6.4.71.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.70|6.4.70.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
# v6.4.6x
sed -i 's|6.4.69|6.4.69.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.68|6.4.68.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.67|6.4.67.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.66|6.4.66.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.65|6.4.65.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.64|6.4.64.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.63|6.4.63.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.62|6.4.62.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.61|6.4.61.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.60|6.4.60.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
# v6.4.5x
sed -i 's|6.4.59|6.4.59.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.58|6.4.58.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.57|6.4.57.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.56|6.4.56.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.55|6.4.55.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.54|6.4.54.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.53|6.4.53.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.52|6.4.52.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.51|6.4.51.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.50|6.4.50.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
# v6.4.4x (no older than v6.4.47 due to the open source codebase started with v6.4.47)
sed -i 's|6.4.49|6.4.49.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.48|6.4.48.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.47|6.4.47.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|727|2000|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|729|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'

View file

@ -1,6 +1,6 @@
# MBCPApp Patcher for MB Bank (Android)
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.
Lightweight **AI-free, human-written** open source CLI 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.
<img alt="Gitea Release" src="https://img.shields.io/gitea/v/release/mbcp/mbbpatch?gitea_url=https%3A%2F%2Fgit.disroot.org&include_prereleases&display_name=tag&style=for-the-badge&logo=android&label=Latest%20Pre-bulit%20MBCP%20&color=%23CC6699">
@ -13,6 +13,13 @@ Lightweight **AI-free, human-written** open source tool for patching MB Bank (An
- Project FAQ : [Read here](/mbcp/info_en/wiki/faq)
- Licensed as MIT License.
## Introduction
- Note : "MBCP" / "MBCPApp" = "MBBank CorePatch"
- MBCP is inspired from [CorePatch](https://github.com/LSPosed/CorePatch) project. Now it can works with [PMPatch](https://github.com/vova7878-modules/PMPatch) too
- This project was made to remove or limit annoying features & root detection & accessibility detection that is implemented by the development team of "MB Bank" Android app with additional features such as custom themes ability, device font, etc (see more in patches list). **It's not PoC (Proof of Concept) project at all.**
- [MBCP](https://t.me/mbcposs) are closed source before, and many people don't like it and concern with privacy & security issues
- In order to support community and allow other devs to improve the project, I spend days to rewritten `MBCP` patches in Bash and open source it so you can patch yourself from original app on Linux or Darwin (macOS) environment. All MBCP pre-bulit releases from v6.4.47+ are all bulit with this open source project with the commit ID at the end of the file name.
## Current situation
- Project is used to almost DEAD, due to MB's measure to modified dex & libraries from the server-side with GW934 error (`getSHFiles`) when logging in. Luckily, I have a way to bypass the [Zimperium check](/mbcp/mbzdefend-fix), that's why the project still alive till nowadays with other patches.
@ -22,18 +29,12 @@ Lightweight **AI-free, human-written** open source tool for patching MB Bank (An
- The GW934 error is known enabled from the server-side (v6.4.64 works since days 0, but return with GW934 error after 11 days), it requires client (MBCP/MBBank) app to sent the SHA256 hash of 3 app libraries `libapp.so` | `libmbshield.so` | `libclosestmadagascar.so` and all of 5 dex files (classes1->5.dex) to the server for comparing hash, and if it doesn't match, the server will prevent the app from logging in with GW934 error (MB has detected that your device is not secure for performing transactions. Please uninstall the App and reinstall it from the app store). The other function (eg: DigitalOTP) that works without logging in still works.
</details>
## Introduction
- Note : "MBCP" / "MBCPApp" = "MBBank CorePatch"
- This project was made to remove or limit annoying features & root detection & accessibility detection that is implemented by the development team of "MB Bank" Android app with additional features such as custom themes ability, device font, etc (see more in patches list). **It's not PoC (Proof of Concept) project at all.**
- [MBCP](https://t.me/mbcposs) are closed source before, and many people don't like it and concern with privacy & security issues
- In order to support community and allow other devs to improve the project, I spend days to rewritten `MBCP` patches in Bash and open source it so you can patch yourself from original app on Linux or Darwin (macOS) environment. All MBCP pre-bulit releases from v6.4.47+ are all bulit with this open source project with the commit ID at the end of the file name.
## DISCLAIMER
I'm not responsible if someone abuse this patch to do illegal things, since it's originally made for technical or well-known users only.
## DISCLAIMER
- I'm not responsible if someone abuse this patch to do illegal things, since it's originally made for technical or well-known users only.
## Documentation
- [MBCPApp Patcher Documentation](/mbcp/mbbpatch/wiki)
- [MBCPApp Patcher Documentation](/mbcp/mbbpatch/src/branch/mbflutter/docs)
## Requirements & Usage & How-to use patcher
- Follow usage docs here : [Patcher Usage](/mbcp/mbbpatch/wiki/patcher-usage.-)
@ -70,35 +71,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.90 |
| `Adaptive launcher icon` | Adds the adaptive & themed icon support to the app. Thanks to @fukiame ! | v6.4.0 ~ v6.4.90 |
| `Proper notification icon` | Temporary fixes for the app notification icon. Thanks to @fukiame ! | v6.4.0 ~ v6.4.90 |
| `Block adjust volume on sEKYC` | Prevent the device volume from being adjusted when entering eKYC activity. | v6.4.0 ~ v6.4.90 |
| `Better custom background screen` | Replace the preview custom background from awful to useful. | v6.4.84 ~ v6.4.90 |
| `Change app logo` | Change the app logo with set of icons. | v6.4.0 ~ v6.4.90 |
| `Change widget background to dark ` | Change widget background to dark if you use MBBHomeWidget. | v6.4.0 ~ v6.4.90 |
| `Custom VTAP screen` | Warn users about critical VTAP trigger error from app. | v6.4.53 ~ v6.4.90 |
| `Tian37 Fix` | Nuke detection points within Tian37 libraries. | v6.4.87 ~ v6.4.90 |
| `Force portrait screen` | Force the screen always portrait on app, espcially when launching. | v6.4.0 ~ v6.4.90 |
| `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.90 |
| `Remove MB Themes Store` | Remove the MB Themes Store banner from Themes list, preventing access to MB Theme Store. | v6.4.28 ~ v6.4.90 |
| `Remove invoke to mbshield` | Make app don't invoke to mbshield when opening (MainActivity) and (MBBHomeWidgetQR) only | v6.4.22 ~ v6.4.90 |
| `Remove new zimperium check` | Remove the new Zimperium (ZDefend) root detection from app. Picked up from Legacy Patch. | v6.4.60 ~ v6.4.90 |
| `Remove bulit-in fonts` | Remove app font and force to use device font for most app components. | v6.4.0 ~ v6.4.90 |
| `Modify app theme` | Modify the bulit-in app theme from original one to other themes. | v6.4.30 ~ v6.4.90 |
| `Remove garbage permission and activities` | Removes tracking permission & activities from app. | v6.4.0 ~ v6.4.90 |
| `Revert old eMBee logo` | Revert old eMBee logo, especially on product consultation options. | v6.4.53 ~ v6.4.90 |
| `Remove useless libraries` | Remove the useless libraries from app, only for v6.4.67+ | v6.4.67 ~ v6.4.90 |
| `Remove animated QR background` | Remove the animated QR background from bottom navigation bar and replace with white background. | v6.4.43 ~ v6.4.90 |
| `Remove VNPAY VMB20` | Remove the VNPAY Airplane related activities. | v6.4.55 ~ v6.4.90 |
| `Restore old registration resources` | Restore old resources on `onboarding` page. | v6.4.48 ~ v6.4.90 |
| `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.90 |
| `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.90 |
| `Remove protection shield` | Remove the MIC protection shield on profile picture and login screen. (not app protection) | v6.4.0 ~ v6.4.90 |
| `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.90 |
| `Set targetSdkVersion to 34` | Set the `targetSdkVersion` to 34 (Android 14) to prevent UI issues on some activities. | v6.4.10 ~ v6.4.90 |
| `Add modified resources` | Adds the specific strings for MBCP on eKYC phases, and modify the DigiBank logo. | v6.4.0 ~ v6.4.90 |
| `Add anime resources` | Adds anime-related resources to some components inside app. | v6.4.45 ~ v6.4.90 |
| `Add verified badge` | Replaces the MIC protection shield with verified badge to make it looks more cute :3 | v6.4.0 ~ v6.4.91 |
| `Adaptive launcher icon` | Adds the adaptive & themed icon support to the app. Thanks to @fukiame ! | v6.4.0 ~ v6.4.91 |
| `Proper notification icon` | Temporary fixes for the app notification icon. Thanks to @fukiame ! | v6.4.0 ~ v6.4.91 |
| `Block adjust volume on sEKYC` | Prevent the device volume from being adjusted when entering eKYC activity. | v6.4.0 ~ v6.4.91 |
| `Better custom background screen` | Replace the preview custom background from awful to useful. | v6.4.84 ~ v6.4.91 |
| `Change app logo` | Change the app logo with set of icons. | v6.4.0 ~ v6.4.91 |
| `Change widget background to dark ` | Change widget background to dark if you use MBBHomeWidget. | v6.4.0 ~ v6.4.91 |
| `Custom VTAP screen` | Warn users about critical VTAP trigger error from app. | v6.4.53 ~ v6.4.91 |
| `Tian37 Fix` | Nuke detection points within Tian37 libraries. | v6.4.87 ~ v6.4.91 |
| `Force portrait screen` | Force the screen always portrait on app, espcially when launching. | v6.4.0 ~ v6.4.91 |
| `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.91 |
| `Remove MB Themes Store` | Remove the MB Themes Store banner from Themes list, preventing access to MB Theme Store. | v6.4.28 ~ v6.4.91 |
| `Remove invoke to mbshield` | Make app don't invoke to mbshield when opening (MainActivity) and (MBBHomeWidgetQR) only | v6.4.22 ~ v6.4.91 |
| `Remove new zimperium check` | Remove the new Zimperium (ZDefend) root detection from app. Picked up from Legacy Patch. | v6.4.60 ~ v6.4.91 |
| `Remove bulit-in fonts` | Remove app font and force to use device font for most app components. | v6.4.0 ~ v6.4.91 |
| `Modify app theme` | Modify the bulit-in app theme from original one to other themes. | v6.4.30 ~ v6.4.91 |
| `Remove garbage permission and activities` | Removes tracking permission & activities from app. | v6.4.0 ~ v6.4.91 |
| `Revert old eMBee logo` | Revert old eMBee logo, especially on product consultation options. | v6.4.53 ~ v6.4.91 |
| `Remove useless libraries` | Remove the useless libraries from app, only for v6.4.67+ | v6.4.67 ~ v6.4.91 |
| `Remove animated QR background` | Remove the animated QR background from bottom navigation bar and replace with white background. | v6.4.43 ~ v6.4.91 |
| `Remove VNPAY VMB20` | Remove the VNPAY Airplane related activities. | v6.4.55 ~ v6.4.91 |
| `Restore old registration resources` | Restore old resources on `onboarding` page. | v6.4.48 ~ v6.4.91 |
| `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.91 |
| `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.91 |
| `Remove protection shield` | Remove the MIC protection shield on profile picture and login screen. (not app protection) | v6.4.0 ~ v6.4.91 |
| `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.91 |
| `Set targetSdkVersion to 34` | Set the `targetSdkVersion` to 34 (Android 14) to prevent UI issues on some activities. | v6.4.10 ~ v6.4.91 |
| `Add modified resources` | Adds the specific strings for MBCP on eKYC phases, and modify the DigiBank logo. | v6.4.0 ~ v6.4.91 |
| `Add anime resources` | Adds anime-related resources to some components inside app. | v6.4.45 ~ v6.4.91 |
</details>
@ -159,9 +160,9 @@ I'm not responsible if someone abuse this patch to do illegal things, since it's
## TODO
- [ ] Bypass the new dex & libraries checksum for MB v6.4.67+ (hardcore challenge)
- [ ] Bypass the new dex & libraries checksum for MB v6.4.67+ (hardcore challenge, would be extremely excited if this is achieved)
- [ ] Crash fixes for `Hide VTAP root detection activity & dialog` patch (Android 16 >QPR1 / OEM ROMs)
- [ ] Crash fixes for `Hide VTAP root detection activity & dialog` patch (OEM ROMs)
- [ ] Proper display language under Singalarity eKYC phase
@ -187,6 +188,9 @@ I'm not responsible if someone abuse this patch to do illegal things, since it's
</details>
## Project history
- This project was made (and still maintained) by [@cuynu](/cuynu) with some help from other contributors, but in reality, I am not currently have enough skills with coding and project development yet and is still stupid. So some most of my commits is just minimal changes. **You can say me as a Developer/Dev and I'll embrace it because this project is not that easy to made, it's not what average person can even think as open source**. Maybe someday you'll see me ship more c/cpp code in this project :)
<details>
- 05/2023 : MB Bank MOD APK ANDROID project created on Telegram (@mbbmod), providing modified MB Bank APKs since v5.8 with lots of features such as bypassing accessibility check and show a guide to hide root instead of show rooted screen then close the app.
@ -211,6 +215,8 @@ I'm not responsible if someone abuse this patch to do illegal things, since it's
- 11/2025 (2) : MB released `v6.4.74` with AI-crap button that replaces legacy search button. I created a patch that force replace it back to old search icon.
- 02/2025 : MB released `v6.4.85` with enhanced Singalarity eKYC detection (detects `data/adb/modules` and `com.rifsxd.ksunext`), so I created a patch that nuked the check.
- ...
</details>