diff --git a/MBCPApp/blob_patches/resources/strings_newapp.xml b/MBCPApp/blob_patches/resources/strings_newapp.xml deleted file mode 100644 index 47b50cf..0000000 --- a/MBCPApp/blob_patches/resources/strings_newapp.xml +++ /dev/null @@ -1,378 +0,0 @@ - - - OPC_NAME_NOT_SET_KEY - OPC_NETWORK_KEY - OPC_NETWORK_NAME_KEY - NO_OPC_SET - OPC_SHARED_PREFERENCES_FILE - OPC_SHARED_PREFERENCES_KEY - OPC_TOKEN_SERVICE_PROVIDER_KEY - OPC_TOKEN_SERVICE_PROVIDER_NAME_KEY - - Navigate home - Navigate up - More options - Done - See all - Choose an app - OFF - ON - Alt+ - Ctrl+ - delete - enter - Function+ - Meta+ - Shift+ - space - Sym+ - Menu+ - Search… - Clear query - Search query - Search - Submit query - Voice search - Share with - Share with %s - Collapse - - - Understand and continue - Please move the face into the frame - You will have to speak loudy these numbers on the screen - Please look straight - Please look straight - Your face is in the frame. Please hold your hand steady! - Please keep your face upright - Please keep your face upright - Please put the camera further away - Please put the camera closer - Please look straight - Please look straight - Please move your face fit in the frame - Found many faces in the frame. Please retake the selfie - Agree - Please remove scarf, mask, sunglasses, hat and take a photo in well-lit condition - Keep your face steady during video recording - Speak loudly and clearly the number on the screen - Hold your phone as high as your face - Video recording tutorial - Please take a video of your face to verify no one is impersonating you - Biometric information - Start demonstration - Verify information - Please watch the tutorial to know how to record video with the best quality - Cancel - Retry - Record selfie video failed - Please move your face fit in the frame - Your facial data does not match. Please try again - Your video is in low quality - Your facial data does not match - Failed. Please record the video again - Error. Please record your voice again - Recording - Speak loudly the number on the screen - androidx.startup - mbbank.onelink.me - MB Bank - This is an app widget description - com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior - com.google.android.material.bottomsheet.BottomSheetBehavior - Expand halfway - Characters entered %1$d of %2$d - Character limit exceeded %1$d of %2$d - %1$d/%2$d - Clear text - Tap to setup QR - Tap to setup QR - cca90e65-5805-4c06-bc2d-930595fb2cf4 - a4f49867dfa64435bea0bafc1f437f34 - Enable - %1$s can't work properly unless you enable GMS/microG. - Enable GMS/microG - Install - GMS/microG is missing from your device. %1$s still runs without it but some features will be broken. - GMS/microG missing - Google Play services availability - Google Play services error - %1$s is having trouble with Google Play services. Please try again. - %1$s won't run without Google Play services, which are not supported by your device. - Update - %1$s won't run unless you update Google Play services. - Update Google Play services - %1$s won't run without Google Play services, which are currently updating. - New version of Google Play services needed. It will update itself shortly. - Open on phone - Sign in - Sign in with Google - Use password - Copy - Link copied to clipboard - Unknown error - 162583259686-erd52s6o9832jno1lpa9on8t2djnicie.apps.googleusercontent.com - . - . - Error - Advanced - Show dropdown menu - com.google.android.material.transformation.FabTransformationScrimBehavior - com.google.android.material.transformation.FabTransformationSheetBehavior - Copy link - Open in browser - Share link - Miscellaneous - Touch the fingerprint sensor - Fingerprint hardware not available. - This device does not have a fingerprint sensor - Too many attempts. Please try again later. - No fingerprints enrolled. - Fingerprint operation canceled by user. - Not recognized - https://mbmobilebanking6789.firebaseio.com - 162583259686 - You cannot go back to the previous step. Please continue - Warning - Processing... - No PIN, pattern, or password set. - This device does not support PIN, pattern, or password. - Authentication canceled by user. - The server response is invalid or missing. Please try again - Please check your internet connection - AIzaSyAcxvc0vK4vJ3TzLe0PI9gqNIq8ZxmL5NI - 1:162583259686:android:884f0ccb6ad5e1ed - AIzaSyAcxvc0vK4vJ3TzLe0PI9gqNIq8ZxmL5NI - mbmobilebanking6789.appspot.com - - com.google.android.material.behavior.HideBottomViewOnScrollBehavior - Dialog Icon - SDK initialization failed - SDK initialization success - https://mobile.useinsider.com/api/v1/test_device/add - https://mobile.useinsider.com/api/amplification/v1/poll - https://mobileanalytics.useinsider.com - /api/v1/test_device/add - /api/amplification/v1/poll - /api/v1/privacy/gdpr/consent/get - /api/v1/privacy/gdpr/consent/set - /api/v1/geofences - /api/v1/geofences/notify - /api/identity/v3/get - /api/message_center/v2/sdk/get - https://mobile.useinsider.com/api/v1/privacy/gdpr/consent/get - https://mobile.useinsider.com/api/v1/privacy/gdpr/consent/set - https://mobile.useinsider.com/api/v1/geofences - https://mobile.useinsider.com/api/v1/geofences/notify - https://mobile.useinsider.com/api/identity/v3/get - https://mobile.useinsider.com/api/logging/sdk/v2 - https://mobile.useinsider.com/api/message_center/v2/sdk/get - Android - /api/v3/session/start - /api/v3/session/stop - https://mobile.useinsider.com/api/v3/session/start - https://mobile.useinsider.com/api/v3/session/stop - /api/gandalf/v2/live_push - /api/gandalf/v2/start_connection - /api/gandalf/v2/stop_connection - https://mobile.useinsider.com/api/gandalf/v2/live_push - https://mobile.useinsider.com/api/gandalf/v2/start_connection - https://mobile.useinsider.com/api/gandalf/v2/stop_connection - Tab - sans-serif - sans-serif-medium - sans-serif - : - Select AM or PM - Select hour - %1$s o'clock - Select minutes - %1$s minutes - cubic-bezier(0.4, 0.0, 1.0, 1.0) - cubic-bezier(0.0, 0.0, 0.2, 1.0) - path(M 0,0 C 0.05, 0, 0.133333, 0.06, 0.166666, 0.4 C 0.208333, 0.82, 0.25, 1, 1, 1) - cubic-bezier(0.0, 0.0, 1.0, 1.0) - cubic-bezier(0.4, 0.0, 0.2, 1.0) - Range end, - Range start, - AM - Switch to clock mode for the time input. - Hour - Minute - PM - Select time - Switch to text input mode for the time input. - New notification - Remove %1$s - More than %1$d new notifications - %1$d%2$s - Change to next month - Change to previous month - Current selection: %1$s - @android:string/cancel - OK - %1$s - Select Date - Selected date - Column of days: %1$s - Invalid format. - Example: %1$s - Use: %1$s - Invalid range. - Navigate to year %1$s - Out of range: %1$s - Start date – %1$s - %1$s – End date - %1$s – %2$s - Select Range - Start date – End date - Save - Date - End date - Start date - d - m - y - Switch to calendar input mode - Tap to switch to selecting a day - Switch to text input mode - Tap to switch to selecting a year - OK - Next - Kết thúc - Not set - Agree - Please move the ID card into the frame - Make sure the photo is easy to read, with no blur or loss of angle or flare - Make sure your ID card is valid - Tutorial for taking photo of ID card - Please take a photo of your ID card to verify your information - ID card information - Change - Start capturing - Please select the type of document - Continue - Cancel - Do you want to continue to register? - Verify information - - - Back - Accept - Capture - Retake - Retry - Front - Page 2 - Capture - Citizen identification - Citizen identification - Identification documents - Passport - Military ID card - You took the wrong side of the ID card. Please try again - Your photo is unqualified. Please retake a photo of ID - Cannot find the face on your ID card. Please retake the photo - Your ID card is not fully captured. Please try again (OCR005) - Your facial data on ID card and video do not match. Please try again - Your photo is unqualified. Please retake a photo of ID - Make sure your photos are easy to read, with no blur, loss of corners, or glare - Please move the ID card into the frame - Continue - Stop - Do you want to continue to register? - Yes - No - Do you want to go back to previous step? - Please keep your ID straight - Cannot find the face on your ID card - Authentication failed - Authentication successfully - Cannot receive the data of identification session. Please try again - Identifier and bioID do not match - Cannot find the identifier - Your data is being manually reviewed - Cannot identify your data on video and ID card - Authentication failed - Successful registration with highest level - You have tried more than the permitted. Please contact the call center - Please try again. If not successful, please contact the call center - Cannot verify your data - You have exited the identification process - You are not qualify to take the next step - Show password - M12,4.5C7,4.5 2.73,7.61 1,12c1.73,4.39 6,7.5 11,7.5s9.27,-3.11 11,-7.5c-1.73,-4.39 -6,-7.5 -11,-7.5zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5zM12,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3 3,-1.34 3,-3 -1.34,-3 -3,-3z - M2,4.27 L19.73,22 L22.27,19.46 L4.54,1.73 L4.54,1 L23,1 L23,23 L1,23 L1,4.27 Z - M2,4.27 L2,4.27 L4.54,1.73 L4.54,1.73 L4.54,1 L23,1 L23,23 L1,23 L1,4.27 Z - M3.27,4.27 L19.74,20.74 - Agree - Close - Go to "Settings" - Please allow [APP_NAME] to access the camera and microphone for recording the video - Please allow [APP_NAME] to access the camera and microphone - Please allow [APP_NAME] to access the camera for taking selfie - Please allow [APP_NAME] to access the camera - Please allow [APP_NAME] to access the microphone for recording - Please allow [APP_NAME] to access the microphone - Please allow [APP_NAME] to access the camera and microphone in "Settings" - "%1$s" copied to clipboard. - mbmobilebanking6789 - QR Image - Receive QR - This app may not work correctly without the requested permissions. - This app may not work correctly without the requested permissions. Open the app settings screen to modify app permissions. - . - . - . - . - Search - Please keep the card -until the process is completed - Your current device is not currently compatible - with NFC mode. - -Please try on another device. or restart. - Current device is not compatible - Check your ID card - Notes - Watch the instruction video before proceed - 1. Prepare vaild ID card - 2. Remove the phone case. - 3. Enable NFC and accept the permission if asked. - 4. Do like the video. - 1. Prepare the ID card. - 2. Put it to your phone backcover. - 3. Move the ID card from bottom slowly until the device recognize it. - 4. Keep the card scanning for 5-10 seconds. - 1. Put the ID card to your phone backcover. - 2. Slowly moving the ID card, until the device recognize it, then keep the card until the process is complete. - 999+ - %1$s, %2$s - - Tap to setup QR - Online loan - Phone Topup - Phone Topup - Scan QR - Transfer - - VideoPreviewActivity - Permissions Required - Loading… - Crop - Both input and output Uri must be specified - Edit Photo - Original - Crop - Therefore, override color resource (ucrop_color_toolbar_widget) in your app to make it work on pre-L devices - Rotate - Scale - OFF - ON - Copied "%1$s" to clipboard. - Search - 999+ - %1$s, %2$s - Loading… - OFF - ON - diff --git a/MBCPApp/mbcpapp.sh b/MBCPApp/mbcpapp.sh index 8c3e56f..3df559e 100755 --- a/MBCPApp/mbcpapp.sh +++ b/MBCPApp/mbcpapp.sh @@ -172,15 +172,9 @@ unpack_mbcp() { rm -rf 'mbapk/mbapk_unpacked/root/assets/c7uFHgsHzlQ_T524_4N3h9neXvtcUg0m1ERhEjFpPI8_' rm -rf 'mbapk/mbapk_unpacked/root/assets/ccBu4aSM_mSaMBpFvr14pizu6EGMvwRiZltU_zVJMz0_' rm -rf 'mbapk/mbapk_unpacked/root/assets/DcM3z3tolULDhbn8YrUE7hxOlxZx2oFC5yNQFG1SX9k_' - # v6.5.7+ and new zimperium need this, without it the app will crash in startup, libcode.so - # is new pattern to detect v6.5.7+, older app base with old zimperium does not need this - # so i added condition check, whether if libcode.so is exist or not, if not then it will - # continue to delete the local model as before. - [ ! -f 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libcode.so' ] && rm -rf 'mbapk/mbapk_unpacked/root/assets/fPGzhQFvISia1NiVGU8vQx9IpRm63E4_1Xv0Z2ypWUE_' - # v6.5.9+ behavior (does not affect v6.5.7/v6.5.8 behavior) - [ ! -f 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libcode.so' ] && rm -rf 'mbapk/mbapk_unpacked/root/assets/2lclXWtX58GC8tXgJr1E_tmzpvS_K1Q7_0jHeXBaECc_' - rm -rf 'mbapk/mbapk_unpacked/root/assets/GXNv8xc5IcVF6TyUgjJpyYFeyHGqUqN7ZS0X_2WRbEE_' + rm -rf 'mbapk/mbapk_unpacked/root/assets/fPGzhQFvISia1NiVGU8vQx9IpRm63E4_1Xv0Z2ypWUE_' rm -rf 'mbapk/mbapk_unpacked/root/assets/g9x205p_On9_RR4kI_GdsoQ2pfSrV_OQXSopshyhYVk_' + rm -rf 'mbapk/mbapk_unpacked/root/assets/GXNv8xc5IcVF6TyUgjJpyYFeyHGqUqN7ZS0X_2WRbEE_' rm -rf 'mbapk/mbapk_unpacked/root/assets/H8leCCp85eX0YRvo4WCzqF5MEuj2_9ix6zL2bjnj6hk_' rm -rf 'mbapk/mbapk_unpacked/root/assets/Hput_BfAb8ftOt8hvazec24Eqk0gC5DDY6qALJMLtcI_' rm -rf 'mbapk/mbapk_unpacked/root/assets/MZuOOtdhO6pcGnZ5_kqMPh56hL3LqawBZd05vfIivww_' @@ -206,6 +200,7 @@ unpack_mbcp() { rm -rf 'mbapk/mbapk_unpacked/root/assets/ccBu4aSM_mSaMBpFvr14pizu6EGMvwRiZltU_zVJMz0_' rm -rf 'mbapk/mbapk_unpacked/root/assets/DcM3z3tolULDhbn8YrUE7hxOlxZx2oFC5yNQFG1SX9k_' rm -rf 'mbapk/mbapk_unpacked/root/assets/eB0ZLvEtv8_qoOAcmcB19tx0pnT_RXKn5WU3rOVgK4k_' + rm -rf 'mbapk/mbapk_unpacked/root/assets/fPGzhQFvISia1NiVGU8vQx9IpRm63E4_1Xv0Z2ypWUE_' rm -rf 'mbapk/mbapk_unpacked/root/assets/g9x205p_On9_RR4kI_GdsoQ2pfSrV_OQXSopshyhYVk_' rm -rf 'mbapk/mbapk_unpacked/root/assets/GXNv8xc5IcVF6TyUgjJpyYFeyHGqUqN7ZS0X_2WRbEE_' rm -rf 'mbapk/mbapk_unpacked/root/assets/H8leCCp85eX0YRvo4WCzqF5MEuj2_9ix6zL2bjnj6hk_' @@ -226,6 +221,7 @@ unpack_mbcp() { rm -rf 'mbapk/mbapk_unpacked/root/assets/ZOKOK1a6XCiqYb_a8bYPE9c0rjUf7_n7k77YxX5Ypdw_' rm -rf 'mbapk/mbapk_unpacked/root/assets/zxHdhL4_ZEQLQeo8R2DzSYl9PGss_cKSCQTcZGBtVmU_' # New zimperium for v6.4.67+ + rm -rf 'mbapk/mbapk_unpacked/root/assets/2lclXWtX58GC8tXgJr1E_tmzpvS_K1Q7_0jHeXBaECc_' rm -rf 'mbapk/mbapk_unpacked/root/assets/EHFtsAf7MYH_M7kQF1YX8LeWfU1_RjdRH62oJRE0v38_' rm -rf 'mbapk/mbapk_unpacked/root/assets/KZsyhtgSOXgFDPIf88NF5svaDH3xQ8feGsAQiy1c9_s_' rm -rf 'mbapk/mbapk_unpacked/root/assets/mT0VvAZ00szUCjj1fIELzEtu8jyGYugItWXzMzctw5s_' @@ -240,10 +236,7 @@ unpack_mbcp() { # New zimperium for v6.4.72+ rm -rf 'mbapk/mbapk_unpacked/root/assets/Z1YbTXaPlMjbmWCKXXD0m4wkWyE0I6xxDebGhXz5igk_' rm -rf 'mbapk/mbapk_unpacked/root/assets/zxwCzUaZ8itWQeAMKtyu52RbljJe1Pd8GuV7H4RPsy4_' - # New zimperium for v6.5.7+ - rm -rf 'mbapk/mbapk_unpacked/root/assets/BHCdF10ojcfyA7xfkrsMHYFMRUCn2CVYK6zKEnI8Jdc_' - rm -rf 'mbapk/mbapk_unpacked/root/assets/i_4CYiKEHQ3wTzTlrx_YVNIvHCgFjnkpMtMf4pgDlic_' - rm -rf 'mbapk/mbapk_unpacked/root/assets/OrE6E3b6dxQnoToaT2eLN48gKz8_Iui_eFezclhtVQk_' + info "Creating [mbcp_info] folder..." mkdir 'mbapk/mbapk_unpacked/root/assets/mbcp_info/' @@ -313,15 +306,7 @@ convert_apks() { info "You probably can continue to unpack APK!" } -newbehavior() { - warn "App is newer v6.5.15+! Patches continue to work, but you can't login" - warn "Until a workaround is implemented :(" - confirm || exit 1 -} - run_patcher() { - # check v6.5.15+ - [ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libnframes.so ] && newbehavior is_unpacked_lib && bash ./parse.sh && bash ./patch.sh } @@ -337,7 +322,7 @@ 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 "Documentation : see [README.md] or [docs] folder" +echo "Documentation : see [docs] folder" echo "Written from scratch by Cuynu with love <3" echo ------------------------------------------------------------- echo App status : $(successunpack) @@ -463,35 +448,32 @@ done info "Cleared !" ;; 'Install patched app' ) - echo 'Choose install options :' - ls mbcpapp_apk | grep -q MBCP_Flutter_SelfPatched_$(git rev-parse --short HEAD).apk || err "Couldn't find APK with current commit ID, you might already do new commits : $(git rev-parse --short HEAD)" || warn "Please repack APK again after each new commits !" - PS3='Select option to continue, or [3] to quit : ' - select opt in 'Install & open app' 'Install & delete local detection model & open app' 'Exit' + 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" == 'Install & open app' ]; then + 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" | grep -q Success && echo "App installation successful! Opening app..." && adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity || echo "Failed to install app, please check your device!" + 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" == 'Install & delete local detection model & open app' ]; then - # handle method for newer app - [ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libcode.so ] && warn "This method works best with v6.4.58 ~ v6.5.6. For newer app please block Zimperium host first !" + 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 shell [ -f /system/bin/su ] || warn "No su binary found in [/system/bin/su] from connected device. Root-related commands will not work!!" - adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk" | grep -q Success && echo "App installation successful! Opening app..." && adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity || echo "Failed to install app, please check your device!" + 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* @@ -505,7 +487,6 @@ do 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/zxpolicymd* 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' @@ -517,7 +498,21 @@ do 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_$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" == 'Exit' ]; then PS3='Please select options to continue : ' break diff --git a/MBCPApp/patches/add_modified_resources.sh b/MBCPApp/patches/add_modified_resources.sh index 688eca0..250704d 100644 --- a/MBCPApp/patches/add_modified_resources.sh +++ b/MBCPApp/patches/add_modified_resources.sh @@ -15,18 +15,11 @@ nochiptext() { rm -rf strings_temp } -no_resolution() { - warn "App newer than v6.5.7+ ! Using specific strings file instead..." - cp -f 'blob_patches/resources/strings_newapp.xml' 'mbapk/mbapk_unpacked/resources/package_1/res/values/strings.xml' -} - info "Copying modified resources..." cp -r -f 'blob_patches/resources/raw' 'mbapk/mbapk_unpacked/resources/package_1/res/' cp -f 'blob_patches/resources/strings-vi/strings.xml' 'mbapk/mbapk_unpacked/resources/package_1/res/values-vi/' [ $(cat mbapk/mbapk_unpacked/resources/package_1/res/values/strings.xml | grep chip_text) ] && cp -f 'blob_patches/resources/strings/strings.xml' 'mbapk/mbapk_unpacked/resources/package_1/res/values/' || nochiptext -[ $(cat mbapk/mbapk_unpacked/resources/package_1/res/values/strings.xml | grep -q RESOLUTION) ] && cp -f 'blob_patches/resources/strings/strings.xml' 'mbapk/mbapk_unpacked/resources/package_1/res/values/' || no_resolution - info "Copying bootleg_ekyc..." cp -f 'blob_patches/bootleg_ekyc/dotp1_ekyc.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/digitalOtp_img_authenguide01.webp' cp -f 'blob_patches/bootleg_ekyc/dotp2_ekyc.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/digitalOtp_img_authenguide02.webp' diff --git a/MBCPApp/patches/block_adjust_volume_sekyc.sh b/MBCPApp/patches/block_adjust_volume_sekyc.sh index 1752bd7..ac48bdb 100644 --- a/MBCPApp/patches/block_adjust_volume_sekyc.sh +++ b/MBCPApp/patches/block_adjust_volume_sekyc.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # PATCHNAME: Block adjust volume on sEKYC -# MAXVER: 6.4.85 +# MAXVER: # MINVER: # shellcheck disable=SC1091 . "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/remove_qr_wave.sh b/MBCPApp/patches/remove_qr_wave.sh deleted file mode 100644 index 497ec9c..0000000 --- a/MBCPApp/patches/remove_qr_wave.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash -# PATCHNAME: Remove QR Scanner Wave -# MAXVER: -# MINVER: -# shellcheck disable=SC1091 -. "$DIRPATH"/common.sh - -rm -f "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/ic_wave_qr_scanner.webp diff --git a/MBCPApp/patches/remove_useless_lib.sh b/MBCPApp/patches/remove_useless_lib.sh index 955cfda..7199478 100644 --- a/MBCPApp/patches/remove_useless_lib.sh +++ b/MBCPApp/patches/remove_useless_lib.sh @@ -5,11 +5,8 @@ # shellcheck disable=SC1091 . "$DIRPATH"/common.sh -# remove libvvb2060.so (only for older app verion : v6.5.6 or older) -# in newer app, removing it will trigger checksum failing error (GW934 - Re-install app to continue using app) -[ ! -f 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libcode.so' ] && rm -rf 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libvvb2060.so' -[ ! -f 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libcode.so' ] && rm -rf 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libvvb2060.so' - -# remove rootbeer simple check (used in singalarity ekyc) rm -rf 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libtoolChecker.so' rm -rf 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libtoolChecker.so' + +rm -rf 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libvvb2060.so' +rm -rf 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libvvb2060.so' diff --git a/MBCPApp/patches/spoof_appver.sh b/MBCPApp/patches/spoof_appver.sh index b056436..0eb760f 100644 --- a/MBCPApp/patches/spoof_appver.sh +++ b/MBCPApp/patches/spoof_appver.sh @@ -12,46 +12,22 @@ info "Spoofing app version..." -# v6.5.2x -sed -i 's|"6.5.29"|"6.5.29.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.28"|"6.5.28.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.27"|"6.5.27.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.26"|"6.5.26.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.25"|"6.5.25.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.24"|"6.5.24.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.23"|"6.5.23.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.22"|"6.5.22.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.21"|"6.5.21.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.20"|"6.5.20.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' - -# v6.5.1x -sed -i 's|"6.5.19"|"6.5.19.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.18"|"6.5.18.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.17"|"6.5.17.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.16"|"6.5.16.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.15"|"6.5.15.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.14"|"6.5.14.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.13"|"6.5.13.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.12"|"6.5.12.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.11"|"6.5.11.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.10"|"6.5.10.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' - # v6.5.x -sed -i 's|"6.5.9"|"6.5.9.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.8"|"6.5.8.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.7"|"6.5.7.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.6"|"6.5.6.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.5"|"6.5.5.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.4"|"6.5.4.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.3"|"6.5.3.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.2"|"6.5.2.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.1"|"6.5.1.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|"6.5.0"|"6.5.0.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|6.5.9|6.5.9.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|6.5.8|6.5.8.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|6.5.7|6.5.7.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|6.5.6|6.5.6.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|6.5.5|6.5.5.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|6.5.4|6.5.4.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|6.5.3|6.5.3.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|6.5.2|6.5.2.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|6.5.1|6.5.1.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|6.5.0|6.5.0.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' # v6.4.9x -sed -i 's|6.4.99|6.4.99.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|6.4.98|6.4.98.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|6.4.97|6.4.97.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|6.4.99|6.4.99.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|6.4.98|6.4.98.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|6.4.97|6.4.97.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.4.96|6.4.96.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.4.95|6.4.95.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.4.94|6.4.94.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' @@ -112,7 +88,7 @@ sed -i 's|6.4.49|6.4.49.old|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.4.48|6.4.48.old|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.4.47|6.4.47.old|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -# versionCode spoofing to prevent in-app forced update dialog, and play store / aurora store from replacing with original app :> + sed -i 's|704|1000|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|712|1001|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|727|2000|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' @@ -134,43 +110,6 @@ sed -i 's|744|2014|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|745|2015|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|746|2016|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|747|2017|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|749|2018|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|750|2019|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|751|2020|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|752|2021|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|753|2022|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|754|2023|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|755|2024|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|756|2025|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|757|2026|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|758|2027|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -# v6.5.14 -sed -i 's|759|2028|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -# other versions -sed -i 's|760|2028|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|761|2029|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|762|2030|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|763|2031|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|764|2032|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|765|2033|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|766|2034|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|767|2035|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|768|2036|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|769|2037|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|770|2038|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|771|2039|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|772|2040|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|773|2041|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|774|2042|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|775|2043|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|776|2044|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|777|2045|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|778|2046|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|779|2047|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|780|2048|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|781|2049|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' -sed -i 's|782|2050|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' - sed -i 's|v6.4.66|v6.4.68|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|v6.4.65|v6.4.68|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' diff --git a/MBCPApp/patches/target_sdk_34.sh b/MBCPApp/patches/target_sdk_34.sh index 392aeee..ac4e793 100644 --- a/MBCPApp/patches/target_sdk_34.sh +++ b/MBCPApp/patches/target_sdk_34.sh @@ -5,7 +5,4 @@ # shellcheck disable=SC1091 . "$DIRPATH"/common.sh -# applies for v6.4.62 ~ v6.5.19 sed -i 's|android:targetSdkVersion="35"|android:targetSdkVersion="34"|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml -# applies for v6.5.20+ -sed -i 's|android:targetSdkVersion="36"|android:targetSdkVersion="34"|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml diff --git a/README.md b/README.md index 97a76f9..7af3ff8 100644 --- a/README.md +++ b/README.md @@ -18,18 +18,6 @@ > > Older releases (v6.4.90 or older) has mismatch commit ID with this new repo, for reference to the exactly same commit, see [MBCP_VersionReference.md](MBCP_VersionReference.md) in repository. -## Checksum - -- More information about checksum measure : -
- -- Since v6.5.15+, the checksum is more strict, see [this explain](docs/checksum_newapp.md) for more details. - -- The checksum measure (which throws GW934 as response) is known enabled from the server-side (v6.4.64 works since days 0, but return with GW934 error after 11 days), it requires client (MBCP/MBBank) app to sent the SHA256 hash of 3 app libraries `libapp.so` | `libmbshield.so` | `libclosestmadagascar.so` and all of 5 dex files (classes1->5.dex) to the server for comparing hash, and if it doesn't match, the server will prevent the app from logging in with GW934 error : `Re-install app to continue using app.` -- The other function (eg: DigitalOTP) that works without logging in still works. - -
- ## Introduction > Fact : MBCP / MBZDefend-Fix is my "hobby project", I maintain it in my free times :> @@ -62,48 +50,46 @@ ## Patches list : -**Not seeing Zimperium bypass?** It is moved to legacy patch, local Zimperium model is already removed when you unpack APK, just apply other patch, repack and use [MBZDefend-Fix](/mbcp/mbzdefend-fix/releases) module to bypass the detection. - ### [📦 `MB Bank : com.mbmobile`](https://t.me/embeeapks) -> Any version from v6.4.63 and above should be patchable, but some version, such as v6.5.15, or v6.4.67+ has enhanced checksum mechanism, the patch still works, but the app itself will refuse to login. *Last updated situation: 2026/09/09* -
| ⚙️ Patch | 📜 Description | 🏦 Suggested version | |:--------:|:--------------:|:-----------------:| -| `Add verified badge` | Replaces the MIC protection shield with verified badge to make it looks more cute :3 | v6.4.0 ~ v6.5.14 | -| `Adaptive launcher icon` | Adds the adaptive & themed icon support to the app. Thanks to @fukiame ! | v6.4.0 ~ v6.5.14 | -| `Proper notification icon` | Temporary fixes for the app notification icon. Thanks to @fukiame ! | v6.4.0 ~ v6.5.14 | -| `Better custom background screen` | Replace the preview custom background from awful to useful. | v6.4.84 ~ v6.5.14 | -| `Change app logo` | Change the app logo with set of icons. | v6.4.0 ~ v6.5.14 | -| `Change widget background to dark ` | Change widget background to dark if you use MBBHomeWidget. | v6.4.0 ~ v6.5.14 | -| `Custom VTAP screen` | Warn users about critical VTAP trigger error from app. | v6.4.53 ~ v6.5.14 | -| `Custom sub-badge` | Replace original animated promotion badge with static badge for Basic users | v6.4.44 ~ v6.5.14 | -| `Disable MB Membership` | Disable the MB Membership badge below pfp and all of it's features. (limited features with v6.4.67+) | v6.4.0 ~ v6.5.14 | -| `Tian37 Fix` | Nuke detection points within Tian37 libraries. (Causing GW934 error for v6.5.7+) | v6.4.87 ~ v6.5.14 | -| `Force portrait screen` | Force the screen always portrait on app, especially when launching app. | v6.4.0 ~ v6.5.14 | -| `Fix VTAP certificate` | Update or downgrade VTAP certificate for older/newer app version, so it can work again in future. Read `docs/fix-vtap-cert.md` to know how to use it. | v6.4.67 ~ v6.5.14 | -| `Remove MB AI Slop resources` | Remove the MB AI slop resources from app. | v6.4.74 ~ v6.5.14 | -| `Remove MB Themes Store` | Remove the MB Themes Store banner from Themes list, preventing access to MB Theme Store. | v6.4.28 ~ v6.5.14 | -| `Remove invoke to zShield` | Make the app stop invoking to zShield when opening (MainActivity) and (MBBHomeWidgetQR) only (causing GW934 error for v6.4.67+) | v6.4.22 ~ v6.5.14 | -| `Remove built-in fonts` | Remove app font and force to use device font for most app components. | v6.4.0 ~ v6.5.14 | -| `Modify app theme` | Modify the built-in app theme from original one to other themes. | v6.4.30 ~ v6.5.14 | -| `Remove garbage permission and activities` | Removes tracking permission & activities from app. | v6.4.0 ~ v6.5.14 | -| `Revert old eMBee logo` | Revert old eMBee logo, especially on product consultation options. | v6.4.53 ~ v6.5.14 | -| `Remove useless libraries` | Remove the useless libraries from app, only for v6.4.67+ | v6.4.67 ~ v6.5.14 | -| `Remove animated QR background` | Remove the animated QR background from bottom navigation bar and replace with white background. | v6.4.43 ~ v6.5.14 | -| `Remove VNPAY VMB20` | Remove the VNPAY Airplane related activities. | v6.4.55 ~ v6.5.14 | -| `Restore old registration resources` | Restore old resources on `onboarding` page. | v6.4.48 ~ v6.5.14 | -| `Hide VTAP root detection activity & dialog` | Hide the old root detection screen and dialog showing "Device is rooted" (might have issues with some HyperOS ROMs). (causing GW934 error for v6.4.67+) | v6.4.0 ~ v6.5.14 | -| `Legacy hide VTAP activity & dialog` | Hide the first root detection screen with dialog showing "Device is rooted" but not bypassing it. (GW908 will still present, unlike standard `Hide VTAP root detection activity & dialog` patch). Only use for some ugly ROMs which is crashing with standard patch. (Causing GW934 error for v6.4.67+) | v6.4.53 ~ v6.5.14 | -| `Remove protection shield` | Remove the MIC protection shield on profile picture and login screen. (not app protection) | v6.4.0 ~ v6.5.14 | -| `Remove app from launcher` | Remove the app icon from launcher, and start with `am start` or with MBZDefend-Fix Action/Termux. | v6.4.0 ~ v6.5.14 | -| `Set targetSdkVersion to 34` | Set the `targetSdkVersion` to 34 (Android 14) to prevent UI issues on some activities. | v6.4.10 ~ v6.5.14 | -| `Add modified resources` | Adds the specific strings for MBCP on eKYC phases, and modify the DigiBank logo. | v6.4.0 ~ v6.5.14 | -| `Add anime resources` | Adds anime-related resources to some components inside app. | v6.4.45 ~ v6.5.14 | +| `Add verified badge` | Replaces the MIC protection shield with verified badge to make it looks more cute :3 | v6.4.0 ~ v6.5.6 | +| `Adaptive launcher icon` | Adds the adaptive & themed icon support to the app. Thanks to @fukiame ! | v6.4.0 ~ v6.5.6 | +| `Proper notification icon` | Temporary fixes for the app notification icon. Thanks to @fukiame ! | v6.4.0 ~ v6.5.6 | +| `Block adjust volume on sEKYC` | Prevent the device volume from being adjusted when entering eKYC activity. (Hidden for v6.4.67+) | v6.4.0 ~ v6.5.6 | +| `Better custom background screen` | Replace the preview custom background from awful to useful. | v6.4.84 ~ v6.5.6 | +| `Change app logo` | Change the app logo with set of icons. | v6.4.0 ~ v6.5.6 | +| `Change widget background to dark ` | Change widget background to dark if you use MBBHomeWidget. | v6.4.0 ~ v6.5.6 | +| `Custom VTAP screen` | Warn users about critical VTAP trigger error from app. | v6.4.53 ~ v6.5.6 | +| `Custom sub-badge` | Replace original animated promotion badge with static badge for Basic users | v6.4.44 ~ v6.5.6 | +| `Disable MB Membership` | Disable the MB Membership badge below pfp and all of it's features. (limited features with v6.4.67+) | v6.4.0 ~ v6.5.6 | +| `Tian37 Fix` | Nuke detection points within Tian37 libraries. | v6.4.87 ~ v6.5.6 | +| `Force portrait screen` | Force the screen always portrait on app, especially when launching app. | v6.4.0 ~ v6.5.6 | +| `Fix VTAP certificate` | Update or downgrade VTAP certificate for older/newer app version, so it can work again in future. | v6.4.67 ~ v6.5.6 | +| `Remove MB AI Slop resources` | Remove the MB AI slop resources from app. | v6.4.74 ~ v6.5.6 | +| `Remove MB Themes Store` | Remove the MB Themes Store banner from Themes list, preventing access to MB Theme Store. | v6.4.28 ~ v6.5.6 | +| `Remove invoke to zShield` | Make the app stop invoking to zShield when opening (MainActivity) and (MBBHomeWidgetQR) only (Hidden for v6.4.67+) | v6.4.22 ~ v6.5.6 | +| `Remove new zimperium check` | Remove the new Zimperium (ZDefend) root detection from app. Picked up from Legacy Patch. (Hidden for v6.4.67+) | v6.4.60 ~ v6.5.6 | +| `Remove built-in fonts` | Remove app font and force to use device font for most app components. | v6.4.0 ~ v6.5.6 | +| `Modify app theme` | Modify the built-in app theme from original one to other themes. | v6.4.30 ~ v6.5.6 | +| `Remove garbage permission and activities` | Removes tracking permission & activities from app. | v6.4.0 ~ v6.5.6 | +| `Revert old eMBee logo` | Revert old eMBee logo, especially on product consultation options. | v6.4.53 ~ v6.5.6 | +| `Remove useless libraries` | Remove the useless libraries from app, only for v6.4.67+ | v6.4.67 ~ v6.5.6 | +| `Remove animated QR background` | Remove the animated QR background from bottom navigation bar and replace with white background. | v6.4.43 ~ v6.5.6 | +| `Remove VNPAY VMB20` | Remove the VNPAY Airplane related activities. | v6.4.55 ~ v6.5.6 | +| `Restore old registration resources` | Restore old resources on `onboarding` page. | v6.4.48 ~ v6.5.6 | +| `Hide VTAP root detection activity & dialog` | Hide the old root detection screen and dialog showing "Device is rooted" (might have issues with some HyperOS ROMs). (Hidden for v6.4.67+) | v6.4.0 ~ v6.5.6 | +| `Legacy hide VTAP activity & dialog` | Hide the first root detection screen with dialog showing "Device is rooted" but not bypassing it. (GW908 will still present, unlike standard `Hide VTAP root detection activity & dialog` patch). Only use for some ugly ROMs which is crashing with standard patch. (Hidden for v6.4.67+) | v6.4.53 ~ v6.5.6 | +| `Remove protection shield` | Remove the MIC protection shield on profile picture and login screen. (not app protection) | v6.4.0 ~ v6.5.6 | +| `Remove app from launcher` | Remove the app icon from launcher, and start with `am start` or with MBZDefend-Fix Action/Termux. | v6.4.0 ~ v6.5.6 | +| `Set targetSdkVersion to 34` | Set the `targetSdkVersion` to 34 (Android 14) to prevent UI issues on some activities. | v6.4.10 ~ v6.5.6 | +| `Add modified resources` | Adds the specific strings for MBCP on eKYC phases, and modify the DigiBank logo. | v6.4.0 ~ v6.5.6 | +| `Add anime resources` | Adds anime-related resources to some components inside app. | v6.4.45 ~ v6.5.6 |
@@ -121,7 +107,6 @@ | `Bypass blacklist IP hashes` | Bypass the block list of some IP hashes. | v6.4.50 ~ v6.4.66 | | `Bypass forced update dialog` | Bypass forced update dialog from app. | v6.4.0 ~ v6.4.66 | | `Bypass malicious app check` | Bypass malicious app check from app. | v6.4.10 ~ v6.4.66 | -| `Block adjust volume on sEKYC` | Prevent the device volume from being adjusted when entering eKYC activity. (causing GW934 error for v6.4.67+) | v6.4.0 ~ v6.4.85 | | `XPE003 Fix` | Fix XPE003 issues when use bypass zimperium patch. | v6.4.56 ~ v6.4.66 | | `Bypass GW934 checksum` | Bypass the GW934 error rolled-out from MB server-side which prevent MBCP users from logging in to app. Only use this after applied all your patch needs. | v6.4.64 ~ v6.4.66 | | `Remove custom profile picture` | Force the use of default profile picture instead of your current one on MB's server side. | v6.4.0 ~ v6.4.66 | @@ -133,7 +118,6 @@ | `Bypass accessibility & malicious apps check` | Remove the restriction of using the app when an app using accessibility service or "malicious apps" like (HideMyAppList) installed. | v6.4.25 ~ v6.4.54 | | `Remove new root detection` | Remove the new Zimperium (ZDefend) root detection from app. (Now requires workaround for v6.4.56+) | v6.4.15 ~ v6.4.58 | | `Bypass new zimperium detection` | Bypass the root check from Zimperium within app. | v6.4.56 ~ v6.4.63 | -| `Remove new zimperium check` | Remove the new Zimperium (ZDefend) root detection from app. Picked up from Legacy Patch. (causing GW934 error for v6.4.67+) | v6.4.60 ~ v6.5.6 | @@ -350,6 +334,15 @@ Early note : When I created @mbbmod channel back in 2023, no one knows it for mo - [x] Adapt new v6.4.68 trungthu theme +## Old measure + +- More information about GW934 measure : +
+ +- The `GW934` error is known enabled from the server-side (v6.4.64 works since days 0, but return with GW934 error after 11 days), it requires client (MBCP/MBBank) app to sent the SHA256 hash of 3 app libraries `libapp.so` | `libmbshield.so` | `libclosestmadagascar.so` and all of 5 dex files (classes1->5.dex) to the server for comparing hash, and if it doesn't match, the server will prevent the app from logging in with GW934 error : `Re-install app to continue using app.` +- The other function (eg: DigitalOTP) that works without logging in still works. + +
## Credits - [apktool](https://github.com/iBotPeaches/Apktool) diff --git a/docs/checksum_newapp.md b/docs/checksum_newapp.md deleted file mode 100644 index e7f3308..0000000 --- a/docs/checksum_newapp.md +++ /dev/null @@ -1,43 +0,0 @@ - - -# MBBank v6.5.15+ checksum list - -in first day of v6.5.15+ released, there is no such checksum, it still the same as before, only until 4 days since release, there is toggle in backend that enable the check, remain unaffected for older base - -same as v6.4.63+, in first day nothing happens, no checksum, but after 11 days, checksum appears. - -if one of these is modified (even one bit) will trigger checksum fail that refuse to accept login from - -all of this is both app & server side, server side ask for checksum, the client get sha256 hash and send to server side `getSHFiles` and if something mismatch, the server side will refuse to login and return GW934 as response to app - -```shell -# outside assets (v6.5.15+) -mb.apk/AndroidManifest.xml -mb.apk/lib/arm64-v8a/*.so # previously is libapp / zshield & zdefend libs only since v6.4.63+ -mb.apk/lib/armeabi-v7a/*.so # previously is libapp / zshield & zdefend libs only since v6.4.63+ -mb.apk/classes*.dex # since v6.4.63+ - -# in assets -# zimperium (v6.5.15+) -mb.apk/assets/zimperium_local_model_randomized_filename* -mb.apk/assets/zimperium_encrypted_dex_folder/*.odex -mb.apk/assets/*.szip # zshield encrypted files - -# vkey vtap (v6.5.15+) -mb.apk/assets/firmware # vkey vtap fw -mb.apk/assets/profile # vkey vtap profile -mb.apk/assets/signature # vtap vkey signature -mb.apk/version.json # vtap vkey vos info -mb.apk/voscodesign.vky -mb.apk/vkeylicensepack - -# singalarity ekyc files (v6.5.15+) -mb.apk/assets/sgprofile -mb.apk/assets/smart_ekyc_finall.zip -mb.apk/assets/media_init_data - -# flutter assets (v6.5.15+) -mb.apk/assets/flutter_assets/assets/fonts/* -mb.apk/assets/flutter_assets/fonts/* -mb.apk/assets/flutter_assets/FontManifest.json -``` diff --git a/docs/fix-vtap-cert.md b/docs/fix-vtap-cert.md deleted file mode 100644 index 41dda55..0000000 --- a/docs/fix-vtap-cert.md +++ /dev/null @@ -1,56 +0,0 @@ -# Fix VTAP Certificate usage - -This patch can't be applied just by cloning regular repo and apply, I already mentioned it requires specific `firmware` (and `profile` for older base) in `fixcert` folder to function - -It can also revert new detection behavior of V-Key (VTAP) like SELinux check, LSPosed, Zygisk check, etc (choose v6.4.78 blobs or older, max to v6.4.53) - -``` -# from fix_vtap_cert.sh : - -# What is [firmware] and [profile]? -# It contains the firmware and certificate for VTAP to communicate with the app connection -# Both [firmware] and [profile] is encrypted with base64 format. -# We do not provide it in the project source, but you can get it from the app itself, in [assets] folder. -``` - -## How to apply it? - -- You can take `firmware` and `profile` file from older app base, then copy to `fixcert` folder in `MBCPApp/` or clone the following repo (it has blobs for some versions) - -``` -# clone vkey vtap blobs repo -git clone https://git.disroot.org/cuynu/vtapfw_blobs.git -cd vtapfw_blobs - -# in vtapfw_blobs folder, the structure are like this -[cuynu@x99e vtapfw_blobs] $ tree -. -├── README.md -├── v6.4.66 -│   ├── firmware -│   └── profile -├── v6.4.75 -│   ├── firmware -│   └── profile -└── v6.5.2 - ├── firmware - └── profile -``` - -- Just choose the proper blobs you want to use, then copy it to `fixcert` folder in `MBCPApp` (in this example i'll use v6.4.75 one, `mbbpatch` cloned in home folder) -``` -cp v6.4.75/firmware ~/mbbpatch/MBCPApp/fixcert -# DO NOT copy profile if you are patching newer base then the blobs one, otherwise it will fail certificate check. -cp v6.4.75/profile ~/mbbpatch/MBCPApp/fixcert -``` - -Then run patcher again `./mbcpapp.sh` -> `Patch App` -> `Fix VTAP Certificate` -> it will work :) - -After installed the patched app, if you have previous data, the old one may still present there, at this point delete with -``` -su -c rm -f /data/data/com.mbmobile/firmware -su -c rm -f /data/data/com.mbmobile/profile -``` - - -