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
fix: patches(spoof_appver): use "." instead of "_"
fixes parse error after applying

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

Cuynu   commited 2026-03-05 00:56:05 +07:00
144bdfd80e
fix: patches(spoof_appver): wrong MAXVER
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-05 00:50:56 +07:00
b1ebb7a45b
readme: bump suggested version to v6.4.90
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-05 00:43:48 +07:00
94b203df6f
fix: patches(remove_invoke_to_mbshield): both classes3 & 4 failling
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-05 00:36:13 +07:00
26bf9027d0
feat: mbcpapp.sh: bump apktool to 3.0.1
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-05 00:28:50 +07:00
bc542caa0f
feat: patches(spoof_appver): spoof v6.4.90
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-05 00:12:00 +07:00
11e19aac60
feat: patches(remove_bulitin_fonts): also remove font folder
not used by anything i guess

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

Cuynu   commited 2026-03-05 00:05:54 +07:00
7556b36538
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 <cuynu@proton.me>

Cuynu   commited 2026-03-01 19:05:24 +07:00
cc9f30ec9e
feat: patches: vtap zygisk detection bypass
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-03-01 14:06:00 +07:00
0268e73dbc
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 <cuynu@proton.me>

Cuynu   commited 2026-02-20 01:26:04 +07:00
64fc1639a9
misc: shortcut for launching mbcpapp.sh
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-02-19 14:47:18 +07:00
2ce667d81a
docs: move from wiki to docs
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-02-19 01:36:32 +07:00
b849e927fb
readme: bump suggested version to v6.4.88
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-02-13 01:58:50 +07:00
f7a143d53a
chore: {parse.sh, common.sh}: get_mb_ver -> mb_ver
shorter, why not?

Signed-off-by: fukiame <fukiame@proton.me>

fukiame   commited 2026-02-08 14:43:20 +07:00
a45bcb42be
fix: common.sh: getvar: reset i
usually not a problem though?

Signed-off-by: fukiame <fukiame@proton.me>

fukiame   commited 2026-02-08 14:43:20 +07:00
9d5f548050
[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 <fukiame@proton.me>

fukiame   commited 2026-02-08 14:43:20 +07:00
bf2d50e5af
[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 <fukiame@proton.me>

fukiame   commited 2026-02-08 14:43:20 +07:00
29313e5e54
feat: mbcpapp.sh: check for unpacked app before extract assets
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-02-08 14:07:06 +07:00
408eeda03e
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 <cuynu@proton.me>

Cuynu   commited 2026-02-08 00:48:49 +07:00
9641de80e3
fix: patches: *.sh: kill all trailing whitespaces
sed -i 's/[ \t]*$//' *

Signed-off-by: fukiame <fukiame@proton.me>

fukiame   commited 2026-02-08 00:06:58 +07:00
97f401cf2c
readme: fetch badges from disroot repo & gitlab notice
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-02-07 23:44:00 +07:00
775c56473e
39 changed files with 905 additions and 567 deletions

View file

@ -47,7 +47,7 @@
android:visibility="visible" android:visibility="visible"
android:layout_width="fill_parent" android:layout_width="fill_parent"
android:layout_height="wrap_content" 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 !!!" />
<Button <Button
android:tag="0" android:tag="0"
android:visibility="invisible" android:visibility="invisible"
@ -103,4 +103,4 @@
app:layout_constraintBottom_toTopOf="@id/llBottom" app:layout_constraintBottom_toTopOf="@id/llBottom"
app:layout_constraintTop_toTopOf="@id/llBottom" app:layout_constraintTop_toTopOf="@id/llBottom"
app:tabIndicatorColor="#ffffffff" /> app:tabIndicatorColor="#ffffffff" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>

View file

@ -43,7 +43,7 @@
<string name="aiDemo_willSpeakLoudly">You will have to speak loudy these numbers on the screen</string> <string name="aiDemo_willSpeakLoudly">You will have to speak loudy these numbers on the screen</string>
<string name="aiFaceMessage_facePitchDown">Please look straight</string> <string name="aiFaceMessage_facePitchDown">Please look straight</string>
<string name="aiFaceMessage_facePitchUp">Please look straight</string> <string name="aiFaceMessage_facePitchUp">Please look straight</string>
<string name="aiFaceMessage_faceQualified">Please hold your hand steady</string> <string name="aiFaceMessage_faceQualified">Your face is in the frame. Please hold your hand steady!</string>
<string name="aiFaceMessage_faceRollAntiClockWise">Please keep your face upright</string> <string name="aiFaceMessage_faceRollAntiClockWise">Please keep your face upright</string>
<string name="aiFaceMessage_faceRollClockWise">Please keep your face upright</string> <string name="aiFaceMessage_faceRollClockWise">Please keep your face upright</string>
<string name="aiFaceMessage_faceTooBig">Please put the camera further away</string> <string name="aiFaceMessage_faceTooBig">Please put the camera further away</string>
@ -86,17 +86,16 @@
<string name="character_counter_pattern">%1$d/%2$d</string> <string name="character_counter_pattern">%1$d/%2$d</string>
<string name="chip_text">Chip text</string> <string name="chip_text">Chip text</string>
<string name="clear_text_end_icon_content_description">Clear text</string> <string name="clear_text_end_icon_content_description">Clear text</string>
<string name="click_setting_qr">Chạm để cài đặt <string name="click_setting_qr">Touch to setup QR</string>
QR</string> <string name="click_setting_qr_big_qr">Touch to setup QR</string>
<string name="click_setting_qr_big_qr">Chạm để cài đặt QR</string>
<string name="com.crashlytics.android.build_id">cca90e65-5805-4c06-bc2d-930595fb2cf4</string> <string name="com.crashlytics.android.build_id">cca90e65-5805-4c06-bc2d-930595fb2cf4</string>
<string name="com.google.firebase.crashlytics.mapping_file_id">a4f49867dfa64435bea0bafc1f437f34</string> <string name="com.google.firebase.crashlytics.mapping_file_id">a4f49867dfa64435bea0bafc1f437f34</string>
<string name="common_google_play_services_enable_button">Enable</string> <string name="common_google_play_services_enable_button">Enable</string>
<string name="common_google_play_services_enable_text">%1$s won't work unless you enable Google Play services.</string> <string name="common_google_play_services_enable_text">%1$s can't work properly unless you enable GMS/microG.</string>
<string name="common_google_play_services_enable_title">Enable Google Play services</string> <string name="common_google_play_services_enable_title">Enable GMS/microG</string>
<string name="common_google_play_services_install_button">Install</string> <string name="common_google_play_services_install_button">Install</string>
<string name="common_google_play_services_install_text">%1$s won't run without Google Play services, which are missing from your device.</string> <string name="common_google_play_services_install_text">GMS/microG is missing from your device. %1$s still runs without it but some features will be broken.</string>
<string name="common_google_play_services_install_title">Get Google Play services</string> <string name="common_google_play_services_install_title">GMS/microG missing</string>
<string name="common_google_play_services_notification_channel_name">Google Play services availability</string> <string name="common_google_play_services_notification_channel_name">Google Play services availability</string>
<string name="common_google_play_services_notification_ticker">Google Play services error</string> <string name="common_google_play_services_notification_ticker">Google Play services error</string>
<string name="common_google_play_services_unknown_issue">%1$s is having trouble with Google Play services. Please try again.</string> <string name="common_google_play_services_unknown_issue">%1$s is having trouble with Google Play services. Please try again.</string>

View file

@ -29,6 +29,7 @@ strip_all() {
getvar() { getvar() {
# Usage: getline "n" "pattern" "file" # Usage: getline "n" "pattern" "file"
i=0
while IFS= read -r line; do while IFS= read -r line; do
i=$((i+1)) i=$((i+1))
[ "$i" = "$1" ] && printf '%s\n' "${line##$2}" && return [ "$i" = "$1" ] && printf '%s\n' "${line##$2}" && return
@ -53,39 +54,6 @@ sed_libtian37() {
) && info "[sed_libtian37] [$target] -> [$replacement]" || warn "[sed_libtian37] replacing [$target] failed !" ) && 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 # libdesignersactivists.so are former known as libZDefend.so
# MB moved it to libdesignersactivists.so since v6.4.48+ # MB moved it to libdesignersactivists.so since v6.4.48+
# this currently is placeholder, and will be implemented later # this currently is placeholder, and will be implemented later
@ -106,6 +74,14 @@ iszdefend() {
fi 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() { manifest_remove() {
sed -i "/$1/d" "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml && \ sed -i "/$1/d" "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml && \
info "[manifest_remove] removing $1" || \ info "[manifest_remove] removing $1" || \
@ -117,11 +93,12 @@ pblock() {
echo "$1" > "$blocker" 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="$(grep -m1 'android:versionName' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml | tr ' ' '\n' | grep -m1 'android:versionName')"
a="$(bb_split "$a" '=' '1')" a="$(bb_split "$a" '=' '1')"
a="$(strip_all "$a" '"')" a="$(strip_all "$a" '"')"
bb_split "$a" '.' '2' bb_split "$a" '.' "$1"
} }
good() { good() {

View file

@ -1,16 +1,15 @@
#!/usr/bin/env bash #!/usr/bin/env bash
echo "DO NOT use these patches with newer app!"
echo "Legacy patches list for MBCPApp :" echo "Legacy patches list for MBCPApp :"
PS3='Select patch options :' PS3='Select patch options :'
select opt in 'Bypass 1200 error [v6.4.45]' 'Bypass signature check' '[TEST] Remove v6.4.56 root detection' 'Exit' select opt in 'Bypass 1200 error [v6.4.45]' 'Bypass signature check' '[TEST] Remove v6.4.56 root detection' 'Exit'
do 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 "Notice : v6.4.45 are now got [GW525 - Force update !] !!!"
echo "This patch will remain available but you cannot bypass GW525 error !" echo "This patch will remain available but you cannot bypass GW525 error !"
mkdir bypass1200 mkdir -p 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/
echo "Unpacking..." echo "Unpacking..."
java -jar tools/apkeditor.jar m -i bypass1200/*.apks java -jar tools/apkeditor.jar m -i bypass1200/*.apks
java -jar tools/apktool.jar d bypass1200/*.apk -o bypass1200/unpacked -j$(nproc) 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..." echo "Cleaning..."
rm -rf bypass1200 rm -rf bypass1200
## MB Forced update to 658, it must be spoofed! ## 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 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' 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 elif [ "$opt" == 'Bypass signature check' ]; then
echo "Applying patch [Bypass signature check]..." echo "Applying patch [Bypass signature check]..."
if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ] if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ]
then 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 ] if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/assets/mbshield.szip ]
then then
info "MBShield found on unpacked APK ! Bypass signature checks won't be possible if MBShield is present on current unpacked APK !" 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 elif [ "$opt" == '[TEST] Remove v6.4.56 root detection' ]; then
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali ] if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali ]
then then
echo "Applying patch..." echo "Applying patch..."
echo "Removing checksum from provider..." echo "Removing checksum from provider..."
sed -i 's|e1a14adc915d7ad159edf2668b0dfcb359cf86538642de0e425d027f66eb07b2||g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes/androidx/UnderlyingVcl.smali 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' mv 'temp/libweneedfreedom.so' 'temp/libdesignersactivists.so'
cp -f 'temp/libdesignersactivists.so' 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libdesignersactivists.so' cp -f 'temp/libdesignersactivists.so' 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libdesignersactivists.so'
rm -rf temp 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 !!!" echo "Applied [Remove v6.4.56 root detection] patch !!!"
else else
echo "[UnderlyingVcl.smali] not found! Please clear patched app then unpack again!" echo "[UnderlyingVcl.smali] not found!"
fi fi

View file

@ -15,12 +15,12 @@ clear
. "$DIRPATH/common.sh" . "$DIRPATH/common.sh"
# Check if user is running on an actual Linux environment # Check if user is running on an actual Linux environment
if uname -a | grep -i Linux ; then if uname -a | grep -i Linux; then
info "You have Linux environment :)" info "You have Linux environment :)"
fi fi
# Check if figlet exists or not # Check if figlet exists or not
if command -v figlet ; then if command -v figlet; then
FIGLET=figlet FIGLET=figlet
else else
warn "figlet not found, ignoring banner !" warn "figlet not found, ignoring banner !"
@ -28,26 +28,25 @@ else
fi fi
# Check if java exists # Check if java exists
if ! java -version ; then if ! java -version; then
err "Java not found !!!" err "Java not found !!!"
info "Please install Java for your system ! " info "Please install Java for your system ! "
exit 127 exit 127
fi fi
# Check if wget exists # Check if wget exists
if ! wget --version ; then if ! wget --version; then
err "wget not found !!!" err "wget not found !!!"
info "Please install wget for your system !" info "Please install wget for your system !"
exit 127 exit 127
fi fi
# Check if xmlstarlet exists # Check if xmlstarlet exists
if ! xmlstarlet --version ; then if ! xmlstarlet --version; then
err "xmlstarlet not found, please install it" err "xmlstarlet not found, please install it"
exit 127 exit 127
fi fi
COMMIT="$(git rev-parse --short HEAD)" COMMIT="$(git rev-parse --short HEAD)"
BRANCH="$(git rev-parse --abbrev-ref HEAD)" BRANCH="$(git rev-parse --abbrev-ref HEAD)"
clear clear
@ -61,7 +60,7 @@ Patching operation are all not limited at all !
Asset extraction are not needed :)' Asset extraction are not needed :)'
download_tools() { download_tools() {
apktool_link="https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.12.0.jar" apktool_link="https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_3.0.1.jar"
apkeditor_link="https://github.com/REAndroid/APKEditor/releases/download/V1.4.7/APKEditor-1.4.7.jar" apkeditor_link="https://github.com/REAndroid/APKEditor/releases/download/V1.4.7/APKEditor-1.4.7.jar"
cd tools && rm -rf ./*.jar cd tools && rm -rf ./*.jar
@ -78,7 +77,7 @@ darwin() {
[ $(brew list | grep gnu-sed) ] && echo "gnu-sed is installed!" && darwindeps || echo "gnu-sed is not installed. Please install it!" [ $(brew list | grep gnu-sed) ] && echo "gnu-sed is installed!" && darwindeps || echo "gnu-sed is not installed. Please install it!"
} }
if uname -a | grep -i Darwin ; then if uname -a | grep -i Darwin; then
info "You have macOS environment :)" info "You have macOS environment :)"
darwin darwin
clear clear
@ -90,19 +89,27 @@ copy_assets() {
is_unpacked() { is_unpacked() {
[ -d "$DIRPATH"/mbapk/mbapk_unpacked ] || { [ -d "$DIRPATH"/mbapk/mbapk_unpacked ] || {
err "[mbapk_unpacked] not found ! Please unpack APK first !" ; return 127 err "[mbapk_unpacked] not found ! Please unpack APK first !"
return 127
} }
} }
is_unpacked_lib() { is_unpacked_lib() {
[ -d "$DIRPATH"/mbapk/mbapk_unpacked/root/lib ] || { [ -d "$DIRPATH"/mbapk/mbapk_unpacked/root/lib ] || {
err "[mbapk_unpacked/root/lib] folder not found ! Please unpack APK first !" ; return 127 err "[mbapk_unpacked/root/lib] folder not found ! Please unpack APK first !"
return 127
} }
} }
apktool_exist() { apktool_exist() {
[ -f "$DIRPATH"/tools/apktool.jar ] || { err "apktool not found" ; return 127 ; } [ -f "$DIRPATH"/tools/apktool.jar ] || {
err "apktool not found"
return 127
}
} }
apkeditor_exist() { apkeditor_exist() {
[ -f "$DIRPATH"/tools/apkeditor.jar ] || { err "apkeditor not found" ; return 127 ; } [ -f "$DIRPATH"/tools/apkeditor.jar ] || {
err "apkeditor not found"
return 127
}
} }
mb_apk_exist() { mb_apk_exist() {
ls "$DIRPATH"/mbapk/*.apk >/dev/null 2>&1 || { ls "$DIRPATH"/mbapk/*.apk >/dev/null 2>&1 || {
@ -112,13 +119,22 @@ mb_apk_exist() {
} }
unpack_mbcp() { unpack_mbcp() {
[[ $(uname -a | grep Linux) ]] && local - ; set -e [[ $(uname -a | grep Linux) ]] && local -
{ apkeditor_exist && mb_apk_exist ; } || return 0 set -e
{ apkeditor_exist && mb_apk_exist; } || return 0
rm -rf 'mbapk/mbapk_unpacked' rm -rf 'mbapk/mbapk_unpacked'
rm -rf 'mbapk/*.apks' rm -rf 'mbapk/*.apks'
rm -rf 'mbapk/*merged.apk' rm -rf 'mbapk/*merged.apk'
java -jar tools/apkeditor.jar d -i mbapk/*.apk -o mbapk/mbapk_unpacked || { err "Unpacking failed !" ; return 1 ; } java -jar tools/apkeditor.jar d -i mbapk/*.apk -o mbapk/mbapk_unpacked || {
err "Unpacking failed !"
return 1
}
touch 'mbapk/mbapk_unpacked/isreal_unpacked' 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..." info "Cleaning useless files..."
rm -rf 'mbapk/mbapk_unpacked/root/assets/_4A9w8flncUrhDOG8dyqLi_azBTYT3PlSXz0hiCzRQA_' rm -rf 'mbapk/mbapk_unpacked/root/assets/_4A9w8flncUrhDOG8dyqLi_azBTYT3PlSXz0hiCzRQA_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/0QDl12M5S2hKxoKF4cNI4kEX1qDQRMiOd34TXjSjy4M_' rm -rf 'mbapk/mbapk_unpacked/root/assets/0QDl12M5S2hKxoKF4cNI4kEX1qDQRMiOd34TXjSjy4M_'
@ -197,19 +213,20 @@ unpack_mbcp() {
info "Reformatting AndroidManifest.xml with xmlstarlet..." info "Reformatting AndroidManifest.xml with xmlstarlet..."
mv "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml.orig mv "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml.orig
xmlstarlet fo "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml.orig > "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml xmlstarlet fo "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml.orig >"$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml
info "Changing minSdkVersion to 28..." info "Changing minSdkVersion to 28..."
sed -i 's|android:minSdkVersion="24"|android:minSdkVersion="28"|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml sed -i 's|android:minSdkVersion="24"|android:minSdkVersion="28"|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml
} }
repack_mbcp() { repack_mbcp() {
{ apktool_exist && is_unpacked ; } || return 0 { apktool_exist && is_unpacked; } || return 0
info "Repacking APK..." info "Repacking APK..."
echo "Compiled with MBCPApp Patcher by $(whoami) on $(uname -s -r) with commit $COMMIT at $(date). That's all xD" > 'mbapk/mbapk_unpacked/root/assets/mbcp_info/mbcpinfo.txt' echo "Compiled with MBCPApp Patcher by $(whoami) on $(uname -s -r) with commit $COMMIT at $(date). That's all xD" >'mbapk/mbapk_unpacked/root/assets/mbcp_info/mbcpinfo.txt'
( (
set -e set -e
java -jar tools/apkeditor.jar b -i 'mbapk/mbapk_unpacked' -o mbcpapp_apk/MBCP_Flutter_TMP.apk 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..." info "Processing APK signature scheme v2/v3..."
rm -rf mbcpapp_apk/MBCP_Flutter_SelfPatched* 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" 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"
@ -223,19 +240,17 @@ repack_mbcp() {
} }
successunpack() { successunpack() {
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/isreal_unpacked ] if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/isreal_unpacked ]; then
then
echo -e "\033[32m"Unpacked."$1\033[0m" echo -e "\033[32m"Unpacked."$1\033[0m"
else else
echo -e "\033[31m"Not yet unpacked or not found."$1\033[0m" echo -e "\033[31m"Not yet unpacked or not found."$1\033[0m"
fi fi
} }
check_mbshield() { check_mbshield() {
is_unpacked || return 1 is_unpacked || return 1
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/mbshield.szip ] if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/mbshield.szip ]; then
then
info "$mbshield_found" info "$mbshield_found"
iszdefend iszdefend
else else
@ -244,7 +259,8 @@ check_mbshield() {
} }
convert_apks() { convert_apks() {
[[ $(uname -a | grep Linux) ]] && local - ; set -e [[ $(uname -a | grep Linux) ]] && local -
set -e
ls "$DIRPATH"/mbapk/*.apks >/dev/null 2>&1 || { ls "$DIRPATH"/mbapk/*.apks >/dev/null 2>&1 || {
err "APKs missing, cannot continue !" err "APKs missing, cannot continue !"
return 0 return 0
@ -255,6 +271,11 @@ convert_apks() {
mv mbapk/*.apk mbapk/MBOriginal.apk mv mbapk/*.apk mbapk/MBOriginal.apk
info 'Cleaning left over [apks] files...' info 'Cleaning left over [apks] files...'
rm -f mbapk/*.apks 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!" info "You probably can continue to unpack APK!"
} }
@ -274,198 +295,192 @@ echo "Original APK must be inside [mbapk] folder !"
echo ------------------------------------------------------------- echo -------------------------------------------------------------
echo "Current commit : $COMMIT ($BRANCH)" echo "Current commit : $COMMIT ($BRANCH)"
echo "Source code : https://git.disroot.org/mbcp/mbbpatch.git" 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 -------------------------------------------------------------
echo App status : $(successunpack) echo App status : $(successunpack)
echo ------------------------------------------------------------- echo -------------------------------------------------------------
# Main functions # Main functions
PS3='Please select options to continue : ' PS3='Please select options to continue : '
select opt in 'Pull latest commit' 'Unpack APK' 'Convert apks to apk' 'Repack APK' 'Install patched app' 'MBShield Check' 'Patch App' 'Legacy patches' 'Extract assets [ROOT]' 'Launch MBCPApp/MBBank' 'Force close MBCPApp/MBBank' 'Clear MBCPApp/MBBank app data' 'Clean patched app' 'Download/update tools' 'Restart script' 'Exit' select opt in 'Pull latest commit' 'Unpack APK' 'Convert apks to apk' 'Repack APK' 'Install patched app' 'MBShield Check' 'Patch App' 'Legacy patches' 'Extract assets [ROOT]' 'Launch MBCPApp/MBBank' 'Force close MBCPApp/MBBank' 'Clear MBCPApp/MBBank app data' 'Clean patched app' 'Download/update tools' 'Restart script' 'Exit'; do
do
case "$opt" in case "$opt" in
'Download/update tools' ) download_tools ;; 'Download/update tools') download_tools ;;
'Unpack APK' ) unpack_mbcp ;; 'Unpack APK') unpack_mbcp ;;
'Repack APK' ) repack_mbcp ;; 'Repack APK') repack_mbcp ;;
'Patch App' ) run_patcher ;; 'Patch App') run_patcher ;;
'Legacy patches' ) run_legacy_patcher ;; 'Legacy patches') run_legacy_patcher ;;
'MBShield Check' ) check_mbshield ;; 'MBShield Check') check_mbshield ;;
'Convert apks to apk' ) convert_apks ;; 'Convert apks to apk') convert_apks ;;
'Extract assets [ROOT]' ) 'Extract assets [ROOT]')
iszdefend is_unpacked || exit 1
info 'To extract encrypted assets [if current app has MBShield protection] you need rooted device' isvcm1
info 'And trigger a bulit-in app assets extraction !' iszdefend
echo ------------------------------------------- info 'To extract encrypted assets [if current app has MBShield protection] you need rooted device'
PS3='Select options continue, or [3] to quit : ' info 'And trigger a bulit-in app assets extraction !'
select opt in 'Launch MBCPApp/MBBank' 'Extract assets' 'Exit' echo -------------------------------------------
do PS3='Select options continue, or [3] to quit : '
if [ "$opt" == 'Launch MBCPApp/MBBank' ]; then select opt in 'Launch MBCPApp/MBBank' 'Extract assets' 'Exit'; do
if [ "$opt" == 'Launch MBCPApp/MBBank' ]; then
adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
info 'After app started, you MUST need to trigger assets extraction'
info 'By trigger eKYC authetication with reset account password option or register DigitalOTP'
info 'After you got into eKYC screen, close the app, then use Extract assets option to extract assets.'
elif [ "$opt" == 'Extract assets' ]; then
if [ -d "$DIRPATH"/mbapk/mbapk_unpacked/ ]; then
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/mbshield.szip ]; then
info "MBShield found ! Continuing !!!"
warn 'You MUST grant root access to [com.android.shell] in order to extract assets !'
info 'Trying to extract assets...'
adb shell am force-stop com.mbmobile
adb shell rm -rf /sdcard/assets
adb shell mkdir /sdcard/assets
copy_assets flutter_assets
copy_assets dexopt
copy_assets font
copy_assets mbshield
copy_assets media_init_data
copy_assets mlkit_barcode_models
copy_assets models_bundled
copy_assets mwebview
copy_assets zfiles
copy_assets crashlytics-build.properties
copy_assets firmware
copy_assets insider.ttf
copy_assets dlangV5.dat
copy_assets dlangV5.en.dat
copy_assets policy0
copy_assets policy1
copy_assets policy2
copy_assets policy3
copy_assets policy4
copy_assets policy5
copy_assets policy6
copy_assets policy8
copy_assets policy9
copy_assets policym
copy_assets profile
copy_assets rulesV5.dat
copy_assets sgprofile
copy_assets signature
copy_assets smart_ekyc_finall.zip
copy_assets version.json
copy_assets vkeylicensepack
copy_assets voscodesign.vky
info 'Copying assets...'
adb pull /sdcard/assets mbapk/mbapk_unpacked/root/ && good "Assets copied to [mbapk_unpacked/root/] !" || err "Failed to copy assets ! Please try again."
info 'Removing leftover assets...'
adb shell rm -rf /sdcard/assets && good "Removed leftover assets !" || err "Failed to remove leftover assets from device !"
else
info "MBShield not found ! No need to extract assets !"
fi
else
err "Can't find [mbapk/mbapk_unpacked] folder, cannot continue ! "
err "Please unpack APK first !"
fi
elif [ "$opt" == 'Exit' ]; then
clear
bash mbcpapp.sh
break
fi
done
;;
'Restart script')
bash mbcpapp.sh
;;
'Clear MBCPApp/MBBank app data')
info "Clearing [com.mbmobile] data..."
adb shell pm clear com.mbmobile
adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
info 'After app started, you MUST need to trigger assets extraction' info "Current logged in account will remain present, even if app data is cleared !"
info 'By trigger eKYC authetication with reset account password option or register DigitalOTP' ;;
info 'After you got into eKYC screen, close the app, then use Extract assets option to extract assets.' 'Pull latest commit')
elif [ "$opt" == 'Extract assets' ]; then git pull origin mbflutter
if [ -d "$DIRPATH"/mbapk/mbapk_unpacked/ ] info "Please run patcher again !"
then exit
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/mbshield.szip ] ;;
then 'Launch MBCPApp/MBBank')
info "MBShield found ! Continuing !!!" adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
warn 'You MUST grant root access to [com.android.shell] in order to extract assets !' ;;
info 'Trying to extract assets...' 'Force close MBCPApp/MBBank')
adb shell am force-stop com.mbmobile adb shell am force-stop com.mbmobile
adb shell rm -rf /sdcard/assets ;;
adb shell mkdir /sdcard/assets 'Clean patched app')
copy_assets flutter_assets info "Cleaning, please wait..."
copy_assets dexopt rm -f mbcpapp_apk/*.apk
copy_assets font rm -f mbcpapp_apk/*.zip
copy_assets mbshield rm -f mbapk/*.apk
copy_assets media_init_data rm -f mbapk/*.apks
copy_assets mlkit_barcode_models rm -rf mbapk/mbapk_unpacked
copy_assets models_bundled info "Cleared !"
copy_assets mwebview ;;
copy_assets zfiles 'Install patched app')
copy_assets crashlytics-build.properties info 'Select your patched version to continue'
copy_assets firmware PS3='Select patched version to continue, or [4] to quit : '
copy_assets insider.ttf select opt in 'App patched with newer version [v6.4.59+]' 'App patched with specific version' 'App patched with older version [v6.4.55 or lower]' 'Exit'; do
copy_assets dlangV5.dat
copy_assets dlangV5.en.dat
copy_assets policy0
copy_assets policy1
copy_assets policy2
copy_assets policy3
copy_assets policy4
copy_assets policy5
copy_assets policy6
copy_assets policy8
copy_assets policy9
copy_assets policym
copy_assets profile
copy_assets rulesV5.dat
copy_assets sgprofile
copy_assets signature
copy_assets smart_ekyc_finall.zip
copy_assets version.json
copy_assets vkeylicensepack
copy_assets voscodesign.vky
info 'Copying assets...'
adb pull /sdcard/assets mbapk/mbapk_unpacked/root/ && good "Assets copied to [mbapk_unpacked/root/] !" || err "Failed to copy assets ! Please try again."
info 'Removing leftover assets...'
adb shell rm -rf /sdcard/assets && good "Removed leftover assets !" || err "Failed to remove leftover assets from device !"
else
info "MBShield not found ! No need to extract assets !"
fi
else
err "Can't find [mbapk/mbapk_unpacked] folder, cannot continue ! "
err "Please unpack APK first !"
fi
elif [ "$opt" == 'Exit' ]; then if [ "$opt" == 'App patched with newer version [v6.4.59+]' ]; then
clear if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ]; then
bash mbcpapp.sh warn "MBCP Helper / CorePatch must be installed with disable digest verify on !!!"
break warn "You must have connected Android device with USB debugging turned on in order to install !!!"
fi adb kill-server
done adb start-server
;; adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk"
'Restart script' ) adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
bash mbcpapp.sh else
;; err "[MBCP_Flutter_SelfPatched_$COMMIT.apk] not found, cannot continue !"
'Clear MBCPApp/MBBank app data' ) fi
info "Clearing [com.mbmobile] data..."
adb shell pm clear com.mbmobile
adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
info "Current logged in account will remain present, even if app data is cleared !"
;;
'Pull latest commit' )
git pull origin mbflutter
info "Please run patcher again !"
exit
;;
'Launch MBCPApp/MBBank' )
adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
;;
'Force close MBCPApp/MBBank' )
adb shell am force-stop com.mbmobile
;;
'Clean patched app' )
info "Cleaning, please wait..."
rm -f mbcpapp_apk/*.apk
rm -f mbcpapp_apk/*.zip
rm -f mbapk/*.apk
rm -f mbapk/*.apks
rm -rf mbapk/mbapk_unpacked
info "Cleared !"
;;
'Install patched app' )
info 'Select your patched version to continue'
PS3='Select patched version to continue, or [4] to quit : '
select opt in 'App patched with newer version [v6.4.59+]' 'App patched with specific version' 'App patched with older version [v6.4.55 or lower]' 'Exit'
do
if [ "$opt" == 'App patched with newer version [v6.4.59+]' ]; then elif [ "$opt" == 'App patched with specific version' ]; then
if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ] if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ]; then
then warn "MBCP Helper / CorePatch must be installed with disable digest verify on !!!"
warn "MBCP Helper / CorePatch must be installed with disable digest verify on !!!" warn "You must have connected Android device with USB debugging turned on in order to install !!!"
warn "You must have connected Android device with USB debugging turned on in order to install !!!" adb kill-server
adb kill-server adb start-server
adb start-server adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk"
adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk" # Delete zimperium detection files
adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity adb shell su -c rm -rf /data/data/com.mbmobile/files/0*
else adb shell su -c rm -rf /data/data/com.mbmobile/files/1*
err "[MBCP_Flutter_SelfPatched_$COMMIT.apk] not found, cannot continue !" adb shell su -c rm -rf /data/data/com.mbmobile/files/2*
fi adb shell su -c rm -rf /data/data/com.mbmobile/files/3*
adb shell su -c rm -rf /data/data/com.mbmobile/files/4*
adb shell su -c rm -rf /data/data/com.mbmobile/files/5*
adb shell su -c rm -rf /data/data/com.mbmobile/files/6*
adb shell su -c rm -rf /data/data/com.mbmobile/files/7*
adb shell su -c rm -rf /data/data/com.mbmobile/files/8*
adb shell su -c rm -rf /data/data/com.mbmobile/files/9*
adb shell su -c rm -rf /data/data/com.mbmobile/files/KNOV3PN*
adb shell su -c rm -rf /data/data/com.mbmobile/files/zxpolicyme*
adb shell su -c rm -rf /data/data/com.mbmobile/files/policyme*
warn "ATTENTION : Network traffic will be redirected to [medium.com] for 20 seconds !!!"
adb shell su -c 'iptables -t nat -A OUTPUT -p tcp -d 0/0 -j DNAT --to-destination 162.159.153.4:443'
adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
sleep 20
info "Restoring network traffic"
adb shell su -c 'iptables -t nat -F OUTPUT'
info "Press [Try again] after got 1005/1007 error on MB, so it's can skip device not secure dialog !"
else
err "[MBCP_Flutter_SelfPatched_$COMMIT.apk] not found, cannot continue !"
fi
elif [ "$opt" == 'App patched with specific version' ]; then elif [ "$opt" == 'App patched with older version [v6.4.55 or lower]' ]; then
if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ] if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ]; then
then warn "MBCP Helper / CorePatch must be installed with disable digest verify on !!!"
warn "MBCP Helper / CorePatch must be installed with disable digest verify on !!!" warn "You must have connected Android device with USB debugging turned on in order to install !!!"
warn "You must have connected Android device with USB debugging turned on in order to install !!!" adb kill-server
adb kill-server adb start-server
adb start-server adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk"
adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk" adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
# Delete zimperium detection files else
adb shell su -c rm -rf /data/data/com.mbmobile/files/0* err "[MBCP_Flutter_SelfPatched_$COMMIT.apk] not found, cannot continue !"
adb shell su -c rm -rf /data/data/com.mbmobile/files/1* fi
adb shell su -c rm -rf /data/data/com.mbmobile/files/2*
adb shell su -c rm -rf /data/data/com.mbmobile/files/3*
adb shell su -c rm -rf /data/data/com.mbmobile/files/4*
adb shell su -c rm -rf /data/data/com.mbmobile/files/5*
adb shell su -c rm -rf /data/data/com.mbmobile/files/6*
adb shell su -c rm -rf /data/data/com.mbmobile/files/7*
adb shell su -c rm -rf /data/data/com.mbmobile/files/8*
adb shell su -c rm -rf /data/data/com.mbmobile/files/9*
adb shell su -c rm -rf /data/data/com.mbmobile/files/KNOV3PN*
adb shell su -c rm -rf /data/data/com.mbmobile/files/zxpolicyme*
adb shell su -c rm -rf /data/data/com.mbmobile/files/policyme*
warn "ATTENTION : Network traffic will be redirected to [medium.com] for 20 seconds !!!"
adb shell su -c 'iptables -t nat -A OUTPUT -p tcp -d 0/0 -j DNAT --to-destination 162.159.153.4:443'
adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
sleep 20
info "Restoring network traffic"
adb shell su -c 'iptables -t nat -F OUTPUT'
info "Press [Try again] after got 1005/1007 error on MB, so it's can skip device not secure dialog !"
else
err "[MBCP_Flutter_SelfPatched_$COMMIT.apk] not found, cannot continue !"
fi
elif [ "$opt" == 'App patched with older version [v6.4.55 or lower]' ]; then elif [ "$opt" == 'Exit' ]; then
if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ] PS3='Please select options to continue : '
then break
warn "MBCP Helper / CorePatch must be installed with disable digest verify on !!!" fi
warn "You must have connected Android device with USB debugging turned on in order to install !!!" done
adb kill-server
adb start-server
adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk"
adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
else
err "[MBCP_Flutter_SelfPatched_$COMMIT.apk] not found, cannot continue !"
fi
elif [ "$opt" == 'Exit' ]; then
PS3='Please select options to continue : '
break
fi
done
;; ;;
'Exit' ) exit ;; 'Exit') exit ;;
esac esac
done done

View file

@ -77,12 +77,36 @@ for f in patches/*.sh ; do
continue continue
} }
[ -n "$minver" ] && { [ -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')"
[ "$(( $(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" info "[parser] skipping [$pname] as current version is lower than patch version clamp"
continue ; } continue ; }
} || : } || :
[ -n "$maxver" ] && { [ -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')"
[ "$(( $(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" info "[parser] skipping [$pname] as current version is higher than patch version clamp"
continue ; } continue ; }
} || : } || :

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# PATCHNAME: Add verified badge # PATCHNAME: Add verified badge
# MAXVER: # MAXVER:
# MINVER: # MINVER:
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. "$DIRPATH"/common.sh . "$DIRPATH"/common.sh

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# PATCHNAME: Autopatch strings # PATCHNAME: Autopatch strings
# MAXVER: 67 # MAXVER: 6.4.67
# MINVER: # MINVER:
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. "$DIRPATH"/common.sh . "$DIRPATH"/common.sh
@ -46,7 +46,7 @@ sed_libapp 's|To provide the best experience, the MBBank APP needs access to som
# QR on "Other" # QR on "Other"
sed_libapp 's|QR receive|My QR |g' 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|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|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' 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|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. |' 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|' sed_libapp 's|The lastest version|TG/Disroot:mbbpatch|'
# Profile section # Profile section
sed_libapp 's|User profile|View profile|g' sed_libapp 's|User profile|View profile|g'
sed_libapp 's|MB Membership Package|MB Membership |' sed_libapp 's|MB Membership Package|MB Membership |'
sed_libapp 's|email information|Email information|g' sed_libapp 's|email information|Email information|g'
# Account related # Account related
sed_libapp 's|Premium Account Number|Open new lucky account|' 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| |' sed_libapp 's|Cashback 150K| |'
# Forgot password screen # 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|ID card/ID card|Old/New ID card|g'
sed_libapp 's|Number of document|Number of 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. |' 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 # 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 successfully|App theme changed :) |'
sed_libapp 's|Change theme|Store themes|' 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|get notifications|Get notifications|g'
sed_libapp 's|Read the announcement|Notify with voice |' 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 |' 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 !!! |' 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 : # XPE002/XPE003 dialog :
@ -190,7 +190,7 @@ sed_libapp 's|Zalo Pay|ZolaPay |'
sed_libapp 's|MB membership|MB Membership|g' sed_libapp 's|MB membership|MB Membership|g'
# Explore strings (homeLanding -> More -> Discovery) # 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' sed_libapp 's|Challenge to receive gifts|Others |g'
# Close account hints (homeLanding -> Total balance VND -> See -> Close account) # 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 # Expired login session dialog
sed_libapp 's|The login session expired. Please login again|Login session are expired. Please login again|' 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' sed_libapp 's|I understand|OKAY |g'
# Exit application dialog # Exit application dialog
@ -239,7 +239,7 @@ sed_libapp 's|AI Suggestion|MB Suggestion|'
sed_libapp 's|Quick transfer using AI|Quick transfer |' sed_libapp 's|Quick transfer using AI|Quick transfer |'
# Placeholder toolbox # Placeholder toolbox
sed_libapp 's|Shopping, entertainment|MBCPApp Toolbox |' sed_libapp 's|Shopping, entertainment|MBCPApp Toolbox |'

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# PATCHNAME: Better custom background screen # PATCHNAME: Better custom background screen
# MAXVER: # MAXVER:
# MINVER: 83 # MINVER: 6.4.83
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. "$DIRPATH"/common.sh . "$DIRPATH"/common.sh

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# PATCHNAME: Bypass accessibility & malicious apps check # PATCHNAME: Bypass accessibility & malicious apps check
# MAXVER: 55 # MAXVER: 6.4.55
# MINVER: # MINVER:
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. "$DIRPATH"/common.sh . "$DIRPATH"/common.sh

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# PATCHNAME: Bypass GW934 checksum # PATCHNAME: Bypass GW934 checksum
# MAXVER: 67 # MAXVER: 6.4.67
# MINVER: 63 # MINVER: 6.4.63
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. "$DIRPATH"/common.sh . "$DIRPATH"/common.sh
@ -18,11 +18,11 @@ fi
info "Extracting [app-debug.apk]..." info "Extracting [app-debug.apk]..."
unzip -o 'tools/bypass/app-debug.apk' -d 'tools/bypass' 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' mv 'tools/bypass/lib/armeabi-v7a/libSignatureKiller.so' 'tools/bypass/lib/armeabi-v7a/libmodft3.so'
info "Moving libraries..." info "Moving libraries..."
mv 'tools/bypass/lib/arm64-v8a/libmodft3.so' 'mbapk/mbapk_unpacked/root/lib/arm64-v8a' 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/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/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' mv 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libapp.so' 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libmbcp.so'

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# PATCHNAME: Bypass new zimperium detection # PATCHNAME: Bypass new zimperium detection
# MAXVER: 63 # MAXVER: 6.4.63
# MINVER: # MINVER:
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. "$DIRPATH"/common.sh . "$DIRPATH"/common.sh

View file

@ -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-xhdpi
rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/resources/package_1/res/mipmap-xxhdpi rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/resources/package_1/res/mipmap-xxhdpi
rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/resources/package_1/res/mipmap-xxxhdpi rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/resources/package_1/res/mipmap-xxxhdpi
info 'Copying new logos to [mbapk_unpacked/res]...' 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-hdpi mbapk/mbapk_unpacked/resources/package_1/res
cp -r -f "$DIRPATH"/mbcpicons/"$variant"/mipmap-mdpi mbapk/mbapk_unpacked/resources/package_1/res cp -r -f "$DIRPATH"/mbcpicons/"$variant"/mipmap-mdpi mbapk/mbapk_unpacked/resources/package_1/res

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# PATCHNAME: Custom VTAP screen # PATCHNAME: Custom VTAP screen
# MAXVER: # MAXVER:
# MINVER: 52 # MINVER: 6.4.52
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. "$DIRPATH"/common.sh . "$DIRPATH"/common.sh

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# PATCHNAME: Disable MB Membership # PATCHNAME: Disable MB Membership
# MAXVER: 67 # MAXVER: 6.4.67
# MINVER: # MINVER:
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. "$DIRPATH"/common.sh . "$DIRPATH"/common.sh

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# PATCHNAME: Tian37 Fix # PATCHNAME: Tian37 Fix
# MAXVER: # MAXVER:
# MINVER: 85 # MINVER: 6.4.85
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. "$DIRPATH"/common.sh . "$DIRPATH"/common.sh

View file

@ -1,41 +1,44 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# PATCHNAME: Hide VTAP root detection activity & dialog # PATCHNAME: Hide VTAP root detection activity & dialog
# MAXVER: # MAXVER:
# MINVER: # MINVER:
# shellcheck disable=SC1091,SC2016 # shellcheck disable=SC1091,SC2016
. "$DIRPATH"/common.sh . "$DIRPATH"/common.sh
if [[ -d mbapk/mbapk_unpacked/smali/classes4/com/vtap/ ]]; then if [[ -d mbapk/mbapk_unpacked/smali/classes4/com/vtap/ ]]; then
info "VTAP is found on [smali_classes4], Applying!" info "VTAP is found on [smali_classes4], Applying!"
# Adapt with v6.4.53+ # 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/d.smali
sed -i 's|Lcom/vtap/MaintenanceActivity;|Lio/flutter/plugins/MainActivity;|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes4/com/vtap/VTapSetupPlugin.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.smali'
rm -f 'mbapk/mbapk_unpacked/smali/classes4/com/vtap/MaintenanceActivity$1.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' 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 :) # 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/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/' 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 # Zygisk detection workaround test
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' sed -i 's|zygisk|giskzy|g' "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libvosWrapperEx.so
else sed -i 's|zygisk|giskzy|g' "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libvosWrapperEx.so
info "VTAP is not found on [smali_classes4], ignore copying!"
# 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!"
fi fi
if [[ -d mbapk/mbapk_unpacked/smali/classes3/com/vtap ]]; then if [[ -d mbapk/mbapk_unpacked/smali/classes3/com/vtap ]]; then
info "VTAP is found on [smali_classes3], Applying!" info "VTAP is found on [smali_classes3], Applying!"
# Adapt with v6.4.62+ # 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/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/' 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 # 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' 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 else
info "VTAP is not found on [smali_classes3], ignore copying!" info "VTAP is not found on [smali_classes3], ignore copying!"
warn "Something wrong here! [smali_classes3] should contains VTAP !!!" warn "Something wrong here! [smali_classes3] should contains VTAP !!!"
warn "Try to unpack app again !" warn "Try to unpack app again !"
exit 1 exit 1
fi fi

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# PATCHNAME: Legacy hide VTAP activity & dialog # PATCHNAME: Legacy hide VTAP activity & dialog
# MAXVER: # MAXVER:
# MINVER: # MINVER:
# shellcheck disable=SC1091,SC2016 # shellcheck disable=SC1091,SC2016

View file

@ -5,25 +5,35 @@
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. "$DIRPATH"/common.sh . "$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 iszdefend
PS3='Select themes : ' PS3='Select themes : '
select opt in 'MBCP SemiPriority' 'MBCP MBClassic' 'Noel 2024' 'Tre trung' 'Mid-autumn festival' 'Exit' select opt in 'MBCP SemiPriority' 'MBCP MBClassic' 'Noel 2024' 'Tre trung' 'Mid-autumn festival' 'Viet Nam' 'Exit'; do
do
case "$opt" in case "$opt" in
'MBCP SemiPriority') 'MBCP SemiPriority')
info 'Moving [priority] folder...' info 'Moving [priority] folder...'
cp -r 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority' 'blob_patches/semipriority/' cp -r 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/priority' 'blob_patches/semipriority/'
info 'Modifying QR background...' info 'Modifying QR background...'
cp 'blob_patches/semipriority/priority/a_background_image.webp' 'blob_patches/semipriority/priority/qr_img_ThemeDefalut.webp' 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]' 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' cp -r -f 'blob_patches/semipriority/priority/'* 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base'
prioritylogo prioritylogo
info 'Copying [welcom_img_eMbee.webp]...' 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' 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() {
demopriority() {
# Modify the demo screen # Modify the demo screen
info 'Modifying demo screenshot...' 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' 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 +45,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_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' 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...' info 'Cleaning...'
rm -rf 'blob_patches/semipriority/priority' 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" 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." good "Applied [MBCP SemiPriority] theme."
;; ;;
'Mid-autumn festival') 'Mid-autumn festival')
@ -64,51 +74,51 @@ 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/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/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' 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_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_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_img_a80Code.webp'
rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/onboarding/onboarding_bg_a80Landing.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() { 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_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_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_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_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_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' 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" 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." good "Applied [Mid-autumn festival] theme."
;; ;;
'MBCP MBClassic') 'MBCP MBClassic')
info "Ensure that SemiPriority theme is not applied before this !" 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 !!! " 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/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/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/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/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/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' 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 cat mbapk/mbapk_unpacked/root/lib/arm64-v8a/libapp.so | grep -a -oH filestatic >/dev/null 2>&1 && demombclassic
demombclassic() { demombclassic() {
# Modify theme preview on settings # 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' 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_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_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_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_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' 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'
@ -123,50 +133,50 @@ 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_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' 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" 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.' good 'Applied [MBCP MBClassic] theme.'
;; ;;
'Noel 2024') 'Noel 2024')
info "Ensure that SemiPriority theme is not applied before this !" 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 !!! " 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/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/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/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_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/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/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/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/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' cp -f 'blob_patches/noel/qr_img_ThemeDefalut.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base'
# New trungthu # 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/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/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/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_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/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/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/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/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/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/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/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/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_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/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/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/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/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' cp -f 'blob_patches/noel/qr_img_ThemeDefalut.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base'
# Change theme preview # 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.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/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 # Lockdown ability to change other theme, also force Noel 2024 theme
sed_libapp 's|theme|Noel |g' sed_libapp 's|theme|Noel |g'
sed_libapp 's|theme|Noel |g' sed_libapp 's|theme|Noel |g'
@ -175,7 +185,7 @@ do
sed_libapp 's|Change Noel |Noel 2024 |g' sed_libapp 's|Change Noel |Noel 2024 |g'
# Modify the demo screen # 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_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_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' 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'
@ -185,33 +195,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' 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 !" 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" 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." good "Applied [Noel 2024] theme."
;; ;;
'Tre trung') 'Tre trung')
info "Applying..." 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_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_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'
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/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' 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'
cp -f 'blob_patches/tretrung_theme/homeLanding_img_PFM.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel/customUI_img_noelMode.webp'
cp -f 'blob_patches/tretrung_theme/homeLanding_img_assetsReport.webp' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/noel' 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_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/homeLanding_img_PFM.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/homeLanding_img_assetsReport.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/bill_background_gold.webp' 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_screenshot.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/cardService_img_cardMKT.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/cardService_bg_cardMKT.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/bill_background_gold.webp'
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/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 esac
done done

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# PATCHNAME: Remove banners & MiniApp # PATCHNAME: Remove banners & MiniApp
# MAXVER: 67 # MAXVER: 6.4.67
# MINVER: # MINVER:
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. "$DIRPATH"/common.sh . "$DIRPATH"/common.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_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/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_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/banner_transfer_private.webp'
rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/recap_banner.webp' rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/recap_banner.webp'

Some files were not shown because too many files have changed in this diff Show more