improvement
|
|
@ -41,16 +41,31 @@ else
|
|||
FIGLET=:
|
||||
fi
|
||||
|
||||
# Check if java exists on /usr/bin/java
|
||||
echo Checking if Java exists...
|
||||
if [ -x /usr/bin/java ]
|
||||
then
|
||||
JAVA=/usr/bin/java
|
||||
clear
|
||||
else
|
||||
echo "ERROR : Java not found on [/usr/bin/java] !!!"
|
||||
echo "INFO : Please install Java for your Linux distribution ! "
|
||||
echo "INFO : If you have different JDK location, be sure link it"
|
||||
exit
|
||||
JAVA=:
|
||||
fi
|
||||
|
||||
# Banner
|
||||
$FIGLET "MBCPApp Flutter Patcher"
|
||||
echo -------------------------------------------------------------
|
||||
echo -------------------------------------------------------------
|
||||
echo Source code : https://gitlab.com/cuynu/mbbpatch
|
||||
echo Auto patching-tool for MB Bank, mainly for MB Flutter
|
||||
echo Original APK path must be inside [mbapk] folder !
|
||||
echo IMPORTANT : Script must be run on [~/mbbpatch/MBCPApp] !
|
||||
echo -------------------------------------------------------------
|
||||
# Main functions
|
||||
PS3='Please select options to continue : '
|
||||
select opt in 'Unpack APK' 'Repack APK' 'Autopatch strings' 'Change app logo' 'Modify app theme' 'Inject bypass class' 'Extract assets [ROOT]' 'Bypass signature check' 'Launch MBCPApp/MBBank' 'Force close MBCPApp/MBBank' 'Clear MBCPApp/MBBank app data' 'Clean patched app' 'Download tools' 'Install platform-tools' 'Exit'
|
||||
select opt in 'Unpack APK' 'Repack APK' 'MBShield Check' 'Patch App' 'Extract assets [ROOT]' 'Launch MBCPApp/MBBank' 'Force close MBCPApp/MBBank' 'Clear MBCPApp/MBBank app data' 'Clean patched app' 'Download tools' 'Install platform-tools' 'Exit'
|
||||
do
|
||||
if [ "$opt" == 'Download tools' ]; then
|
||||
echo Downloading apktool_2.11.1.jar...
|
||||
|
|
@ -102,42 +117,28 @@ else
|
|||
echo "[mbapk_unpacked] folder not found ! Please unpack APK first !"
|
||||
fi
|
||||
|
||||
elif [ "$opt" == 'MBShield Check' ]; then
|
||||
if [ -f ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/assets/mbshield.szip ]
|
||||
then
|
||||
echo "MBShield found on [mbapk_unpacked/assets/mbshield.szip]" !!!
|
||||
echo "Patching operation is limited due to MBShield :("
|
||||
echo "You need to extract assets from Android device for some patching operation to works properly !!!"
|
||||
else
|
||||
echo "MBShield NOT found on [mbapk_unpacked/assets/]"
|
||||
echo "Patching operation are all not limited at all !"
|
||||
echo "Asset extraction is not needed :)"
|
||||
fi
|
||||
|
||||
|
||||
elif [ "$opt" == 'Autopatch strings' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib ]
|
||||
|
||||
|
||||
elif [ "$opt" == 'Patch App' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib ]
|
||||
then
|
||||
echo Patching strings in libapp.so...
|
||||
sed -i -e 's/online OTP/DigitalOTP/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i -e 's/online OTP/DigitalOTP/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
echo INFO : [online OTP] strings are modified to [DigitalOTP] !
|
||||
sed -i -e 's/Online OTP/DigitalOTP/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i -e 's/Online OTP/DigitalOTP/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
echo INFO : [Online OTP] strings are modified to [DigitalOTP] !
|
||||
sed -i -e 's/MB Bank/MBCPApp/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i -e 's/MB Bank/MBCPApp/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
echo INFO : [MB Bank] strings are modified to [MBCPApp] !
|
||||
sed -i -e 's/The lastest version/No new version !!!/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i -e 's/The lastest version/No new version !!!/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
echo INFO : [The lastest version] strings are modified to [Patched as MBCPApp] !
|
||||
echo Patching link strings....
|
||||
sed -i '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' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i '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' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i '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' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i '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' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|market://details?id=com.mbmobile|https://t.me/mbbpatch/ |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|market://details?id=com.mbmobile|https://t.me/mbbpatch/ |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
else
|
||||
echo "ERROR : [mbapk_unpacked] folder not found, please unpack APK first !"
|
||||
echo "ERROR : Auto patch strings requires [mbapk_unpacked] in order to continue !"
|
||||
fi
|
||||
|
||||
|
||||
elif [ "$opt" == 'Modify app theme' ]; then
|
||||
echo In order to modify app theme, you must extract assets first !
|
||||
|
||||
elif [ "$opt" == 'Inject bypass class' ]; then
|
||||
echo placeholder
|
||||
sh patch.sh
|
||||
else
|
||||
echo "[mbapk_unpacked] folder not found ! Please unpack APK first !"
|
||||
fi
|
||||
|
||||
elif [ "$opt" == 'Extract assets [ROOT]' ]; then
|
||||
echo To extract encrypted assets [if current app has MBShield protection] you need rooted device
|
||||
|
|
@ -159,10 +160,47 @@ then
|
|||
then
|
||||
echo "INFO : MBShield found ! Continuing !!!"
|
||||
echo You MUST grant root access to [com.android.shell] in order to extract assets !
|
||||
echo Trying to extract flutter_assets...
|
||||
adb shell su -c cp -r -f /data/user/0/com.mbmobile/files/flutter_assets /sdcard/flutter_assets
|
||||
echo Trying to extract assets...
|
||||
adb shell am force-stop com.mbmobile
|
||||
adb shell rm -rf /sdcard/assets
|
||||
adb shell mkdir /sdcard/assets
|
||||
adb shell su -c cp -r -f /data/user/0/com.mbmobile/files/flutter_assets /sdcard/assets
|
||||
adb shell su -c cp -r -f /data/user/0/com.mbmobile/files/dexopt /sdcard/assets
|
||||
adb shell su -c cp -r -f /data/user/0/com.mbmobile/files/font /sdcard/assets
|
||||
adb shell su -c cp -r -f /data/user/0/com.mbmobile/files/mbshield /sdcard/assets
|
||||
adb shell su -c cp -r -f /data/user/0/com.mbmobile/files/media_init_data /sdcard/assets
|
||||
adb shell su -c cp -r -f /data/user/0/com.mbmobile/files/mlkit_barcode_models /sdcard/assets
|
||||
adb shell su -c cp -r -f /data/user/0/com.mbmobile/files/models_bundled /sdcard/assets
|
||||
adb shell su -c cp -r -f /data/user/0/com.mbmobile/files/mwebview /sdcard/assets
|
||||
adb shell su -c cp -r -f /data/user/0/com.mbmobile/files/zfiles /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/crashlytics-build.properties /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/firmware /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/insider.ttf /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/dlangV5.dat /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/dlangV5.en.dat /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/policy0 /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/policy1 /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/policy2 /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/policy3 /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/policy4 /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/policy5 /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/policy6 /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/policy8 /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/policy9 /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/policym /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/profile /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/rulesV5.dat /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/sgprofile /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/signature /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/smart_ekyc_finall.zip /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/version.json /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/vkeylicensepack /sdcard/assets
|
||||
adb shell su -c cp -f /data/user/0/com.mbmobile/files/voscodesign.vky /sdcard/assets
|
||||
echo Copying assets...
|
||||
adb pull /sdcard/flutter_assets mbapk/mbapk_unpacked/assets/
|
||||
sleep 2
|
||||
adb pull /sdcard/assets mbapk/mbapk_unpacked/
|
||||
sleep 5
|
||||
adb shell rm -rf /sdcard/assets
|
||||
else
|
||||
echo "INFO : MBShield not found ! No need to extract assets !"
|
||||
fi
|
||||
|
|
@ -178,167 +216,19 @@ else
|
|||
fi
|
||||
done
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
elif [ "$opt" == 'Change app logo' ]; then
|
||||
echo -------------------------------------------
|
||||
echo -------------------------------------------
|
||||
PS3='Select app icon variant to continue, or [5] to quit : '
|
||||
select opt in '30/4-1/5' 'MB Classic' 'Tet' 'Noel' 'Exit'
|
||||
do
|
||||
if [ "$opt" == '30/4-1/5' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/ ]
|
||||
then
|
||||
echo Removing old logos...
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-hdpi
|
||||
echo INFO : tries removed [mipmap-hdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-mdpi
|
||||
echo INFO : tries removed [mipmap-mdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xhdpi
|
||||
echo INFO : tries removed [mipmap-xhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxhdpi
|
||||
echo INFO : tries removed [mipmap-xxhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxxhdpi
|
||||
echo INFO : tries removed [mipmap-xxxhdpi] on [mbapk_unpacked/res] !
|
||||
echo Copying new logos to [mbapk_unpacked/res] !!!
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/thongnhatVN/mipmap-hdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/thongnhatVN/mipmap-mdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/thongnhatVN/mipmap-xhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/thongnhatVN/mipmap-xxhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/thongnhatVN/mipmap-xxxhdpi mbapk/mbapk_unpacked/res
|
||||
echo Done !
|
||||
else
|
||||
echo "[mbapk_unpacked] not found ! Please unpack APK first !"
|
||||
fi
|
||||
|
||||
elif [ "$opt" == 'MB Classic' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/ ]
|
||||
then
|
||||
echo Removing old logos...
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-hdpi
|
||||
echo INFO : tries removed [mipmap-hdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-mdpi
|
||||
echo INFO : tries removed [mipmap-mdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xhdpi
|
||||
echo INFO : tries removed [mipmap-xhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxhdpi
|
||||
echo INFO : tries removed [mipmap-xxhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxxhdpi
|
||||
echo INFO : tries removed [mipmap-xxxhdpi] on [mbapk_unpacked/res] !
|
||||
echo Copying new logos to [mbapk_unpacked/res] !!!
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/normal/mipmap-hdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/normal/mipmap-mdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/normal/mipmap-xhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/normal/mipmap-xxhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/normal/mipmap-xxxhdpi mbapk/mbapk_unpacked/res
|
||||
echo Done !
|
||||
else
|
||||
echo "[mbapk_unpacked] not found ! Please unpack APK first !"
|
||||
fi
|
||||
|
||||
elif [ "$opt" == 'Tet' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/ ]
|
||||
then
|
||||
echo Removing old logos...
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-hdpi
|
||||
echo INFO : tries removed [mipmap-hdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-mdpi
|
||||
echo INFO : tries removed [mipmap-mdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xhdpi
|
||||
echo INFO : tries removed [mipmap-xhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxhdpi
|
||||
echo INFO : tries removed [mipmap-xxhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxxhdpi
|
||||
echo INFO : tries removed [mipmap-xxxhdpi] on [mbapk_unpacked/res] !
|
||||
echo Copying new logos to [mbapk_unpacked/res] !!!
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/tet/mipmap-hdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/tet/mipmap-mdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/tet/mipmap-xhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/tet/mipmap-xxhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/tet/mipmap-xxxhdpi mbapk/mbapk_unpacked/res
|
||||
echo Done !
|
||||
else
|
||||
echo "[mbapk_unpacked] not found ! Please unpack APK first !"
|
||||
fi
|
||||
|
||||
elif [ "$opt" == 'Noel' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/ ]
|
||||
then
|
||||
echo Removing old logos...
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-hdpi
|
||||
echo INFO : tries removed [mipmap-hdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-mdpi
|
||||
echo INFO : tries removed [mipmap-mdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xhdpi
|
||||
echo INFO : tries removed [mipmap-xhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxhdpi
|
||||
echo INFO : tries removed [mipmap-xxhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxxhdpi
|
||||
echo INFO : tries removed [mipmap-xxxhdpi] on [mbapk_unpacked/res] !
|
||||
echo Copying new logos to [mbapk_unpacked/res] !!!
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/noel/mipmap-hdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/noel/mipmap-mdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/noel/mipmap-xhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/noel/mipmap-xxhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/noel/mipmap-xxxhdpi mbapk/mbapk_unpacked/res
|
||||
echo Done !
|
||||
else
|
||||
echo "[mbapk_unpacked] not found ! Please unpack APK first !"
|
||||
fi
|
||||
|
||||
|
||||
elif [ "$opt" == 'Exit' ]; then
|
||||
clear
|
||||
sh mbcpapp.sh
|
||||
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
elif [ "$opt" == 'Bypass signature check' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked ]
|
||||
then
|
||||
# Checks for MBShield, if exists then exit function
|
||||
echo "Checking for MBShield !!"
|
||||
if [ -f ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/assets/mbshield.szip ]
|
||||
then
|
||||
echo "INFO : MBShield found ! Bypass signature checks won't be possible if MBShield is present on current unpacked APK !"
|
||||
echo "INFO : Please use supported version !!!"
|
||||
echo For React Native : MBBank/MB Lite v1.0 up to v6.3.11
|
||||
echo For Flutter : MBBank v6.4.0 up to v6.4.21
|
||||
echo Some specific version has no MBShield can also be used :
|
||||
echo MBBank v6.4.24 [versionCode : 624]
|
||||
echo MBBank v6.4.26 [versionCode : 626]
|
||||
echo MBBank v6.4.45 [versionCode : 658]
|
||||
else
|
||||
echo "INFO : MBShield not found ! Continuing !!! "
|
||||
echo "Placeholder function! "
|
||||
|
||||
fi
|
||||
else
|
||||
echo APK are not unpacked ! Please unpack APK first !
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
elif [ "$opt" == 'Clear MBCPApp/MBBank app data' ]; then
|
||||
adb shell pm clear com.mbmobile
|
||||
adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
|
||||
echo "INFO : Current logged in account will remain present, even if app data is cleared !"
|
||||
|
||||
|
||||
elif [ "$opt" == 'Install platform-tools' ]; then
|
||||
echo ---------------------------------------
|
||||
echo Requesting sudo permisson...
|
||||
echo ---------------------------------------
|
||||
echo ---------------------------------------
|
||||
#Kill adb process if have
|
||||
killall adb
|
||||
killall fastboot
|
||||
sudo sh platformtools.sh
|
||||
|
||||
elif [ "$opt" == 'Launch MBCPApp/MBBank' ]; then
|
||||
|
|
|
|||
432
MBCPApp/patch.sh
Executable file
|
|
@ -0,0 +1,432 @@
|
|||
echo ---------------------------
|
||||
echo Patch list for MBCPApp :
|
||||
PS3='Select patch options : '
|
||||
select opt in 'Autopatch strings' 'Change app logo' 'Remove bulit-in fonts' 'Modify app theme' 'Remove garbage permission and activities' 'Remove banners & MiniApp' 'Bypass accessibility & malicious apps check' 'Hide VTAP root detection activity & dialog' 'Remove new root detection' 'Add modified resources' 'Bypass signature check' 'Exit'
|
||||
do
|
||||
if [ "$opt" == 'Autopatch strings' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib ]
|
||||
then
|
||||
echo Patching strings in [libapp.so]...
|
||||
sed -i -e 's/online OTP/DigitalOTP/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i -e 's/online OTP/DigitalOTP/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
echo INFO : [online OTP] strings are modified to [DigitalOTP] !
|
||||
sed -i -e 's/Online OTP/DigitalOTP/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i -e 's/Online OTP/DigitalOTP/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
echo INFO : [Online OTP] strings are modified to [DigitalOTP] !
|
||||
sed -i -e 's/MB Bank/MBCPApp/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i -e 's/MB Bank/MBCPApp/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
echo INFO : [MB Bank] strings are modified to [MBCPApp] !
|
||||
sed -i -e 's/The lastest version/Telegram: @mbbpatch/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i -e 's/The lastest version/Telegram: @mbbpatch/g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
echo INFO : [The lastest version] strings are modified to [Telegram: @mbbpatch] !
|
||||
echo Patching strings in [libapp.so]...
|
||||
sed -i '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' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i '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' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i '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' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i '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' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i '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' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i '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' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i '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' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i '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' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|market://details?id=com.mbmobile|https://t.me/mbbpatch/ |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|market://details?id=com.mbmobile|https://t.me/mbbpatch/ |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|User profile|View profile|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|User profile|View profile|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|User ID|Phone |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|User ID|Phone |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|MB Membership Package|MB Membership |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|MB Membership Package|MB Membership |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|email information|Email information|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|email information|Email information|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|Premium Account Number|Open new lucky account|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|Premium Account Number|Open new lucky account|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|Cashback 150K|AgainstmicroG|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|Cashback 150K|AgainstmicroG|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|Request for supplying password|Request for new password |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|Request for supplying password|Request for new password |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|ID card/ID card|Old/New ID card|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|ID card/ID card|Old/New ID card|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|Number of document|Number of id card |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|Number of document|Number of id card |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i '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 incorrectly more than 5 times. Please try again or select the "Forgot password" feature to reset pw...|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i '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 incorrectly more than 5 times. Please try again or select the "Forgot password" feature to reset pw...|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|https://www.facebook.com/VietnamMBBank?mibextid=LQQJ4d|https://gitlab.com/cuynu/mbbpatch/? |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|https://www.facebook.com/VietnamMBBank?mibextid=LQQJ4d|https://gitlab.com/cuynu/mbbpatch/? |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|Introduction to receive money|Invite using MB |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|Introduction to receive money|Invite using MB |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|Shopping- Entertainment- Investment|Flutter embedded MiniApps |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|Shopping- Entertainment- Investment|Flutter embedded MiniApps |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|Downloaded themes|Your owned themes|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|Downloaded themes|Your owned themes|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|Coming soon|Placeholder|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|Coming soon|Placeholder|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
sed -i 's|Coming Soon|Placeholder|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|Coming Soon|Placeholder|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
|
||||
|
||||
|
||||
|
||||
else
|
||||
echo "ERROR : [mbapk_unpacked] folder not found, please unpack APK first !"
|
||||
echo "ERROR : Auto patch strings requires [mbapk_unpacked] in order to continue !"
|
||||
fi
|
||||
|
||||
|
||||
elif [ "$opt" == 'Bypass accessibility & malicious apps check' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/patches/bypass_accessibility_applist ]
|
||||
then
|
||||
echo Copying patched code [MbbankUtilitiesPlugin]...
|
||||
cp -r -f 'patches/bypass_accessibility_applist/com' 'mbapk/mbapk_unpacked/smali'
|
||||
echo Patching [AndroidManifest.xml]
|
||||
sed -i 's|<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>| |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/AndroidManifest.xml
|
||||
echo "Patched code applied !"
|
||||
else
|
||||
echo "Patch not found ! Aborting :)"
|
||||
fi
|
||||
|
||||
elif [ "$opt" == 'Remove garbage permission and activities' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked ]
|
||||
then
|
||||
echo Patching [AndroidManifest.xml]...
|
||||
sed -i 's|android:protectionLevel="signature"|android:protectionLevel="normal"|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/AndroidManifest.xml
|
||||
sed -i 's|<uses-permission android:name="com.android.vending.CHECK_LICENSE" android:required="false"/>| |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/AndroidManifest.xml
|
||||
sed -i 's|<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>| |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/AndroidManifest.xml
|
||||
sed -i 's| <uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY" android:required="false"/>| |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/AndroidManifest.xml
|
||||
sed -i 's|<activity android:launchMode="singleTop" android:name="com.vtap.MaintenanceActivity" android:screenOrientation="portrait" android:theme="@style/AppTheme"/>"/>| |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/AndroidManifest.xml
|
||||
|
||||
else
|
||||
echo "[mbapk_unpacked] not found ! Please unpack APK !"
|
||||
fi
|
||||
|
||||
|
||||
elif [ "$opt" == 'Remove banners & MiniApp' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked ]
|
||||
then
|
||||
echo Removing banner links from [libapp.so]...
|
||||
sed -i 's|banner|remove|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so
|
||||
sed -i 's|banner|remove|g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so
|
||||
echo Removing garbage resources...
|
||||
rm -rf 'mbapk/mbapk_unpacked/assets/flutter_assets/packages'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/billing_img_defaultBanner.webp'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/billing_img_defaultBanner.private.webp'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/explore_img_defaultBanner.webp'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/coreBanking_img_successBanner.webp'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/homeLanding_img_defaultBanner.webp'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/homeLanding_img_defaultBanner.private.webp'
|
||||
# Priority exclusive
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/explore_img_defaultBanner.webp'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/coreBanking_img_successBanner.webp'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/homeLanding_img_defaultBanner.webp'
|
||||
echo Patch applied !
|
||||
|
||||
else
|
||||
echo if
|
||||
fi
|
||||
|
||||
|
||||
elif [ "$opt" == 'Bypass signature check' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked ]
|
||||
then
|
||||
# Checks for MBShield, if exists then exit function
|
||||
if [ -f ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/assets/mbshield.szip ]
|
||||
then
|
||||
echo "INFO : MBShield found on unpacked APK ! Bypass signature checks won't be possible if MBShield is present on current unpacked APK !"
|
||||
echo "INFO : Please use supported version !!!"
|
||||
echo For React Native : MBBank/MB Lite v1.0 up to v6.3.11
|
||||
echo For Flutter : MBBank v6.4.0 up to v6.4.21
|
||||
echo Some specific version has no MBShield can also be used :
|
||||
echo MBBank v6.4.24 [versionCode : 624]
|
||||
echo MBBank v6.4.26 [versionCode : 626]
|
||||
echo MBBank v6.4.45 [versionCode : 658]
|
||||
else
|
||||
echo "Function not yet implemented due to issues with original repo, check back later !"
|
||||
|
||||
fi
|
||||
else
|
||||
echo APK are not unpacked ! Please unpack APK first !
|
||||
fi
|
||||
|
||||
elif [ "$opt" == 'Remove new root detection' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked ]
|
||||
then
|
||||
echo Removing [libZDefend.so]...
|
||||
rm 'mbapk/mbapk_unpacked/lib/arm64-v8a/libZDefend.so'
|
||||
rm 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libZDefend.so'
|
||||
echo Removing [libvvb2060.so]...
|
||||
rm 'mbapk/mbapk_unpacked/lib/arm64-v8a/libvvb2060.so'
|
||||
rm 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libvvb2060.so'
|
||||
echo Removing [libtoolChecker.so]...
|
||||
rm 'mbapk/mbapk_unpacked/lib/arm64-v8a/libtoolChecker.so'
|
||||
rm 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libtoolChecker.so'
|
||||
echo Removing garbage files...
|
||||
sleep 3
|
||||
rm -rf 'mbapk/mbapk_unpacked/assets/zfiles'
|
||||
rm 'mbapk/mbapk_unpacked/assets/dlangV5.dat'
|
||||
rm 'mbapk/mbapk_unpacked/assets/dlangV5.en.dat'
|
||||
rm 'mbapk/mbapk_unpacked/assets/policy0'
|
||||
rm 'mbapk/mbapk_unpacked/assets/policy1'
|
||||
rm 'mbapk/mbapk_unpacked/assets/policy2'
|
||||
rm 'mbapk/mbapk_unpacked/assets/policy3'
|
||||
rm 'mbapk/mbapk_unpacked/assets/policy4'
|
||||
rm 'mbapk/mbapk_unpacked/assets/policy5'
|
||||
rm 'mbapk/mbapk_unpacked/assets/policy6'
|
||||
rm 'mbapk/mbapk_unpacked/assets/policy8'
|
||||
rm 'mbapk/mbapk_unpacked/assets/policy9'
|
||||
rm 'mbapk/mbapk_unpacked/assets/policym'
|
||||
rm 'mbapk/mbapk_unpacked/assets/rulesV5.dat'
|
||||
echo Modifying [AndroidManifest.xml]
|
||||
sed -i 's|<provider android:authorities="com.mbmobile.honor.essence.enter" android:exported="false" android:name="androidx.cigarette.titles.corporation.moscow.Township"/>| |g' ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/AndroidManifest.xml
|
||||
|
||||
|
||||
else
|
||||
echo "[mbapk_unpacked] not found ! Please unpack APK ! "
|
||||
fi
|
||||
|
||||
elif [ "$opt" == 'Add modified resources' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked ]
|
||||
then
|
||||
echo "Copying modified resources..."
|
||||
cp -r -f 'patches/resources/raw' 'mbapk/mbapk_unpacked/res/'
|
||||
cp -f 'patches/resources/strings-vi/strings.xml' 'mbapk/mbapk_unpacked/res/values-vi/'
|
||||
else
|
||||
echo "[mbapk_unpacked] not found ! Please unpack APK first !"
|
||||
fi
|
||||
|
||||
elif [ "$opt" == 'Remove bulit-in fonts' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked ]
|
||||
then
|
||||
echo "Removing..."
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Black.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-BlackItalic.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Bold.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-BoldItalic.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Extrabold.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-ExtraboldItalic.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCy-Extrathin.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCy-ExtrathinItalic.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Light.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-LightItalic.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Regular.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-RegularItalic.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Semibold.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-SemiboldItalic.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Thin.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-ThinItalic.otf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/SF-Pro-Display-Medium.ttf'
|
||||
rm 'mbapk/mbapk_unpacked/res/font/avenir_next_bold.ttf'
|
||||
rm 'mbapk/mbapk_unpacked/res/font/bold.ttf'
|
||||
rm 'mbapk/mbapk_unpacked/res/font/medium.ttf'
|
||||
rm 'mbapk/mbapk_unpacked/res/font/regular.ttf'
|
||||
rm 'mbapk/mbapk_unpacked/assets/insider.ttf'
|
||||
rm -rf 'mbapk/mbapk_unpacked/assets/font'
|
||||
# Placeholder font to fix display issues when open details balance notifications
|
||||
echo "Creating placeholder font..."
|
||||
touch 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Regular.otf'
|
||||
# Placeholder to prevent compiling resource fail
|
||||
touch 'mbapk/mbapk_unpacked/res/font/avenir_next_bold.ttf'
|
||||
touch 'mbapk/mbapk_unpacked/res/font/bold.ttf'
|
||||
touch 'mbapk/mbapk_unpacked/res/font/medium.ttf'
|
||||
touch 'mbapk/mbapk_unpacked/res/font/regular.ttf'
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
else
|
||||
echo "[mbapk_unpacked] not found ! Please unpack APK first !"
|
||||
fi
|
||||
|
||||
|
||||
elif [ "$opt" == 'Modify app theme' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked ]
|
||||
then
|
||||
echo In order to modify app theme, you must extract assets first if current unpacked APK has MBShield!
|
||||
PS3='Select themes : '
|
||||
select opt in 'MBCP SemiPriority' 'MBCP MBClassic' 'Exit'
|
||||
do
|
||||
if [ "$opt" == 'MBCP SemiPriority' ]; then
|
||||
echo Moving [priority] folder...
|
||||
mv 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority' 'patches/semipriority/'
|
||||
sleep 2
|
||||
echo Modifying QR background...
|
||||
rm 'patches/semipriority/priority/qr_img_ThemeDefalut.webp'
|
||||
mv 'patches/semipriority/priority/a_background_image.webp' 'patches/semipriority/priority/qr_img_ThemeDefalut.webp'
|
||||
echo Renaming to [base]...
|
||||
mv 'patches/semipriority/priority' 'patches/semipriority/base'
|
||||
echo Copying to [flutter_assets/assets/images/dynamic/base]
|
||||
cp -r -f 'patches/semipriority/base' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic'
|
||||
sleep 2
|
||||
echo Renaming back to [priority]
|
||||
mv 'patches/semipriority/base' 'patches/semipriority/priority'
|
||||
echo Copying back to [flutter_assets]...
|
||||
cp -r -f 'patches/semipriority/priority' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic'
|
||||
sleep 2
|
||||
echo Copying [ic_logo_mb_text.svg]...
|
||||
cp -f 'patches/semipriority/ic_logo_mb_text.svg' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/svgs/'
|
||||
echo Copying [welcom_img_eMbee.webp]...
|
||||
cp -f 'patches/semipriority/welcom_img_eMbee.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base'
|
||||
echo Cleaning...
|
||||
rm -rf 'patches/semipriority/priority'
|
||||
sleep 2
|
||||
echo "Applied [MBCP SemiPriority] theme."
|
||||
|
||||
|
||||
|
||||
elif [ "$opt" == 'MBCP MBClassic' ]; then
|
||||
echo "Ensure that you did NOT applied SemiPriority theme before apply this theme !"
|
||||
echo "Otherwise it will conflicts like mixed SemiPriority and MB Classic theme, You've warned !!! "
|
||||
cp -f 'patches/mbclassic/a_background_image.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base'
|
||||
cp -f 'patches/mbclassic/general_bg_screenshot.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base'
|
||||
cp -f 'patches/mbclassic/homeLanding_bg_main.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base'
|
||||
cp -f 'patches/mbclassic/loading_bg_main.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base'
|
||||
cp -f 'patches/mbclassic/login_bg_main.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base'
|
||||
cp -f 'patches/mbclassic/qr_img_ThemeDefalut.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base'
|
||||
echo Applied [MBCP MBClassic] theme.
|
||||
elif [ "$opt" == 'Exit' ]; then
|
||||
sh patch.sh
|
||||
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
else
|
||||
echo "[mbapk_unpacked] folder not found, can't continue !"
|
||||
fi
|
||||
|
||||
|
||||
elif [ "$opt" == 'Change app logo' ]; then
|
||||
echo -------------------------------------------
|
||||
echo -------------------------------------------
|
||||
PS3='Select app icon variant to continue, or [5] to quit : '
|
||||
select opt in '30/4-1/5' 'MB Classic' 'Tet' 'Noel' 'Exit'
|
||||
do
|
||||
if [ "$opt" == '30/4-1/5' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/ ]
|
||||
then
|
||||
echo Removing old logos...
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-hdpi
|
||||
echo INFO : tries removed [mipmap-hdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-mdpi
|
||||
echo INFO : tries removed [mipmap-mdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xhdpi
|
||||
echo INFO : tries removed [mipmap-xhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxhdpi
|
||||
echo INFO : tries removed [mipmap-xxhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxxhdpi
|
||||
echo INFO : tries removed [mipmap-xxxhdpi] on [mbapk_unpacked/res] !
|
||||
echo Copying new logos to [mbapk_unpacked/res] !!!
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/thongnhatVN/mipmap-hdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/thongnhatVN/mipmap-mdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/thongnhatVN/mipmap-xhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/thongnhatVN/mipmap-xxhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/thongnhatVN/mipmap-xxxhdpi mbapk/mbapk_unpacked/res
|
||||
echo Done !
|
||||
else
|
||||
echo "[mbapk_unpacked] not found ! Please unpack APK first !"
|
||||
fi
|
||||
|
||||
elif [ "$opt" == 'MB Classic' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/ ]
|
||||
then
|
||||
echo Removing old logos...
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-hdpi
|
||||
echo INFO : tries removed [mipmap-hdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-mdpi
|
||||
echo INFO : tries removed [mipmap-mdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xhdpi
|
||||
echo INFO : tries removed [mipmap-xhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxhdpi
|
||||
echo INFO : tries removed [mipmap-xxhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxxhdpi
|
||||
echo INFO : tries removed [mipmap-xxxhdpi] on [mbapk_unpacked/res] !
|
||||
echo Copying new logos to [mbapk_unpacked/res] !!!
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/normal/mipmap-hdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/normal/mipmap-mdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/normal/mipmap-xhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/normal/mipmap-xxhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/normal/mipmap-xxxhdpi mbapk/mbapk_unpacked/res
|
||||
echo Done !
|
||||
else
|
||||
echo "[mbapk_unpacked] not found ! Please unpack APK first !"
|
||||
fi
|
||||
|
||||
elif [ "$opt" == 'Tet' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/ ]
|
||||
then
|
||||
echo Removing old logos...
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-hdpi
|
||||
echo INFO : tries removed [mipmap-hdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-mdpi
|
||||
echo INFO : tries removed [mipmap-mdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xhdpi
|
||||
echo INFO : tries removed [mipmap-xhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxhdpi
|
||||
echo INFO : tries removed [mipmap-xxhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxxhdpi
|
||||
echo INFO : tries removed [mipmap-xxxhdpi] on [mbapk_unpacked/res] !
|
||||
echo Copying new logos to [mbapk_unpacked/res] !!!
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/tet/mipmap-hdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/tet/mipmap-mdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/tet/mipmap-xhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/tet/mipmap-xxhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/tet/mipmap-xxxhdpi mbapk/mbapk_unpacked/res
|
||||
echo Done !
|
||||
else
|
||||
echo "[mbapk_unpacked] not found ! Please unpack APK first !"
|
||||
fi
|
||||
|
||||
elif [ "$opt" == 'Noel' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/ ]
|
||||
then
|
||||
echo Removing old logos...
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-hdpi
|
||||
echo INFO : tries removed [mipmap-hdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-mdpi
|
||||
echo INFO : tries removed [mipmap-mdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xhdpi
|
||||
echo INFO : tries removed [mipmap-xhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxhdpi
|
||||
echo INFO : tries removed [mipmap-xxhdpi] on [mbapk_unpacked/res] !
|
||||
rm -rf ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/res/mipmap-xxxhdpi
|
||||
echo INFO : tries removed [mipmap-xxxhdpi] on [mbapk_unpacked/res] !
|
||||
echo Copying new logos to [mbapk_unpacked/res] !!!
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/noel/mipmap-hdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/noel/mipmap-mdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/noel/mipmap-xhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/noel/mipmap-xxhdpi mbapk/mbapk_unpacked/res
|
||||
cp -r -f ~/mbbpatch/MBCPApp/mbcpicons/noel/mipmap-xxxhdpi mbapk/mbapk_unpacked/res
|
||||
echo Done !
|
||||
else
|
||||
echo "[mbapk_unpacked] not found ! Please unpack APK first !"
|
||||
fi
|
||||
|
||||
|
||||
elif [ "$opt" == 'Exit' ]; then
|
||||
sh patch.sh
|
||||
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
elif [ "$opt" == 'Hide VTAP root detection activity & dialog' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/patches/skip_maintainscreen ]
|
||||
then
|
||||
echo "Applying patches to [mbapk/mbapk_unpacked/smali_classes4]..."
|
||||
rm 'mbapk/mbapk_unpacked/smali_classes4/com/vtap/MaintenanceActivity.smali'
|
||||
rm 'mbapk/mbapk_unpacked/smali_classes4/com/vtap/MaintenanceActivity$1.smali'
|
||||
rm 'mbapk/mbapk_unpacked/smali_classes4/com/vtap/VTapSetupPlugin.smali'
|
||||
cp -r -f 'patches/skip_maintainscreen/com' 'mbapk/mbapk_unpacked/smali_classes4/'
|
||||
else
|
||||
echo "Patch not found ! Aborting :)"
|
||||
fi
|
||||
|
||||
elif [ "$opt" == 'Exit' ]; then
|
||||
clear
|
||||
./mbcpapp.sh
|
||||
exit
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
BIN
MBCPApp/patches/mbclassic/a_background_image.webp
Normal file
|
After Width: | Height: | Size: 135 KiB |
BIN
MBCPApp/patches/mbclassic/general_bg_screenshot.webp
Normal file
|
After Width: | Height: | Size: 135 KiB |
BIN
MBCPApp/patches/mbclassic/homeLanding_bg_main.webp
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
MBCPApp/patches/mbclassic/loading_bg_main.webp
Normal file
|
After Width: | Height: | Size: 135 KiB |
BIN
MBCPApp/patches/mbclassic/login_bg_main.webp
Normal file
|
After Width: | Height: | Size: 135 KiB |
BIN
MBCPApp/patches/mbclassic/qr_img_ThemeDefalut.webp
Normal file
|
After Width: | Height: | Size: 135 KiB |
BIN
MBCPApp/patches/resources/raw/bottom_logo.png
Normal file
|
After Width: | Height: | Size: 9.4 KiB |