Compare commits
45 changed files with 1073 additions and 536 deletions
2
LICENSE
2
LICENSE
|
|
@ -1,6 +1,6 @@
|
|||
MIT License
|
||||
|
||||
Copyright (c) 2025 MBCPApp Author.
|
||||
Copyright (c) 2026 Cuynu.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
|
|||
Binary file not shown.
|
After Width: | Height: | Size: 453 KiB |
106
MBCPApp/blob_patches/customvtap/custom_vtapdialog_activity.xml
Normal file
106
MBCPApp/blob_patches/customvtap/custom_vtapdialog_activity.xml
Normal file
|
|
@ -0,0 +1,106 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="fill_parent"
|
||||
android:layout_margin="@dimen/fab_margin"
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
<LinearLayout
|
||||
android:gravity="center"
|
||||
android:orientation="vertical"
|
||||
android:id="@id/llBottom"
|
||||
android:paddingTop="2.0dip"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintBottom_toBottomOf="parent">
|
||||
<Button
|
||||
android:textColor="#ffff0000"
|
||||
android:tag="0"
|
||||
android:visibility="visible"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="BẠN ĐANG GẶP LỖI NGHIÊM TRỌNG TRONG APP !!!" />
|
||||
<Button
|
||||
android:textColor="#ffff0000"
|
||||
android:tag="0"
|
||||
android:visibility="visible"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="APP MBCP sẽ KHÔNG THỂ HOẠT ĐỘNG CHO ĐẾN KHI FIX" />
|
||||
<Button
|
||||
android:textColor="#ffff0000"
|
||||
android:tag="0"
|
||||
android:visibility="visible"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="VUI LÒNG KIỂM TRA LẠI CÁC BƯỚC CÀI ĐẶT APP" />
|
||||
<Button
|
||||
android:textColor="#ff6698ff"
|
||||
android:tag="0"
|
||||
android:visibility="visible"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="TRUY CẬP WEB SAU ĐỂ THỬ FIX : tinyurl.com/vtapfixvi" />
|
||||
<Button
|
||||
android:textColor="#ffff0000"
|
||||
android:tag="0"
|
||||
android:visibility="visible"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="TRONG TRƯỜNG HỢP ĐÃ LÀM ĐÚNG TẤT CẢ, CHỤP MÀN HÌNH NÀY VÀ BÁO LỖI QUA Telegram @cuynuchat hoặc YouTube @cuynu !!!" />
|
||||
<Button
|
||||
android:tag="0"
|
||||
android:visibility="invisible"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="" />
|
||||
<Button
|
||||
android:tag="0"
|
||||
android:visibility="invisible"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="" />
|
||||
<Button
|
||||
android:id="@id/btnSecond"
|
||||
android:tag="0"
|
||||
android:visibility="gone"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="" />
|
||||
<Button
|
||||
android:id="@id/btnMain"
|
||||
android:tag="1"
|
||||
android:visibility="gone"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="" />
|
||||
</LinearLayout>
|
||||
<ImageView
|
||||
android:id="@id/imgAlert"
|
||||
android:background="@color/cardview_shadow_end_color"
|
||||
android:visibility="gone"
|
||||
android:layout_width="100.0dip"
|
||||
android:layout_height="100.0dip"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.5"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
<androidx.viewpager2.widget.ViewPager2
|
||||
android:id="@id/view_pager"
|
||||
android:layout_width="0.0dip"
|
||||
android:layout_height="0.0dip"
|
||||
app:layout_constraintBottom_toTopOf="@id/tab_layout"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="1.0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@id/imgAlert"
|
||||
app:layout_constraintVertical_bias="0.0" />
|
||||
<com.google.android.material.tabs.TabLayout
|
||||
android:id="@id/tab_layout"
|
||||
android:layout_width="fill_parent"
|
||||
android:layout_height="2.0dip"
|
||||
android:layout_marginBottom="16.0dip"
|
||||
app:layout_constraintBottom_toTopOf="@id/llBottom"
|
||||
app:layout_constraintTop_toTopOf="@id/llBottom"
|
||||
app:tabIndicatorColor="#ffffffff" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
||||
|
|
@ -43,7 +43,7 @@
|
|||
<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_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_faceRollClockWise">Please keep your face upright</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="chip_text">Chip text</string>
|
||||
<string name="clear_text_end_icon_content_description">Clear text</string>
|
||||
<string name="click_setting_qr">Chạm để cài đặt
|
||||
QR</string>
|
||||
<string name="click_setting_qr_big_qr">Chạm để cài đặt QR</string>
|
||||
<string name="click_setting_qr">Touch to setup QR</string>
|
||||
<string name="click_setting_qr_big_qr">Touch to setup QR</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="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_title">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 GMS/microG</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_title">Get Google Play services</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">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_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>
|
||||
|
|
|
|||
BIN
MBCPApp/blob_patches/searchicon/search_718.png
Normal file
BIN
MBCPApp/blob_patches/searchicon/search_718.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
# imported from https://github.com/dylanaraps/pure-bash-bible
|
||||
bb_split() {
|
||||
# Usage: split "string" "delimiter"
|
||||
# Usage: split "string" "delimiter" "count"
|
||||
IFS=$'\n' read -d "" -ra arr <<< "${1//$2/$'\n'}"
|
||||
# printf '%s\n' "${arr[@]}"
|
||||
printf '%s\n' "${arr[$3]}"
|
||||
|
|
@ -29,6 +29,7 @@ strip_all() {
|
|||
|
||||
getvar() {
|
||||
# Usage: getline "n" "pattern" "file"
|
||||
i=0
|
||||
while IFS= read -r line; do
|
||||
i=$((i+1))
|
||||
[ "$i" = "$1" ] && printf '%s\n' "${line##$2}" && return
|
||||
|
|
@ -44,16 +45,13 @@ sed_libapp() {
|
|||
) && info "[sed_libapp] [$target] -> [$replacement]" || warn "[sed_libapp] 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
|
||||
sed_libtian37() {
|
||||
target=$(bb_split "$1" '|' '1')
|
||||
replacement=$(bb_split "$1" '|' '2')
|
||||
(
|
||||
sed -i "$1" "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libanTian37.so \
|
||||
"$DIRPATH"/mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libanTian37.so
|
||||
) && info "[sed_libtian37] [$target] -> [$replacement]" || warn "[sed_libtian37] replacing [$target] failed !"
|
||||
}
|
||||
|
||||
# libdesignersactivists.so are former known as libZDefend.so
|
||||
|
|
@ -76,6 +74,14 @@ iszdefend() {
|
|||
fi
|
||||
}
|
||||
|
||||
isvcm1() {
|
||||
if [[ -f mbapk/mbapk_unpacked/root/lib/arm64-v8a/libvcm1.so ]]; then
|
||||
warn "As of v6.4.86+, to extract assets, you need to clear app data and then open the app again!"
|
||||
else
|
||||
info "[libvcm1.so] not found! ignoring notice"
|
||||
fi
|
||||
}
|
||||
|
||||
manifest_remove() {
|
||||
sed -i "/$1/d" "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml && \
|
||||
info "[manifest_remove] removing $1" || \
|
||||
|
|
@ -87,11 +93,12 @@ pblock() {
|
|||
echo "$1" > "$blocker"
|
||||
}
|
||||
|
||||
get_mb_ver() {
|
||||
mb_ver() {
|
||||
[ -z "$1" ] && return 42
|
||||
a="$(grep -m1 'android:versionName' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml | tr ' ' '\n' | grep -m1 'android:versionName')"
|
||||
a="$(bb_split "$a" '=' '1')"
|
||||
a="$(strip_all "$a" '"')"
|
||||
bb_split "$a" '.' '2'
|
||||
bb_split "$a" '.' "$1"
|
||||
}
|
||||
|
||||
good() {
|
||||
|
|
|
|||
|
|
@ -1,16 +1,15 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
echo "DO NOT use these patches with newer app!"
|
||||
echo "Legacy patches list for MBCPApp :"
|
||||
PS3='Select patch options :'
|
||||
select opt in 'Bypass 1200 error [v6.4.45]' 'Bypass signature check' '[TEST] Remove v6.4.56 root detection' 'Exit'
|
||||
do
|
||||
if [ "$opt" == 'Bypass 1200 error [v6.4.45]' ]; then
|
||||
if [ "$opt" == 'Bypass 1200 error [v6.4.45]' ]; then
|
||||
[ ! -f 'bypass1200/*.apks' ] && echo "Download the [v6.4.47] app from Telegram [@embeeapks] or Google Play API with versionCode 661" && echo "Then copy it to [bypass1200] folder!" && exit 1
|
||||
echo "Notice : v6.4.45 are now got [GW525 - Force update !] !!!"
|
||||
echo "This patch will remain available but you cannot bypass GW525 error !"
|
||||
mkdir bypass1200
|
||||
echo "Downloading v6.4.47 apks..."
|
||||
wget https://github.com/ghclonenah1/mbbpatch_release/releases/download/a/embee_v6.4.47_arm64-v8a_armeabi-v7a.apks -q --show-progress
|
||||
mv *.apks bypass1200/
|
||||
mkdir -p bypass1200
|
||||
echo "Unpacking..."
|
||||
java -jar tools/apkeditor.jar m -i bypass1200/*.apks
|
||||
java -jar tools/apktool.jar d bypass1200/*.apk -o bypass1200/unpacked -j$(nproc)
|
||||
|
|
@ -21,17 +20,17 @@ if [ "$opt" == 'Bypass 1200 error [v6.4.45]' ]; then
|
|||
echo "Cleaning..."
|
||||
rm -rf bypass1200
|
||||
## MB Forced update to 658, it must be spoofed!
|
||||
echo "Patching [apktool.yml]..."
|
||||
echo "Patching [AndroidManifest.xml]..."
|
||||
sed -i 's|658|700|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml
|
||||
echo "This patch are applied by MBCPApp Patcher on $(uname -s -r) with commit :" $(git rev-parse --short HEAD) at $(git show -s --format=%cd HEAD). > 'mbapk/mbapk_unpacked/root/assets/mbcp_info/bypass_1200_error.inf'
|
||||
|
||||
|
||||
# Use bypass gw934 checksum for this patch instead
|
||||
# Use bypass gw934 checksum for this patch instead
|
||||
elif [ "$opt" == 'Bypass signature check' ]; then
|
||||
echo "Applying patch [Bypass signature check]..."
|
||||
if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ]
|
||||
then
|
||||
# Checks for MBShield, if exists then exit function
|
||||
# Checks for MBShield, if exists then exit function
|
||||
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/assets/mbshield.szip ]
|
||||
then
|
||||
info "MBShield found on unpacked APK ! Bypass signature checks won't be possible if MBShield is present on current unpacked APK !"
|
||||
|
|
@ -52,7 +51,6 @@ fi
|
|||
elif [ "$opt" == '[TEST] Remove v6.4.56 root detection' ]; then
|
||||
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali ]
|
||||
then
|
||||
|
||||
echo "Applying patch..."
|
||||
echo "Removing checksum from provider..."
|
||||
sed -i 's|e1a14adc915d7ad159edf2668b0dfcb359cf86538642de0e425d027f66eb07b2||g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes/androidx/UnderlyingVcl.smali
|
||||
|
|
@ -87,10 +85,10 @@ fi
|
|||
mv 'temp/libweneedfreedom.so' 'temp/libdesignersactivists.so'
|
||||
cp -f 'temp/libdesignersactivists.so' 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libdesignersactivists.so'
|
||||
rm -rf temp
|
||||
echo "This patch are applied by MBCPApp Patcher on $(uname -s -r) with commit :" $(git rev-parse --short HEAD) at $(git show -s --format=%cd HEAD). > 'mbapk/mbapk_unpacked/assets/mbcp_info/remove_v6.4.56_root_detection.inf'
|
||||
echo "This patch is applied by MBCPApp Patcher on $(uname -s -r) with commit :" $(git rev-parse --short HEAD) at $(git show -s --format=%cd HEAD). > 'mbapk/mbapk_unpacked/assets/mbcp_info/remove_v6.4.56_root_detection.inf'
|
||||
echo "Applied [Remove v6.4.56 root detection] patch !!!"
|
||||
else
|
||||
echo "[UnderlyingVcl.smali] not found! Please clear patched app then unpack again!"
|
||||
echo "[UnderlyingVcl.smali] not found!"
|
||||
fi
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -15,12 +15,12 @@ clear
|
|||
. "$DIRPATH/common.sh"
|
||||
|
||||
# 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 :)"
|
||||
fi
|
||||
|
||||
# Check if figlet exists or not
|
||||
if command -v figlet ; then
|
||||
if command -v figlet; then
|
||||
FIGLET=figlet
|
||||
else
|
||||
warn "figlet not found, ignoring banner !"
|
||||
|
|
@ -28,26 +28,25 @@ else
|
|||
fi
|
||||
|
||||
# Check if java exists
|
||||
if ! java -version ; then
|
||||
if ! java -version; then
|
||||
err "Java not found !!!"
|
||||
info "Please install Java for your system ! "
|
||||
exit 127
|
||||
fi
|
||||
|
||||
# Check if wget exists
|
||||
if ! wget --version ; then
|
||||
if ! wget --version; then
|
||||
err "wget not found !!!"
|
||||
info "Please install wget for your system !"
|
||||
exit 127
|
||||
fi
|
||||
|
||||
# Check if xmlstarlet exists
|
||||
if ! xmlstarlet --version ; then
|
||||
if ! xmlstarlet --version; then
|
||||
err "xmlstarlet not found, please install it"
|
||||
exit 127
|
||||
fi
|
||||
|
||||
|
||||
COMMIT="$(git rev-parse --short HEAD)"
|
||||
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
|
||||
clear
|
||||
|
|
@ -61,8 +60,8 @@ Patching operation are all not limited at all !
|
|||
Asset extraction are not needed :)'
|
||||
|
||||
download_tools() {
|
||||
apktool_link="https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.12.0.jar"
|
||||
apkeditor_link="https://github.com/REAndroid/APKEditor/releases/download/V1.4.6/APKEditor-1.4.6.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"
|
||||
|
||||
cd tools && rm -rf ./*.jar
|
||||
wget -q --show-progress -O apktool.jar "$apktool_link" || err "downloading apktool failed"
|
||||
|
|
@ -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!"
|
||||
}
|
||||
|
||||
if uname -a | grep -i Darwin ; then
|
||||
if uname -a | grep -i Darwin; then
|
||||
info "You have macOS environment :)"
|
||||
darwin
|
||||
clear
|
||||
|
|
@ -90,19 +89,27 @@ copy_assets() {
|
|||
|
||||
is_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() {
|
||||
[ -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() {
|
||||
[ -f "$DIRPATH"/tools/apktool.jar ] || { err "apktool not found" ; return 127 ; }
|
||||
[ -f "$DIRPATH"/tools/apktool.jar ] || {
|
||||
err "apktool not found"
|
||||
return 127
|
||||
}
|
||||
}
|
||||
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() {
|
||||
ls "$DIRPATH"/mbapk/*.apk >/dev/null 2>&1 || {
|
||||
|
|
@ -112,13 +119,22 @@ mb_apk_exist() {
|
|||
}
|
||||
|
||||
unpack_mbcp() {
|
||||
[[ $(uname -a | grep Linux) ]] && local - ; set -e
|
||||
{ apkeditor_exist && mb_apk_exist ; } || return 0
|
||||
[[ $(uname -a | grep Linux) ]] && local -
|
||||
set -e
|
||||
{ apkeditor_exist && mb_apk_exist; } || return 0
|
||||
rm -rf 'mbapk/mbapk_unpacked'
|
||||
rm -rf 'mbapk/*.apks'
|
||||
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'
|
||||
unzip -l mbapk/MBOriginal.apk | grep -oH "ic-appmb.ttf" && good "Current converted app is MBBank! Continuing" || {
|
||||
err "Current converted app is NOT MBBank! Deleting files"
|
||||
rm -rf mbapk/*
|
||||
return 1
|
||||
}
|
||||
info "Cleaning useless files..."
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/_4A9w8flncUrhDOG8dyqLi_azBTYT3PlSXz0hiCzRQA_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/0QDl12M5S2hKxoKF4cNI4kEX1qDQRMiOd34TXjSjy4M_'
|
||||
|
|
@ -197,25 +213,26 @@ unpack_mbcp() {
|
|||
|
||||
info "Reformatting AndroidManifest.xml with xmlstarlet..."
|
||||
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..."
|
||||
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() {
|
||||
{ apktool_exist && is_unpacked ; } || return 0
|
||||
{ apktool_exist && is_unpacked; } || return 0
|
||||
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
|
||||
java -jar tools/apkeditor.jar b -i 'mbapk/mbapk_unpacked' -o mbcpapp_apk/MBCP_Flutter_TMP.apk
|
||||
[ ! -f 'mbcpapp_apk/MBCP_Flutter_TMP.apk' ] && exit 1
|
||||
info "Processing APK signature scheme v2/v3..."
|
||||
rm 'mbcpapp_apk/MBCP_Flutter_SelfPatched.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.apk'
|
||||
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"
|
||||
rm 'mbcpapp_apk/MBCP_Flutter_TMP.apk'
|
||||
) && {
|
||||
good 'Completed! Repacked APK are saved as [mbcpapp_apk/MBCP_Flutter_SelfPatched.apk] !!!'
|
||||
good "Completed! Repacked APK are saved as [mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk] !!!"
|
||||
good 'Install and trying to open it when ಠ‿ಠ'
|
||||
good 'If you are facing issues, report it on Telegram [@mbcposs_en] or [@mbcposs] (for Vietnamese users) !!'
|
||||
good 'It is recommended to report issues to [https://git.disroot.org/mbcp/mbbpatch/issues] instead !'
|
||||
|
|
@ -223,19 +240,17 @@ repack_mbcp() {
|
|||
}
|
||||
|
||||
successunpack() {
|
||||
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/isreal_unpacked ]
|
||||
then
|
||||
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/isreal_unpacked ]; then
|
||||
echo -e "\033[32m"Unpacked."$1\033[0m"
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
check_mbshield() {
|
||||
is_unpacked || return 1
|
||||
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/mbshield.szip ]
|
||||
then
|
||||
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/mbshield.szip ]; then
|
||||
info "$mbshield_found"
|
||||
iszdefend
|
||||
else
|
||||
|
|
@ -244,7 +259,8 @@ check_mbshield() {
|
|||
}
|
||||
|
||||
convert_apks() {
|
||||
[[ $(uname -a | grep Linux) ]] && local - ; set -e
|
||||
[[ $(uname -a | grep Linux) ]] && local -
|
||||
set -e
|
||||
ls "$DIRPATH"/mbapk/*.apks >/dev/null 2>&1 || {
|
||||
err "APKs missing, cannot continue !"
|
||||
return 0
|
||||
|
|
@ -255,6 +271,11 @@ convert_apks() {
|
|||
mv mbapk/*.apk mbapk/MBOriginal.apk
|
||||
info 'Cleaning left over [apks] files...'
|
||||
rm -f mbapk/*.apks
|
||||
unzip -l mbapk/MBOriginal.apk | grep -oH "ic-appmb.ttf" && good "Current converted app is MBBank! Continuing" || {
|
||||
err "Current converted app is NOT MBBank! Deleting files"
|
||||
rm -rf mbapk/*
|
||||
return 1
|
||||
}
|
||||
info "You probably can continue to unpack APK!"
|
||||
}
|
||||
|
||||
|
|
@ -274,198 +295,192 @@ echo "Original APK must be inside [mbapk] folder !"
|
|||
echo -------------------------------------------------------------
|
||||
echo "Current commit : $COMMIT ($BRANCH)"
|
||||
echo "Source code : https://git.disroot.org/mbcp/mbbpatch.git"
|
||||
echo "Made possible by Cuynu's brain with love <3"
|
||||
echo "Documentation : see [docs] folder"
|
||||
echo "Written from scratch by Cuynu with love <3"
|
||||
echo -------------------------------------------------------------
|
||||
echo App status : $(successunpack)
|
||||
echo -------------------------------------------------------------
|
||||
# Main functions
|
||||
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'
|
||||
do
|
||||
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
|
||||
case "$opt" in
|
||||
'Download/update tools' ) download_tools ;;
|
||||
'Unpack APK' ) unpack_mbcp ;;
|
||||
'Repack APK' ) repack_mbcp ;;
|
||||
'Patch App' ) run_patcher ;;
|
||||
'Legacy patches' ) run_legacy_patcher ;;
|
||||
'MBShield Check' ) check_mbshield ;;
|
||||
'Convert apks to apk' ) convert_apks ;;
|
||||
'Extract assets [ROOT]' )
|
||||
iszdefend
|
||||
info 'To extract encrypted assets [if current app has MBShield protection] you need rooted device'
|
||||
info 'And trigger a bulit-in app assets extraction !'
|
||||
echo -------------------------------------------
|
||||
PS3='Select options continue, or [3] to quit : '
|
||||
select opt in 'Launch MBCPApp/MBBank' 'Extract assets' 'Exit'
|
||||
do
|
||||
if [ "$opt" == 'Launch MBCPApp/MBBank' ]; then
|
||||
'Download/update tools') download_tools ;;
|
||||
'Unpack APK') unpack_mbcp ;;
|
||||
'Repack APK') repack_mbcp ;;
|
||||
'Patch App') run_patcher ;;
|
||||
'Legacy patches') run_legacy_patcher ;;
|
||||
'MBShield Check') check_mbshield ;;
|
||||
'Convert apks to apk') convert_apks ;;
|
||||
'Extract assets [ROOT]')
|
||||
is_unpacked || exit 1
|
||||
isvcm1
|
||||
iszdefend
|
||||
info 'To extract encrypted assets [if current app has MBShield protection] you need rooted device'
|
||||
info 'And trigger a bulit-in app assets extraction !'
|
||||
echo -------------------------------------------
|
||||
PS3='Select options continue, or [3] to quit : '
|
||||
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
|
||||
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...'
|
||||
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
|
||||
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
|
||||
;;
|
||||
'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
|
||||
|
||||
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
|
||||
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
|
||||
if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ]; then
|
||||
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 !!!"
|
||||
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
|
||||
|
||||
if [ "$opt" == 'App patched with newer version [v6.4.59+]' ]; then
|
||||
if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched.apk ]
|
||||
then
|
||||
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 !!!"
|
||||
adb kill-server
|
||||
adb start-server
|
||||
adb install 'mbcpapp_apk/MBCP_Flutter_SelfPatched.apk'
|
||||
adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
|
||||
else
|
||||
err "[MBCP_Flutter_SelfPatched.apk] not found, cannot continue !"
|
||||
fi
|
||||
elif [ "$opt" == 'App patched with specific version' ]; then
|
||||
if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ]; then
|
||||
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 !!!"
|
||||
adb kill-server
|
||||
adb start-server
|
||||
adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk"
|
||||
# Delete zimperium detection files
|
||||
adb shell su -c rm -rf /data/data/com.mbmobile/files/0*
|
||||
adb shell su -c rm -rf /data/data/com.mbmobile/files/1*
|
||||
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 specific version' ]; then
|
||||
if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched.apk ]
|
||||
then
|
||||
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 !!!"
|
||||
adb kill-server
|
||||
adb start-server
|
||||
adb install 'mbcpapp_apk/MBCP_Flutter_SelfPatched.apk'
|
||||
# Delete zimperium detection files
|
||||
adb shell su -c rm -rf /data/data/com.mbmobile/files/0*
|
||||
adb shell su -c rm -rf /data/data/com.mbmobile/files/1*
|
||||
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.apk] not found, cannot continue !"
|
||||
fi
|
||||
elif [ "$opt" == 'App patched with older version [v6.4.55 or lower]' ]; then
|
||||
if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ]; then
|
||||
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 !!!"
|
||||
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" == 'App patched with older version [v6.4.55 or lower]' ]; then
|
||||
if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched.apk ]
|
||||
then
|
||||
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 !!!"
|
||||
adb kill-server
|
||||
adb start-server
|
||||
adb install 'mbcpapp_apk/MBCP_Flutter_SelfPatched.apk'
|
||||
adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
|
||||
else
|
||||
err "[MBCP_Flutter_SelfPatched.apk] not found, cannot continue !"
|
||||
fi
|
||||
|
||||
|
||||
elif [ "$opt" == 'Exit' ]; then
|
||||
PS3='Please select options to continue : '
|
||||
break
|
||||
fi
|
||||
done
|
||||
elif [ "$opt" == 'Exit' ]; then
|
||||
PS3='Please select options to continue : '
|
||||
break
|
||||
fi
|
||||
done
|
||||
;;
|
||||
'Exit' ) exit ;;
|
||||
'Exit') exit ;;
|
||||
esac
|
||||
done
|
||||
|
|
|
|||
|
|
@ -77,12 +77,36 @@ for f in patches/*.sh ; do
|
|||
continue
|
||||
}
|
||||
[ -n "$minver" ] && {
|
||||
[ "$(get_mb_ver)" -gt "$minver" ] || {
|
||||
chk="${minver//[^.]}"
|
||||
[ "${#chk}" -ne 2 ] && {
|
||||
warn "[parser] skipping [$pname] with malformed minver"
|
||||
continue
|
||||
}
|
||||
|
||||
minmajor="$(bb_split "$minver" '.' '0')"
|
||||
minminor="$(bb_split "$minver" '.' '1')"
|
||||
minpatch="$(bb_split "$minver" '.' '2')"
|
||||
|
||||
[ "$(( $(mb_ver 0) * 10000 + $(mb_ver 1) * 100 + $(mb_ver 2) ))" -lt \
|
||||
"$(( minmajor * 10000 + minminor * 100 + minpatch ))" \
|
||||
] && {
|
||||
info "[parser] skipping [$pname] as current version is lower than patch version clamp"
|
||||
continue ; }
|
||||
} || :
|
||||
[ -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"
|
||||
continue ; }
|
||||
} || :
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Add verified badge
|
||||
# MAXVER:
|
||||
# MINVER:
|
||||
# MINVER:
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
||||
|
|
@ -30,3 +30,12 @@ rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/ba
|
|||
|
||||
# Processing shield for private users
|
||||
cp -f 'blob_patches/verified_badge/tick-mark.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/img_shield_processing.webp'
|
||||
|
||||
# MIC Protection shield banners
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/khien_img_hoadon.webp'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/khien_img_muasam.webp'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/khien_img_offline.webp'
|
||||
# Private users
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/khien_img_hoadon.private.webp'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/khien_img_muasam.private.webp'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/khien_img_offline.private.webp'
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Autopatch strings
|
||||
# MAXVER: 67
|
||||
# MAXVER: 6.4.67
|
||||
# MINVER:
|
||||
# shellcheck disable=SC1091
|
||||
. "$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"
|
||||
sed_libapp 's|QR receive|My QR |g'
|
||||
|
||||
# Digital OTP related
|
||||
# Digital OTP related
|
||||
sed_libapp 's|To use transaction authentication feature with Online OTP, please signin APP MB Bank and implement Online OTP registration in the Installation item|DigitalOTP is not currently registered on your MBCP app. In order to use this feature, please login to MBCP and setup DigitalOTP, then try again. |'
|
||||
sed_libapp 's|When transacting via Internet banking or registering Online OTP on other device|Used for transactions via eMB or when registering DigitalOTP on other device |'
|
||||
sed_libapp 's|online OTP|DigitalOTP|g'
|
||||
|
|
@ -101,18 +101,18 @@ sed_libapp 's|You want to send a gift for the occasion?|You want to send a gift
|
|||
sed_libapp 's|Intruction|How-to |g'
|
||||
sed_libapp 's|MBBank will send the withdrawal verification code to the APP instead of SMS on the phone.|MB Bank will send the withdrawal verification code to MBCPApp instead of SMS as before. |'
|
||||
|
||||
# Latest version check
|
||||
# Latest version check
|
||||
sed_libapp 's|The lastest version|TG/Disroot:mbbpatch|'
|
||||
|
||||
# Profile section
|
||||
# Profile section
|
||||
sed_libapp 's|User profile|View profile|g'
|
||||
sed_libapp 's|MB Membership Package|MB Membership |'
|
||||
sed_libapp 's|email information|Email information|g'
|
||||
|
||||
# Account related
|
||||
# Account related
|
||||
sed_libapp 's|Premium Account Number|Open new lucky account|'
|
||||
|
||||
# Cashback 150K badge (unused on v6.4.62+)
|
||||
# Cashback 150K badge (unused on v6.4.62+)
|
||||
sed_libapp 's|Cashback 150K| |'
|
||||
|
||||
# Forgot password screen
|
||||
|
|
@ -120,7 +120,7 @@ sed_libapp 's|Request for supplying password|Request for new password |'
|
|||
sed_libapp 's|ID card/ID card|Old/New ID card|g'
|
||||
sed_libapp 's|Number of document|Number of ID card |g'
|
||||
|
||||
# Wrong password dialog
|
||||
# Wrong password dialog
|
||||
sed_libapp 's|Your device will be locked if you enter incorrectly more than 5 times. Please try again or select the "Forgot password" feature to be reissued.|Your account will be locked if you enter incorrect password more than 5 times. Please try again or use the "Forgot password" feature to reset. |'
|
||||
|
||||
# Others section on MB
|
||||
|
|
@ -138,7 +138,7 @@ sed_libapp 's|Please come back later for more new themes!|Tips: Unofficial theme
|
|||
sed_libapp 's|Change theme successfully|App theme changed :) |'
|
||||
sed_libapp 's|Change theme|Store themes|'
|
||||
|
||||
# Balance fluctuations notifications (Configuration -> Balance fluctuations notifications)
|
||||
# Balance fluctuations notifications (Configuration -> Balance fluctuations notifications)
|
||||
sed_libapp 's|get notifications|Get notifications|g'
|
||||
sed_libapp 's|Read the announcement|Notify with voice |'
|
||||
|
||||
|
|
@ -155,7 +155,7 @@ sed_libapp 's|Start journey|Alright ! |'
|
|||
sed_libapp 's|Go here to install the app|MBCPApp settings are here |'
|
||||
|
||||
|
||||
# EKYC error dialog
|
||||
# EKYC error dialog
|
||||
sed_libapp 's|Verification information is invalid, please contact hotline 1900545426 for support|EKYC failed, please go to Telegram group (@mbbpatch_eng) for details and help !!! |'
|
||||
|
||||
# XPE002/XPE003 dialog :
|
||||
|
|
@ -190,7 +190,7 @@ sed_libapp 's|Zalo Pay|ZolaPay |'
|
|||
sed_libapp 's|MB membership|MB Membership|g'
|
||||
|
||||
# Explore strings (homeLanding -> More -> Discovery)
|
||||
sed_libapp 's|New release|Features |g'
|
||||
sed_libapp 's|New release|Features |g'
|
||||
sed_libapp 's|Challenge to receive gifts|Others |g'
|
||||
|
||||
# Close account hints (homeLanding -> Total balance VND -> See -> Close account)
|
||||
|
|
@ -198,7 +198,7 @@ sed_libapp 's|MB will Autoally transfer the entire remaining balance to the acco
|
|||
|
||||
# Expired login session dialog
|
||||
sed_libapp 's|The login session expired. Please login again|Login session are expired. Please login again|'
|
||||
# Confirm button on dialog
|
||||
# Confirm button on dialog
|
||||
sed_libapp 's|I understand|OKAY |g'
|
||||
|
||||
# Exit application dialog
|
||||
|
|
@ -239,7 +239,7 @@ sed_libapp 's|AI Suggestion|MB Suggestion|'
|
|||
sed_libapp 's|Quick transfer using AI|Quick transfer |'
|
||||
|
||||
|
||||
# Placeholder toolbox
|
||||
# Placeholder toolbox
|
||||
sed_libapp 's|Shopping, entertainment|MBCPApp Toolbox |'
|
||||
|
||||
|
||||
|
|
|
|||
12
MBCPApp/patches/better_custombgscreen.sh
Normal file
12
MBCPApp/patches/better_custombgscreen.sh
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Better custom background screen
|
||||
# MAXVER:
|
||||
# MINVER: 6.4.83
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
||||
info "Copying..."
|
||||
cp -f 'blob_patches/better_custombgscreen/customize_img_changeImageContent.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/customize_img_changeImageContent.webp'
|
||||
cp -f 'blob_patches/better_custombgscreen/customize_img_changeImageContent.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/customize_img_changeImageContent_2.webp'
|
||||
|
||||
rm -f 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/customize_img_changeImageBG.webp'
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Bypass accessibility & malicious apps check
|
||||
# MAXVER: 55
|
||||
# MAXVER: 6.4.55
|
||||
# MINVER:
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Bypass GW934 checksum
|
||||
# MAXVER: 67
|
||||
# MINVER: 63
|
||||
# MAXVER: 6.4.67
|
||||
# MINVER: 6.4.63
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
||||
|
|
@ -18,11 +18,11 @@ fi
|
|||
|
||||
info "Extracting [app-debug.apk]..."
|
||||
unzip -o 'tools/bypass/app-debug.apk' -d 'tools/bypass'
|
||||
mv 'tools/bypass/lib/arm64-v8a/libSignatureKiller.so' 'tools/bypass/lib/arm64-v8a/libmodft3.so'
|
||||
mv 'tools/bypass/lib/arm64-v8a/libSignatureKiller.so' 'tools/bypass/lib/arm64-v8a/libmodft3.so'
|
||||
mv 'tools/bypass/lib/armeabi-v7a/libSignatureKiller.so' 'tools/bypass/lib/armeabi-v7a/libmodft3.so'
|
||||
info "Moving libraries..."
|
||||
mv 'tools/bypass/lib/arm64-v8a/libmodft3.so' 'mbapk/mbapk_unpacked/root/lib/arm64-v8a'
|
||||
mv 'tools/bypass/lib/armeabi-v7a/libmodft3.so' 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a'
|
||||
mv 'tools/bypass/lib/arm64-v8a/libmodft3.so' 'mbapk/mbapk_unpacked/root/lib/arm64-v8a'
|
||||
mv 'tools/bypass/lib/armeabi-v7a/libmodft3.so' 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a'
|
||||
|
||||
mv 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libapp.so' 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libmbcp.so'
|
||||
mv 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libapp.so' 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libmbcp.so'
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Bypass new zimperium detection
|
||||
# MAXVER: 63
|
||||
# MAXVER: 6.4.63
|
||||
# MINVER:
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ do
|
|||
rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/resources/package_1/res/mipmap-xhdpi
|
||||
rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/resources/package_1/res/mipmap-xxhdpi
|
||||
rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/resources/package_1/res/mipmap-xxxhdpi
|
||||
|
||||
|
||||
info 'Copying new logos to [mbapk_unpacked/res]...'
|
||||
cp -r -f "$DIRPATH"/mbcpicons/"$variant"/mipmap-hdpi mbapk/mbapk_unpacked/resources/package_1/res
|
||||
cp -r -f "$DIRPATH"/mbcpicons/"$variant"/mipmap-mdpi mbapk/mbapk_unpacked/resources/package_1/res
|
||||
|
|
|
|||
8
MBCPApp/patches/custom_vtapscreen.sh
Normal file
8
MBCPApp/patches/custom_vtapscreen.sh
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Custom VTAP screen
|
||||
# MAXVER:
|
||||
# MINVER: 6.4.52
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
||||
cp -f 'blob_patches/customvtap/custom_vtapdialog_activity.xml' 'mbapk/mbapk_unpacked/resources/package_1/res/layout/activity_vgfull_screen_dialog.xml'
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Disable MB Membership
|
||||
# MAXVER: 67
|
||||
# PATCHNAME: Disable MB Membership
|
||||
# MAXVER: 6.4.67
|
||||
# MINVER:
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
|
|
|||
13
MBCPApp/patches/fix_tian37.sh
Normal file
13
MBCPApp/patches/fix_tian37.sh
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Tian37 Fix
|
||||
# MAXVER:
|
||||
# MINVER: 6.4.85
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
||||
sed_libtian37 's|/proc/mountsb7/proc/fs/jbd2/| |'
|
||||
sed_libtian37 's|com.rifsxd.ksunext| |'
|
||||
sed_libtian37 's|/proc/fs/jbd2/loop*8 2>/dev/null| |'
|
||||
sed_libtian37 's|me.weishu.kernelsu| |'
|
||||
sed_libtian37 's|/proc/self/maps/| |'
|
||||
sed_libtian37 's|/data/adb/modules|/sdcard/Downloads|'
|
||||
|
|
@ -1,41 +1,44 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Hide VTAP root detection activity & dialog
|
||||
# MAXVER:
|
||||
# MAXVER:
|
||||
# MINVER:
|
||||
# shellcheck disable=SC1091,SC2016
|
||||
. "$DIRPATH"/common.sh
|
||||
|
||||
|
||||
if [[ -d mbapk/mbapk_unpacked/smali/classes4/com/vtap/ ]]; then
|
||||
info "VTAP is found on [smali_classes4], Applying!"
|
||||
# Adapt with v6.4.53+
|
||||
sed -i 's|Lcom/vtap/MaintenanceActivity;|Lio/flutter/plugins/MainActivity;|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes4/com/vtap/d.smali
|
||||
sed -i 's|Lcom/vtap/MaintenanceActivity;|Lio/flutter/plugins/MainActivity;|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes4/com/vtap/VTapSetupPlugin.smali
|
||||
rm -f 'mbapk/mbapk_unpacked/smali/classes4/com/vtap/MaintenanceActivity.smali'
|
||||
rm -f 'mbapk/mbapk_unpacked/smali/classes4/com/vtap/MaintenanceActivity$1.smali'
|
||||
rm -f 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/vguard/VGDialogActivity.smali'
|
||||
sed -i 's|Lcom/vkey/android/vguard/VGDialogActivity;|Lio/flutter/plugins/MainActivity;|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/dy.smali
|
||||
# Bypass VKey root check that throw VGFullScreenDialogActivity then exit :)
|
||||
cp -f 'blob_patches/bypass_rootold/BasicThreatInfo.smali' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/internal/vguard/engine/'
|
||||
cp -f 'blob_patches/bypass_rootold/VGThreatAppInfo.smali' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/vguard/model/'
|
||||
cp -f 'blob_patches/bypass_rootold/VGThreatResponse.smali' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/vguard/model/'
|
||||
# Test crash fixes for some Android 13 devices
|
||||
sed -i 's|invoke-virtual {v5, v12}, Lcom/vkey/android/vguard/model/VGThreatResponse;->setUsingLegacyMessage(Z)V| |g' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/eg.smali'
|
||||
else
|
||||
info "VTAP is not found on [smali_classes4], ignore copying!"
|
||||
info "VTAP is found on [smali_classes4], Applying!"
|
||||
# Adapt with v6.4.53+
|
||||
sed -i 's|Lcom/vtap/MaintenanceActivity;|Lio/flutter/plugins/MainActivity;|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes4/com/vtap/d.smali
|
||||
sed -i 's|Lcom/vtap/MaintenanceActivity;|Lio/flutter/plugins/MainActivity;|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes4/com/vtap/VTapSetupPlugin.smali
|
||||
rm -f 'mbapk/mbapk_unpacked/smali/classes4/com/vtap/MaintenanceActivity.smali'
|
||||
rm -f 'mbapk/mbapk_unpacked/smali/classes4/com/vtap/MaintenanceActivity$1.smali'
|
||||
rm -f 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/vguard/VGDialogActivity.smali'
|
||||
sed -i 's|Lcom/vkey/android/vguard/VGDialogActivity;|Lio/flutter/plugins/MainActivity;|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/dy.smali
|
||||
# Bypass VKey root check that throw VGFullScreenDialogActivity then exit :)
|
||||
cp -f 'blob_patches/bypass_rootold/BasicThreatInfo.smali' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/internal/vguard/engine/'
|
||||
cp -f 'blob_patches/bypass_rootold/VGThreatAppInfo.smali' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/vguard/model/'
|
||||
cp -f 'blob_patches/bypass_rootold/VGThreatResponse.smali' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/vguard/model/'
|
||||
# Zygisk detection workaround test
|
||||
sed -i 's|zygisk|giskzy|g' "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libvosWrapperEx.so
|
||||
sed -i 's|zygisk|giskzy|g' "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libvosWrapperEx.so
|
||||
|
||||
# Test crash fixes for some Android 13 devices
|
||||
sed -i 's|invoke-virtual {v5, v12}, Lcom/vkey/android/vguard/model/VGThreatResponse;->setUsingLegacyMessage(Z)V| |g' 'mbapk/mbapk_unpacked/smali/classes4/com/vkey/android/eg.smali'
|
||||
else
|
||||
info "VTAP is not found on [smali_classes4], ignore copying!"
|
||||
fi
|
||||
|
||||
if [[ -d mbapk/mbapk_unpacked/smali/classes3/com/vtap ]]; then
|
||||
info "VTAP is found on [smali_classes3], Applying!"
|
||||
# Adapt with v6.4.62+
|
||||
cp -f 'blob_patches/bypass_rootold/BasicThreatInfo.smali' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/internal/vguard/engine/'
|
||||
cp -f 'blob_patches/bypass_rootold/VGThreatAppInfo.smali' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/vguard/model/'
|
||||
cp -f 'blob_patches/bypass_rootold/VGThreatResponse.smali' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/vguard/model/'
|
||||
# Test crash fixes for some Android 13 devices
|
||||
sed -i 's|invoke-virtual {v5, v12}, Lcom/vkey/android/vguard/model/VGThreatResponse;->setUsingLegacyMessage(Z)V| |g' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/eg.smali'
|
||||
info "VTAP is found on [smali_classes3], Applying!"
|
||||
# Adapt with v6.4.62+
|
||||
cp -f 'blob_patches/bypass_rootold/BasicThreatInfo.smali' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/internal/vguard/engine/'
|
||||
cp -f 'blob_patches/bypass_rootold/VGThreatAppInfo.smali' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/vguard/model/'
|
||||
cp -f 'blob_patches/bypass_rootold/VGThreatResponse.smali' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/vguard/model/'
|
||||
# Test crash fixes for some Android 13 devices
|
||||
sed -i 's|invoke-virtual {v5, v12}, Lcom/vkey/android/vguard/model/VGThreatResponse;->setUsingLegacyMessage(Z)V| |g' 'mbapk/mbapk_unpacked/smali/classes3/com/vkey/android/eg.smali'
|
||||
else
|
||||
info "VTAP is not found on [smali_classes3], ignore copying!"
|
||||
warn "Something wrong here! [smali_classes3] should contains VTAP !!!"
|
||||
warn "Try to unpack app again !"
|
||||
exit 1
|
||||
info "VTAP is not found on [smali_classes3], ignore copying!"
|
||||
warn "Something wrong here! [smali_classes3] should contains VTAP !!!"
|
||||
warn "Try to unpack app again !"
|
||||
exit 1
|
||||
fi
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Reference in a new issue