diff --git a/.gitignore b/.gitignore index 432ca9c..1bf31d9 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ mbapk/ mbcpapp_apk/ mbcpapp_apk/ tools/ -.DS_STORE \ No newline at end of file +MBCPApp/patch.sh +.DS_STORE diff --git a/MBCPApp/patches/anime_resources/rating_illus_fiveStar.webp b/MBCPApp/blob_patches/anime_resources/rating_illus_fiveStar.webp similarity index 100% rename from MBCPApp/patches/anime_resources/rating_illus_fiveStar.webp rename to MBCPApp/blob_patches/anime_resources/rating_illus_fiveStar.webp diff --git a/MBCPApp/patches/anime_resources/rating_illus_fourStar.webp b/MBCPApp/blob_patches/anime_resources/rating_illus_fourStar.webp similarity index 100% rename from MBCPApp/patches/anime_resources/rating_illus_fourStar.webp rename to MBCPApp/blob_patches/anime_resources/rating_illus_fourStar.webp diff --git a/MBCPApp/patches/anime_resources/rating_illus_oneStar.webp b/MBCPApp/blob_patches/anime_resources/rating_illus_oneStar.webp similarity index 100% rename from MBCPApp/patches/anime_resources/rating_illus_oneStar.webp rename to MBCPApp/blob_patches/anime_resources/rating_illus_oneStar.webp diff --git a/MBCPApp/patches/anime_resources/rating_illus_threeStar.webp b/MBCPApp/blob_patches/anime_resources/rating_illus_threeStar.webp similarity index 100% rename from MBCPApp/patches/anime_resources/rating_illus_threeStar.webp rename to MBCPApp/blob_patches/anime_resources/rating_illus_threeStar.webp diff --git a/MBCPApp/patches/anime_resources/rating_illus_twoStar.webp b/MBCPApp/blob_patches/anime_resources/rating_illus_twoStar.webp similarity index 100% rename from MBCPApp/patches/anime_resources/rating_illus_twoStar.webp rename to MBCPApp/blob_patches/anime_resources/rating_illus_twoStar.webp diff --git a/MBCPApp/patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin$1.smali b/MBCPApp/blob_patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin$1.smali similarity index 100% rename from MBCPApp/patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin$1.smali rename to MBCPApp/blob_patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin$1.smali diff --git a/MBCPApp/patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin$AppDetail.smali b/MBCPApp/blob_patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin$AppDetail.smali similarity index 100% rename from MBCPApp/patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin$AppDetail.smali rename to MBCPApp/blob_patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin$AppDetail.smali diff --git a/MBCPApp/patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin$AppInstallInfo.smali b/MBCPApp/blob_patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin$AppInstallInfo.smali similarity index 100% rename from MBCPApp/patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin$AppInstallInfo.smali rename to MBCPApp/blob_patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin$AppInstallInfo.smali diff --git a/MBCPApp/patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin.smali b/MBCPApp/blob_patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin.smali similarity index 100% rename from MBCPApp/patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin.smali rename to MBCPApp/blob_patches/bypass_accessibility_applist/com/mbbank/utilities/mbbank_utilities/MbbankUtilitiesPlugin.smali diff --git a/MBCPApp/patches/bypass_apptampering/ReadME.md b/MBCPApp/blob_patches/bypass_apptampering/ReadME.md similarity index 100% rename from MBCPApp/patches/bypass_apptampering/ReadME.md rename to MBCPApp/blob_patches/bypass_apptampering/ReadME.md diff --git a/MBCPApp/patches/bypass_apptampering/bin/mt/signature/KillerApplication$1.smali b/MBCPApp/blob_patches/bypass_apptampering/bin/mt/signature/KillerApplication$1.smali similarity index 100% rename from MBCPApp/patches/bypass_apptampering/bin/mt/signature/KillerApplication$1.smali rename to MBCPApp/blob_patches/bypass_apptampering/bin/mt/signature/KillerApplication$1.smali diff --git a/MBCPApp/patches/bypass_apptampering/bin/mt/signature/KillerApplication.smali b/MBCPApp/blob_patches/bypass_apptampering/bin/mt/signature/KillerApplication.smali similarity index 100% rename from MBCPApp/patches/bypass_apptampering/bin/mt/signature/KillerApplication.smali rename to MBCPApp/blob_patches/bypass_apptampering/bin/mt/signature/KillerApplication.smali diff --git a/MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$AccessibleObject.smali b/MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$AccessibleObject.smali similarity index 100% rename from MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$AccessibleObject.smali rename to MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$AccessibleObject.smali diff --git a/MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$Class.smali b/MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$Class.smali similarity index 100% rename from MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$Class.smali rename to MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$Class.smali diff --git a/MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$Executable.smali b/MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$Executable.smali similarity index 100% rename from MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$Executable.smali rename to MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$Executable.smali diff --git a/MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$HandleInfo.smali b/MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$HandleInfo.smali similarity index 100% rename from MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$HandleInfo.smali rename to MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$HandleInfo.smali diff --git a/MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$InvokeStub.smali b/MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$InvokeStub.smali similarity index 100% rename from MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$InvokeStub.smali rename to MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$InvokeStub.smali diff --git a/MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$MethodHandle.smali b/MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$MethodHandle.smali similarity index 100% rename from MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$MethodHandle.smali rename to MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$MethodHandle.smali diff --git a/MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$MethodHandleImpl.smali b/MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$MethodHandleImpl.smali similarity index 100% rename from MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$MethodHandleImpl.smali rename to MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$MethodHandleImpl.smali diff --git a/MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$NeverCall.smali b/MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$NeverCall.smali similarity index 100% rename from MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$NeverCall.smali rename to MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/Helper$NeverCall.smali diff --git a/MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/HiddenApiBypass.smali b/MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/HiddenApiBypass.smali similarity index 100% rename from MBCPApp/patches/bypass_apptampering/org/lsposed/hiddenapibypass/HiddenApiBypass.smali rename to MBCPApp/blob_patches/bypass_apptampering/org/lsposed/hiddenapibypass/HiddenApiBypass.smali diff --git a/MBCPApp/patches/bypass_rootold/BasicThreatInfo.smali b/MBCPApp/blob_patches/bypass_rootold/BasicThreatInfo.smali similarity index 100% rename from MBCPApp/patches/bypass_rootold/BasicThreatInfo.smali rename to MBCPApp/blob_patches/bypass_rootold/BasicThreatInfo.smali diff --git a/MBCPApp/patches/bypass_rootold/VGThreatAppInfo.smali b/MBCPApp/blob_patches/bypass_rootold/VGThreatAppInfo.smali similarity index 100% rename from MBCPApp/patches/bypass_rootold/VGThreatAppInfo.smali rename to MBCPApp/blob_patches/bypass_rootold/VGThreatAppInfo.smali diff --git a/MBCPApp/patches/bypass_rootold/VGThreatResponse.smali b/MBCPApp/blob_patches/bypass_rootold/VGThreatResponse.smali similarity index 100% rename from MBCPApp/patches/bypass_rootold/VGThreatResponse.smali rename to MBCPApp/blob_patches/bypass_rootold/VGThreatResponse.smali diff --git a/MBCPApp/patches/bypass_rootold/VGVirtualSpaceType.smali b/MBCPApp/blob_patches/bypass_rootold/VGVirtualSpaceType.smali similarity index 100% rename from MBCPApp/patches/bypass_rootold/VGVirtualSpaceType.smali rename to MBCPApp/blob_patches/bypass_rootold/VGVirtualSpaceType.smali diff --git a/MBCPApp/patches/bypass_rootold/VGVirtualTapType.smali b/MBCPApp/blob_patches/bypass_rootold/VGVirtualTapType.smali similarity index 100% rename from MBCPApp/patches/bypass_rootold/VGVirtualTapType.smali rename to MBCPApp/blob_patches/bypass_rootold/VGVirtualTapType.smali diff --git a/MBCPApp/patches/fix_df16211/R1Native.smali b/MBCPApp/blob_patches/fix_df16211/R1Native.smali similarity index 100% rename from MBCPApp/patches/fix_df16211/R1Native.smali rename to MBCPApp/blob_patches/fix_df16211/R1Native.smali diff --git a/MBCPApp/patches/fix_df16211/m1/M1RemoteService.smali b/MBCPApp/blob_patches/fix_df16211/m1/M1RemoteService.smali similarity index 100% rename from MBCPApp/patches/fix_df16211/m1/M1RemoteService.smali rename to MBCPApp/blob_patches/fix_df16211/m1/M1RemoteService.smali diff --git a/MBCPApp/patches/mbclassic/a_background_image.webp b/MBCPApp/blob_patches/mbclassic/a_background_image.webp similarity index 100% rename from MBCPApp/patches/mbclassic/a_background_image.webp rename to MBCPApp/blob_patches/mbclassic/a_background_image.webp diff --git a/MBCPApp/patches/mbclassic/general_bg_screenshot.webp b/MBCPApp/blob_patches/mbclassic/general_bg_screenshot.webp similarity index 100% rename from MBCPApp/patches/mbclassic/general_bg_screenshot.webp rename to MBCPApp/blob_patches/mbclassic/general_bg_screenshot.webp diff --git a/MBCPApp/patches/mbclassic/homeLanding_bg_main.webp b/MBCPApp/blob_patches/mbclassic/homeLanding_bg_main.webp similarity index 100% rename from MBCPApp/patches/mbclassic/homeLanding_bg_main.webp rename to MBCPApp/blob_patches/mbclassic/homeLanding_bg_main.webp diff --git a/MBCPApp/patches/mbclassic/loading_bg_main.webp b/MBCPApp/blob_patches/mbclassic/loading_bg_main.webp similarity index 100% rename from MBCPApp/patches/mbclassic/loading_bg_main.webp rename to MBCPApp/blob_patches/mbclassic/loading_bg_main.webp diff --git a/MBCPApp/patches/mbclassic/login_bg_main.webp b/MBCPApp/blob_patches/mbclassic/login_bg_main.webp similarity index 100% rename from MBCPApp/patches/mbclassic/login_bg_main.webp rename to MBCPApp/blob_patches/mbclassic/login_bg_main.webp diff --git a/MBCPApp/patches/mbclassic/qr_img_ThemeDefalut.webp b/MBCPApp/blob_patches/mbclassic/qr_img_ThemeDefalut.webp similarity index 100% rename from MBCPApp/patches/mbclassic/qr_img_ThemeDefalut.webp rename to MBCPApp/blob_patches/mbclassic/qr_img_ThemeDefalut.webp diff --git a/MBCPApp/patches/noel/a_background_image.png b/MBCPApp/blob_patches/noel/a_background_image.png similarity index 100% rename from MBCPApp/patches/noel/a_background_image.png rename to MBCPApp/blob_patches/noel/a_background_image.png diff --git a/MBCPApp/patches/noel/a_background_image.webp b/MBCPApp/blob_patches/noel/a_background_image.webp similarity index 100% rename from MBCPApp/patches/noel/a_background_image.webp rename to MBCPApp/blob_patches/noel/a_background_image.webp diff --git a/MBCPApp/patches/noel/bill_background_gold.png b/MBCPApp/blob_patches/noel/bill_background_gold.png similarity index 100% rename from MBCPApp/patches/noel/bill_background_gold.png rename to MBCPApp/blob_patches/noel/bill_background_gold.png diff --git a/MBCPApp/patches/noel/bill_background_gold.webp b/MBCPApp/blob_patches/noel/bill_background_gold.webp similarity index 100% rename from MBCPApp/patches/noel/bill_background_gold.webp rename to MBCPApp/blob_patches/noel/bill_background_gold.webp diff --git a/MBCPApp/patches/noel/coreBanking_img_successBackground.png b/MBCPApp/blob_patches/noel/coreBanking_img_successBackground.png similarity index 100% rename from MBCPApp/patches/noel/coreBanking_img_successBackground.png rename to MBCPApp/blob_patches/noel/coreBanking_img_successBackground.png diff --git a/MBCPApp/patches/noel/coreBanking_img_successBackground.webp b/MBCPApp/blob_patches/noel/coreBanking_img_successBackground.webp similarity index 100% rename from MBCPApp/patches/noel/coreBanking_img_successBackground.webp rename to MBCPApp/blob_patches/noel/coreBanking_img_successBackground.webp diff --git a/MBCPApp/patches/noel/customUI_img_classicMode.png b/MBCPApp/blob_patches/noel/customUI_img_classicMode.png similarity index 100% rename from MBCPApp/patches/noel/customUI_img_classicMode.png rename to MBCPApp/blob_patches/noel/customUI_img_classicMode.png diff --git a/MBCPApp/patches/noel/customUI_img_classicMode.webp b/MBCPApp/blob_patches/noel/customUI_img_classicMode.webp similarity index 100% rename from MBCPApp/patches/noel/customUI_img_classicMode.webp rename to MBCPApp/blob_patches/noel/customUI_img_classicMode.webp diff --git a/MBCPApp/patches/noel/general_bg_screenshot.png b/MBCPApp/blob_patches/noel/general_bg_screenshot.png similarity index 100% rename from MBCPApp/patches/noel/general_bg_screenshot.png rename to MBCPApp/blob_patches/noel/general_bg_screenshot.png diff --git a/MBCPApp/patches/noel/general_bg_screenshot.webp b/MBCPApp/blob_patches/noel/general_bg_screenshot.webp similarity index 100% rename from MBCPApp/patches/noel/general_bg_screenshot.webp rename to MBCPApp/blob_patches/noel/general_bg_screenshot.webp diff --git a/MBCPApp/patches/noel/general_bg_success.png b/MBCPApp/blob_patches/noel/general_bg_success.png similarity index 100% rename from MBCPApp/patches/noel/general_bg_success.png rename to MBCPApp/blob_patches/noel/general_bg_success.png diff --git a/MBCPApp/patches/noel/general_bg_success.webp b/MBCPApp/blob_patches/noel/general_bg_success.webp similarity index 100% rename from MBCPApp/patches/noel/general_bg_success.webp rename to MBCPApp/blob_patches/noel/general_bg_success.webp diff --git a/MBCPApp/patches/noel/homeLanding_bg_main.png b/MBCPApp/blob_patches/noel/homeLanding_bg_main.png similarity index 100% rename from MBCPApp/patches/noel/homeLanding_bg_main.png rename to MBCPApp/blob_patches/noel/homeLanding_bg_main.png diff --git a/MBCPApp/patches/noel/homeLanding_bg_main.webp b/MBCPApp/blob_patches/noel/homeLanding_bg_main.webp similarity index 100% rename from MBCPApp/patches/noel/homeLanding_bg_main.webp rename to MBCPApp/blob_patches/noel/homeLanding_bg_main.webp diff --git a/MBCPApp/patches/noel/loading_bg_main.png b/MBCPApp/blob_patches/noel/loading_bg_main.png similarity index 100% rename from MBCPApp/patches/noel/loading_bg_main.png rename to MBCPApp/blob_patches/noel/loading_bg_main.png diff --git a/MBCPApp/patches/noel/loading_bg_main.webp b/MBCPApp/blob_patches/noel/loading_bg_main.webp similarity index 100% rename from MBCPApp/patches/noel/loading_bg_main.webp rename to MBCPApp/blob_patches/noel/loading_bg_main.webp diff --git a/MBCPApp/patches/noel/login_bg_main.png b/MBCPApp/blob_patches/noel/login_bg_main.png similarity index 100% rename from MBCPApp/patches/noel/login_bg_main.png rename to MBCPApp/blob_patches/noel/login_bg_main.png diff --git a/MBCPApp/patches/noel/login_bg_main.webp b/MBCPApp/blob_patches/noel/login_bg_main.webp similarity index 100% rename from MBCPApp/patches/noel/login_bg_main.webp rename to MBCPApp/blob_patches/noel/login_bg_main.webp diff --git a/MBCPApp/patches/noel/qr_img_ThemeDefalut.png b/MBCPApp/blob_patches/noel/qr_img_ThemeDefalut.png similarity index 100% rename from MBCPApp/patches/noel/qr_img_ThemeDefalut.png rename to MBCPApp/blob_patches/noel/qr_img_ThemeDefalut.png diff --git a/MBCPApp/patches/noel/qr_img_ThemeDefalut.webp b/MBCPApp/blob_patches/noel/qr_img_ThemeDefalut.webp similarity index 100% rename from MBCPApp/patches/noel/qr_img_ThemeDefalut.webp rename to MBCPApp/blob_patches/noel/qr_img_ThemeDefalut.webp diff --git a/MBCPApp/patches/noel/theme_img_thumbnail.png b/MBCPApp/blob_patches/noel/theme_img_thumbnail.png similarity index 100% rename from MBCPApp/patches/noel/theme_img_thumbnail.png rename to MBCPApp/blob_patches/noel/theme_img_thumbnail.png diff --git a/MBCPApp/patches/noel/theme_img_thumbnail.webp b/MBCPApp/blob_patches/noel/theme_img_thumbnail.webp similarity index 100% rename from MBCPApp/patches/noel/theme_img_thumbnail.webp rename to MBCPApp/blob_patches/noel/theme_img_thumbnail.webp diff --git a/MBCPApp/patches/noinvoke/MBBHomeWidgetQR.smali b/MBCPApp/blob_patches/noinvoke/MBBHomeWidgetQR.smali similarity index 100% rename from MBCPApp/patches/noinvoke/MBBHomeWidgetQR.smali rename to MBCPApp/blob_patches/noinvoke/MBBHomeWidgetQR.smali diff --git a/MBCPApp/patches/noinvoke/MainActivity.smali b/MBCPApp/blob_patches/noinvoke/MainActivity.smali similarity index 100% rename from MBCPApp/patches/noinvoke/MainActivity.smali rename to MBCPApp/blob_patches/noinvoke/MainActivity.smali diff --git a/MBCPApp/patches/qr_white/homeLanding_bg_qrCode.gif b/MBCPApp/blob_patches/qr_white/homeLanding_bg_qrCode.gif similarity index 100% rename from MBCPApp/patches/qr_white/homeLanding_bg_qrCode.gif rename to MBCPApp/blob_patches/qr_white/homeLanding_bg_qrCode.gif diff --git a/MBCPApp/patches/remove_vmb20/GeneratedPluginRegistrant.smali b/MBCPApp/blob_patches/remove_vmb20/GeneratedPluginRegistrant.smali similarity index 100% rename from MBCPApp/patches/remove_vmb20/GeneratedPluginRegistrant.smali rename to MBCPApp/blob_patches/remove_vmb20/GeneratedPluginRegistrant.smali diff --git a/MBCPApp/patches/resources/font/README.md b/MBCPApp/blob_patches/resources/font/README.md similarity index 100% rename from MBCPApp/patches/resources/font/README.md rename to MBCPApp/blob_patches/resources/font/README.md diff --git a/MBCPApp/patches/resources/font/bold.ttf b/MBCPApp/blob_patches/resources/font/bold.ttf similarity index 100% rename from MBCPApp/patches/resources/font/bold.ttf rename to MBCPApp/blob_patches/resources/font/bold.ttf diff --git a/MBCPApp/patches/resources/font/medium.ttf b/MBCPApp/blob_patches/resources/font/medium.ttf similarity index 100% rename from MBCPApp/patches/resources/font/medium.ttf rename to MBCPApp/blob_patches/resources/font/medium.ttf diff --git a/MBCPApp/patches/resources/font/regular.ttf b/MBCPApp/blob_patches/resources/font/regular.ttf similarity index 100% rename from MBCPApp/patches/resources/font/regular.ttf rename to MBCPApp/blob_patches/resources/font/regular.ttf diff --git a/MBCPApp/patches/resources/raw/bottom_logo.png b/MBCPApp/blob_patches/resources/raw/bottom_logo.png similarity index 100% rename from MBCPApp/patches/resources/raw/bottom_logo.png rename to MBCPApp/blob_patches/resources/raw/bottom_logo.png diff --git a/MBCPApp/patches/resources/raw/cccd_back_0.mp3 b/MBCPApp/blob_patches/resources/raw/cccd_back_0.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cccd_back_0.mp3 rename to MBCPApp/blob_patches/resources/raw/cccd_back_0.mp3 diff --git a/MBCPApp/patches/resources/raw/cccd_back_1.mp3 b/MBCPApp/blob_patches/resources/raw/cccd_back_1.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cccd_back_1.mp3 rename to MBCPApp/blob_patches/resources/raw/cccd_back_1.mp3 diff --git a/MBCPApp/patches/resources/raw/cccd_back_3.mp3 b/MBCPApp/blob_patches/resources/raw/cccd_back_3.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cccd_back_3.mp3 rename to MBCPApp/blob_patches/resources/raw/cccd_back_3.mp3 diff --git a/MBCPApp/patches/resources/raw/cccd_front_0.mp3 b/MBCPApp/blob_patches/resources/raw/cccd_front_0.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cccd_front_0.mp3 rename to MBCPApp/blob_patches/resources/raw/cccd_front_0.mp3 diff --git a/MBCPApp/patches/resources/raw/cccd_front_1.mp3 b/MBCPApp/blob_patches/resources/raw/cccd_front_1.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cccd_front_1.mp3 rename to MBCPApp/blob_patches/resources/raw/cccd_front_1.mp3 diff --git a/MBCPApp/patches/resources/raw/cccd_front_3.mp3 b/MBCPApp/blob_patches/resources/raw/cccd_front_3.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cccd_front_3.mp3 rename to MBCPApp/blob_patches/resources/raw/cccd_front_3.mp3 diff --git a/MBCPApp/patches/resources/raw/cmnd_back_0.mp3 b/MBCPApp/blob_patches/resources/raw/cmnd_back_0.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cmnd_back_0.mp3 rename to MBCPApp/blob_patches/resources/raw/cmnd_back_0.mp3 diff --git a/MBCPApp/patches/resources/raw/cmnd_back_1.mp3 b/MBCPApp/blob_patches/resources/raw/cmnd_back_1.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cmnd_back_1.mp3 rename to MBCPApp/blob_patches/resources/raw/cmnd_back_1.mp3 diff --git a/MBCPApp/patches/resources/raw/cmnd_back_3.mp3 b/MBCPApp/blob_patches/resources/raw/cmnd_back_3.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cmnd_back_3.mp3 rename to MBCPApp/blob_patches/resources/raw/cmnd_back_3.mp3 diff --git a/MBCPApp/patches/resources/raw/cmnd_front_0.mp3 b/MBCPApp/blob_patches/resources/raw/cmnd_front_0.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cmnd_front_0.mp3 rename to MBCPApp/blob_patches/resources/raw/cmnd_front_0.mp3 diff --git a/MBCPApp/patches/resources/raw/cmnd_front_1.mp3 b/MBCPApp/blob_patches/resources/raw/cmnd_front_1.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cmnd_front_1.mp3 rename to MBCPApp/blob_patches/resources/raw/cmnd_front_1.mp3 diff --git a/MBCPApp/patches/resources/raw/cmnd_front_3.mp3 b/MBCPApp/blob_patches/resources/raw/cmnd_front_3.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cmnd_front_3.mp3 rename to MBCPApp/blob_patches/resources/raw/cmnd_front_3.mp3 diff --git a/MBCPApp/patches/resources/raw/cmqd_back_0.mp3 b/MBCPApp/blob_patches/resources/raw/cmqd_back_0.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cmqd_back_0.mp3 rename to MBCPApp/blob_patches/resources/raw/cmqd_back_0.mp3 diff --git a/MBCPApp/patches/resources/raw/cmqd_back_1.mp3 b/MBCPApp/blob_patches/resources/raw/cmqd_back_1.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cmqd_back_1.mp3 rename to MBCPApp/blob_patches/resources/raw/cmqd_back_1.mp3 diff --git a/MBCPApp/patches/resources/raw/cmqd_back_3.mp3 b/MBCPApp/blob_patches/resources/raw/cmqd_back_3.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cmqd_back_3.mp3 rename to MBCPApp/blob_patches/resources/raw/cmqd_back_3.mp3 diff --git a/MBCPApp/patches/resources/raw/cmqd_front_0.mp3 b/MBCPApp/blob_patches/resources/raw/cmqd_front_0.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cmqd_front_0.mp3 rename to MBCPApp/blob_patches/resources/raw/cmqd_front_0.mp3 diff --git a/MBCPApp/patches/resources/raw/cmqd_front_1.mp3 b/MBCPApp/blob_patches/resources/raw/cmqd_front_1.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cmqd_front_1.mp3 rename to MBCPApp/blob_patches/resources/raw/cmqd_front_1.mp3 diff --git a/MBCPApp/patches/resources/raw/cmqd_front_3.mp3 b/MBCPApp/blob_patches/resources/raw/cmqd_front_3.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/cmqd_front_3.mp3 rename to MBCPApp/blob_patches/resources/raw/cmqd_front_3.mp3 diff --git a/MBCPApp/patches/resources/raw/ekyc_cccd.json b/MBCPApp/blob_patches/resources/raw/ekyc_cccd.json similarity index 100% rename from MBCPApp/patches/resources/raw/ekyc_cccd.json rename to MBCPApp/blob_patches/resources/raw/ekyc_cccd.json diff --git a/MBCPApp/patches/resources/raw/ekyc_cmnd.json b/MBCPApp/blob_patches/resources/raw/ekyc_cmnd.json similarity index 100% rename from MBCPApp/patches/resources/raw/ekyc_cmnd.json rename to MBCPApp/blob_patches/resources/raw/ekyc_cmnd.json diff --git a/MBCPApp/patches/resources/raw/ekyc_cmsq.json b/MBCPApp/blob_patches/resources/raw/ekyc_cmsq.json similarity index 100% rename from MBCPApp/patches/resources/raw/ekyc_cmsq.json rename to MBCPApp/blob_patches/resources/raw/ekyc_cmsq.json diff --git a/MBCPApp/patches/resources/raw/ekyc_id_card.json b/MBCPApp/blob_patches/resources/raw/ekyc_id_card.json similarity index 100% rename from MBCPApp/patches/resources/raw/ekyc_id_card.json rename to MBCPApp/blob_patches/resources/raw/ekyc_id_card.json diff --git a/MBCPApp/patches/resources/raw/ekyc_inter_passport.json b/MBCPApp/blob_patches/resources/raw/ekyc_inter_passport.json similarity index 100% rename from MBCPApp/patches/resources/raw/ekyc_inter_passport.json rename to MBCPApp/blob_patches/resources/raw/ekyc_inter_passport.json diff --git a/MBCPApp/patches/resources/raw/ekyc_passport.json b/MBCPApp/blob_patches/resources/raw/ekyc_passport.json similarity index 100% rename from MBCPApp/patches/resources/raw/ekyc_passport.json rename to MBCPApp/blob_patches/resources/raw/ekyc_passport.json diff --git a/MBCPApp/patches/resources/raw/ekyc_video.json b/MBCPApp/blob_patches/resources/raw/ekyc_video.json similarity index 100% rename from MBCPApp/patches/resources/raw/ekyc_video.json rename to MBCPApp/blob_patches/resources/raw/ekyc_video.json diff --git a/MBCPApp/patches/resources/raw/ekyc_video_no_voice.json b/MBCPApp/blob_patches/resources/raw/ekyc_video_no_voice.json similarity index 100% rename from MBCPApp/patches/resources/raw/ekyc_video_no_voice.json rename to MBCPApp/blob_patches/resources/raw/ekyc_video_no_voice.json diff --git a/MBCPApp/patches/resources/raw/ekyc_views_json_camera.json b/MBCPApp/blob_patches/resources/raw/ekyc_views_json_camera.json similarity index 100% rename from MBCPApp/patches/resources/raw/ekyc_views_json_camera.json rename to MBCPApp/blob_patches/resources/raw/ekyc_views_json_camera.json diff --git a/MBCPApp/patches/resources/raw/error.png b/MBCPApp/blob_patches/resources/raw/error.png similarity index 100% rename from MBCPApp/patches/resources/raw/error.png rename to MBCPApp/blob_patches/resources/raw/error.png diff --git a/MBCPApp/patches/resources/raw/id_card.json b/MBCPApp/blob_patches/resources/raw/id_card.json similarity index 100% rename from MBCPApp/patches/resources/raw/id_card.json rename to MBCPApp/blob_patches/resources/raw/id_card.json diff --git a/MBCPApp/patches/resources/raw/id_card_back_0.mp3 b/MBCPApp/blob_patches/resources/raw/id_card_back_0.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/id_card_back_0.mp3 rename to MBCPApp/blob_patches/resources/raw/id_card_back_0.mp3 diff --git a/MBCPApp/patches/resources/raw/id_card_back_1.mp3 b/MBCPApp/blob_patches/resources/raw/id_card_back_1.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/id_card_back_1.mp3 rename to MBCPApp/blob_patches/resources/raw/id_card_back_1.mp3 diff --git a/MBCPApp/patches/resources/raw/id_card_back_3.mp3 b/MBCPApp/blob_patches/resources/raw/id_card_back_3.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/id_card_back_3.mp3 rename to MBCPApp/blob_patches/resources/raw/id_card_back_3.mp3 diff --git a/MBCPApp/patches/resources/raw/id_card_front_0.mp3 b/MBCPApp/blob_patches/resources/raw/id_card_front_0.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/id_card_front_0.mp3 rename to MBCPApp/blob_patches/resources/raw/id_card_front_0.mp3 diff --git a/MBCPApp/patches/resources/raw/id_card_front_1.mp3 b/MBCPApp/blob_patches/resources/raw/id_card_front_1.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/id_card_front_1.mp3 rename to MBCPApp/blob_patches/resources/raw/id_card_front_1.mp3 diff --git a/MBCPApp/patches/resources/raw/id_card_front_3.mp3 b/MBCPApp/blob_patches/resources/raw/id_card_front_3.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/id_card_front_3.mp3 rename to MBCPApp/blob_patches/resources/raw/id_card_front_3.mp3 diff --git a/MBCPApp/patches/resources/raw/international_passport_0.mp3 b/MBCPApp/blob_patches/resources/raw/international_passport_0.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/international_passport_0.mp3 rename to MBCPApp/blob_patches/resources/raw/international_passport_0.mp3 diff --git a/MBCPApp/patches/resources/raw/international_passport_1.mp3 b/MBCPApp/blob_patches/resources/raw/international_passport_1.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/international_passport_1.mp3 rename to MBCPApp/blob_patches/resources/raw/international_passport_1.mp3 diff --git a/MBCPApp/patches/resources/raw/international_passport_3.mp3 b/MBCPApp/blob_patches/resources/raw/international_passport_3.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/international_passport_3.mp3 rename to MBCPApp/blob_patches/resources/raw/international_passport_3.mp3 diff --git a/MBCPApp/patches/resources/raw/keep.xml b/MBCPApp/blob_patches/resources/raw/keep.xml similarity index 100% rename from MBCPApp/patches/resources/raw/keep.xml rename to MBCPApp/blob_patches/resources/raw/keep.xml diff --git a/MBCPApp/patches/resources/raw/mapdata.json b/MBCPApp/blob_patches/resources/raw/mapdata.json similarity index 100% rename from MBCPApp/patches/resources/raw/mapdata.json rename to MBCPApp/blob_patches/resources/raw/mapdata.json diff --git a/MBCPApp/patches/resources/raw/nfc_screen2_popup_guide.mp3 b/MBCPApp/blob_patches/resources/raw/nfc_screen2_popup_guide.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/nfc_screen2_popup_guide.mp3 rename to MBCPApp/blob_patches/resources/raw/nfc_screen2_popup_guide.mp3 diff --git a/MBCPApp/patches/resources/raw/nfc_screen2_try_scan_voice.mp3 b/MBCPApp/blob_patches/resources/raw/nfc_screen2_try_scan_voice.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/nfc_screen2_try_scan_voice.mp3 rename to MBCPApp/blob_patches/resources/raw/nfc_screen2_try_scan_voice.mp3 diff --git a/MBCPApp/patches/resources/raw/passport_0.mp3 b/MBCPApp/blob_patches/resources/raw/passport_0.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/passport_0.mp3 rename to MBCPApp/blob_patches/resources/raw/passport_0.mp3 diff --git a/MBCPApp/patches/resources/raw/passport_1.mp3 b/MBCPApp/blob_patches/resources/raw/passport_1.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/passport_1.mp3 rename to MBCPApp/blob_patches/resources/raw/passport_1.mp3 diff --git a/MBCPApp/patches/resources/raw/passport_3.mp3 b/MBCPApp/blob_patches/resources/raw/passport_3.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/passport_3.mp3 rename to MBCPApp/blob_patches/resources/raw/passport_3.mp3 diff --git a/MBCPApp/patches/resources/raw/singalarity_ai_demo_face_0.mp3 b/MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_face_0.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/singalarity_ai_demo_face_0.mp3 rename to MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_face_0.mp3 diff --git a/MBCPApp/patches/resources/raw/singalarity_ai_demo_face_1.mp3 b/MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_face_1.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/singalarity_ai_demo_face_1.mp3 rename to MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_face_1.mp3 diff --git a/MBCPApp/patches/resources/raw/singalarity_ai_demo_face_3.mp3 b/MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_face_3.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/singalarity_ai_demo_face_3.mp3 rename to MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_face_3.mp3 diff --git a/MBCPApp/patches/resources/raw/singalarity_ai_demo_start_0.mp3 b/MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_start_0.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/singalarity_ai_demo_start_0.mp3 rename to MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_start_0.mp3 diff --git a/MBCPApp/patches/resources/raw/singalarity_ai_demo_start_1.mp3 b/MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_start_1.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/singalarity_ai_demo_start_1.mp3 rename to MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_start_1.mp3 diff --git a/MBCPApp/patches/resources/raw/singalarity_ai_demo_start_3.mp3 b/MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_start_3.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/singalarity_ai_demo_start_3.mp3 rename to MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_start_3.mp3 diff --git a/MBCPApp/patches/resources/raw/singalarity_ai_demo_voice_0.mp3 b/MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_voice_0.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/singalarity_ai_demo_voice_0.mp3 rename to MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_voice_0.mp3 diff --git a/MBCPApp/patches/resources/raw/singalarity_ai_demo_voice_1.mp3 b/MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_voice_1.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/singalarity_ai_demo_voice_1.mp3 rename to MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_voice_1.mp3 diff --git a/MBCPApp/patches/resources/raw/singalarity_ai_demo_voice_3.mp3 b/MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_voice_3.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/singalarity_ai_demo_voice_3.mp3 rename to MBCPApp/blob_patches/resources/raw/singalarity_ai_demo_voice_3.mp3 diff --git a/MBCPApp/patches/resources/raw/singalarity_ai_face_0.mp3 b/MBCPApp/blob_patches/resources/raw/singalarity_ai_face_0.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/singalarity_ai_face_0.mp3 rename to MBCPApp/blob_patches/resources/raw/singalarity_ai_face_0.mp3 diff --git a/MBCPApp/patches/resources/raw/singalarity_ai_face_1.mp3 b/MBCPApp/blob_patches/resources/raw/singalarity_ai_face_1.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/singalarity_ai_face_1.mp3 rename to MBCPApp/blob_patches/resources/raw/singalarity_ai_face_1.mp3 diff --git a/MBCPApp/patches/resources/raw/singalarity_ai_face_3.mp3 b/MBCPApp/blob_patches/resources/raw/singalarity_ai_face_3.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/singalarity_ai_face_3.mp3 rename to MBCPApp/blob_patches/resources/raw/singalarity_ai_face_3.mp3 diff --git a/MBCPApp/patches/resources/raw/singalarity_ai_voice_0.mp3 b/MBCPApp/blob_patches/resources/raw/singalarity_ai_voice_0.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/singalarity_ai_voice_0.mp3 rename to MBCPApp/blob_patches/resources/raw/singalarity_ai_voice_0.mp3 diff --git a/MBCPApp/patches/resources/raw/singalarity_ai_voice_1.mp3 b/MBCPApp/blob_patches/resources/raw/singalarity_ai_voice_1.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/singalarity_ai_voice_1.mp3 rename to MBCPApp/blob_patches/resources/raw/singalarity_ai_voice_1.mp3 diff --git a/MBCPApp/patches/resources/raw/singalarity_ai_voice_3.mp3 b/MBCPApp/blob_patches/resources/raw/singalarity_ai_voice_3.mp3 similarity index 100% rename from MBCPApp/patches/resources/raw/singalarity_ai_voice_3.mp3 rename to MBCPApp/blob_patches/resources/raw/singalarity_ai_voice_3.mp3 diff --git a/MBCPApp/patches/resources/raw/top_logo_partner.png b/MBCPApp/blob_patches/resources/raw/top_logo_partner.png similarity index 100% rename from MBCPApp/patches/resources/raw/top_logo_partner.png rename to MBCPApp/blob_patches/resources/raw/top_logo_partner.png diff --git a/MBCPApp/patches/resources/raw/ui_json_fail.json b/MBCPApp/blob_patches/resources/raw/ui_json_fail.json similarity index 100% rename from MBCPApp/patches/resources/raw/ui_json_fail.json rename to MBCPApp/blob_patches/resources/raw/ui_json_fail.json diff --git a/MBCPApp/patches/resources/raw/video_intro_no_voice_0.mp4 b/MBCPApp/blob_patches/resources/raw/video_intro_no_voice_0.mp4 similarity index 100% rename from MBCPApp/patches/resources/raw/video_intro_no_voice_0.mp4 rename to MBCPApp/blob_patches/resources/raw/video_intro_no_voice_0.mp4 diff --git a/MBCPApp/patches/resources/raw/video_intro_no_voice_1.mp4 b/MBCPApp/blob_patches/resources/raw/video_intro_no_voice_1.mp4 similarity index 100% rename from MBCPApp/patches/resources/raw/video_intro_no_voice_1.mp4 rename to MBCPApp/blob_patches/resources/raw/video_intro_no_voice_1.mp4 diff --git a/MBCPApp/patches/resources/raw/video_intro_no_voice_3.mp4 b/MBCPApp/blob_patches/resources/raw/video_intro_no_voice_3.mp4 similarity index 100% rename from MBCPApp/patches/resources/raw/video_intro_no_voice_3.mp4 rename to MBCPApp/blob_patches/resources/raw/video_intro_no_voice_3.mp4 diff --git a/MBCPApp/patches/resources/raw/video_intro_with_voice_0.mp4 b/MBCPApp/blob_patches/resources/raw/video_intro_with_voice_0.mp4 similarity index 100% rename from MBCPApp/patches/resources/raw/video_intro_with_voice_0.mp4 rename to MBCPApp/blob_patches/resources/raw/video_intro_with_voice_0.mp4 diff --git a/MBCPApp/patches/resources/raw/video_intro_with_voice_1.mp4 b/MBCPApp/blob_patches/resources/raw/video_intro_with_voice_1.mp4 similarity index 100% rename from MBCPApp/patches/resources/raw/video_intro_with_voice_1.mp4 rename to MBCPApp/blob_patches/resources/raw/video_intro_with_voice_1.mp4 diff --git a/MBCPApp/patches/resources/raw/video_intro_with_voice_3.mp4 b/MBCPApp/blob_patches/resources/raw/video_intro_with_voice_3.mp4 similarity index 100% rename from MBCPApp/patches/resources/raw/video_intro_with_voice_3.mp4 rename to MBCPApp/blob_patches/resources/raw/video_intro_with_voice_3.mp4 diff --git a/MBCPApp/patches/resources/strings-vi/strings.xml b/MBCPApp/blob_patches/resources/strings-vi/strings.xml similarity index 100% rename from MBCPApp/patches/resources/strings-vi/strings.xml rename to MBCPApp/blob_patches/resources/strings-vi/strings.xml diff --git a/MBCPApp/patches/restore_oldreg/onboarding_illus_featureAccount.webp b/MBCPApp/blob_patches/restore_oldreg/onboarding_illus_featureAccount.webp similarity index 100% rename from MBCPApp/patches/restore_oldreg/onboarding_illus_featureAccount.webp rename to MBCPApp/blob_patches/restore_oldreg/onboarding_illus_featureAccount.webp diff --git a/MBCPApp/patches/restore_oldreg/onboarding_illus_featureFreeService.webp b/MBCPApp/blob_patches/restore_oldreg/onboarding_illus_featureFreeService.webp similarity index 100% rename from MBCPApp/patches/restore_oldreg/onboarding_illus_featureFreeService.webp rename to MBCPApp/blob_patches/restore_oldreg/onboarding_illus_featureFreeService.webp diff --git a/MBCPApp/patches/restore_oldreg/onboarding_illus_featureMBS.webp b/MBCPApp/blob_patches/restore_oldreg/onboarding_illus_featureMBS.webp similarity index 100% rename from MBCPApp/patches/restore_oldreg/onboarding_illus_featureMBS.webp rename to MBCPApp/blob_patches/restore_oldreg/onboarding_illus_featureMBS.webp diff --git a/MBCPApp/patches/restore_oldreg/onboarding_illus_featureShield.webp b/MBCPApp/blob_patches/restore_oldreg/onboarding_illus_featureShield.webp similarity index 100% rename from MBCPApp/patches/restore_oldreg/onboarding_illus_featureShield.webp rename to MBCPApp/blob_patches/restore_oldreg/onboarding_illus_featureShield.webp diff --git a/MBCPApp/patches/restore_oldreg/onboarding_img_referLinkNoneCoin.webp b/MBCPApp/blob_patches/restore_oldreg/onboarding_img_referLinkNoneCoin.webp similarity index 100% rename from MBCPApp/patches/restore_oldreg/onboarding_img_referLinkNoneCoin.webp rename to MBCPApp/blob_patches/restore_oldreg/onboarding_img_referLinkNoneCoin.webp diff --git a/MBCPApp/patches/restore_oldreg/onboarding_img_referLinkPersonalCoin.webp b/MBCPApp/blob_patches/restore_oldreg/onboarding_img_referLinkPersonalCoin.webp similarity index 100% rename from MBCPApp/patches/restore_oldreg/onboarding_img_referLinkPersonalCoin.webp rename to MBCPApp/blob_patches/restore_oldreg/onboarding_img_referLinkPersonalCoin.webp diff --git a/MBCPApp/patches/revert_old_eMBee/customerService_img_avatarChat.webp b/MBCPApp/blob_patches/revert_old_eMBee/customerService_img_avatarChat.webp similarity index 100% rename from MBCPApp/patches/revert_old_eMBee/customerService_img_avatarChat.webp rename to MBCPApp/blob_patches/revert_old_eMBee/customerService_img_avatarChat.webp diff --git a/MBCPApp/patches/revert_old_eMBee/customerService_img_avatarChat01.webp b/MBCPApp/blob_patches/revert_old_eMBee/customerService_img_avatarChat01.webp similarity index 100% rename from MBCPApp/patches/revert_old_eMBee/customerService_img_avatarChat01.webp rename to MBCPApp/blob_patches/revert_old_eMBee/customerService_img_avatarChat01.webp diff --git a/MBCPApp/patches/revert_old_eMBee/customerService_img_avatarChat02.webp b/MBCPApp/blob_patches/revert_old_eMBee/customerService_img_avatarChat02.webp similarity index 100% rename from MBCPApp/patches/revert_old_eMBee/customerService_img_avatarChat02.webp rename to MBCPApp/blob_patches/revert_old_eMBee/customerService_img_avatarChat02.webp diff --git a/MBCPApp/patches/revert_old_eMBee/customerService_img_avatarChat03.webp b/MBCPApp/blob_patches/revert_old_eMBee/customerService_img_avatarChat03.webp similarity index 100% rename from MBCPApp/patches/revert_old_eMBee/customerService_img_avatarChat03.webp rename to MBCPApp/blob_patches/revert_old_eMBee/customerService_img_avatarChat03.webp diff --git a/MBCPApp/patches/revert_old_eMBee/customerService_img_avatarChat04.webp b/MBCPApp/blob_patches/revert_old_eMBee/customerService_img_avatarChat04.webp similarity index 100% rename from MBCPApp/patches/revert_old_eMBee/customerService_img_avatarChat04.webp rename to MBCPApp/blob_patches/revert_old_eMBee/customerService_img_avatarChat04.webp diff --git a/MBCPApp/patches/revert_old_eMBee/eMBee_img_headerNew.private.webp b/MBCPApp/blob_patches/revert_old_eMBee/eMBee_img_headerNew.private.webp similarity index 100% rename from MBCPApp/patches/revert_old_eMBee/eMBee_img_headerNew.private.webp rename to MBCPApp/blob_patches/revert_old_eMBee/eMBee_img_headerNew.private.webp diff --git a/MBCPApp/patches/revert_old_eMBee/eMBee_img_headerNew.webp b/MBCPApp/blob_patches/revert_old_eMBee/eMBee_img_headerNew.webp similarity index 100% rename from MBCPApp/patches/revert_old_eMBee/eMBee_img_headerNew.webp rename to MBCPApp/blob_patches/revert_old_eMBee/eMBee_img_headerNew.webp diff --git a/MBCPApp/patches/revert_old_eMBee/eMBee_img_loginSupport.private.webp b/MBCPApp/blob_patches/revert_old_eMBee/eMBee_img_loginSupport.private.webp similarity index 100% rename from MBCPApp/patches/revert_old_eMBee/eMBee_img_loginSupport.private.webp rename to MBCPApp/blob_patches/revert_old_eMBee/eMBee_img_loginSupport.private.webp diff --git a/MBCPApp/patches/revert_old_eMBee/eMBee_img_loginSupport.webp b/MBCPApp/blob_patches/revert_old_eMBee/eMBee_img_loginSupport.webp similarity index 100% rename from MBCPApp/patches/revert_old_eMBee/eMBee_img_loginSupport.webp rename to MBCPApp/blob_patches/revert_old_eMBee/eMBee_img_loginSupport.webp diff --git a/MBCPApp/patches/revert_old_eMBee/homeLanding_img_avatarDefault.private.webp b/MBCPApp/blob_patches/revert_old_eMBee/homeLanding_img_avatarDefault.private.webp similarity index 100% rename from MBCPApp/patches/revert_old_eMBee/homeLanding_img_avatarDefault.private.webp rename to MBCPApp/blob_patches/revert_old_eMBee/homeLanding_img_avatarDefault.private.webp diff --git a/MBCPApp/patches/revert_old_eMBee/homeLanding_img_avatarDefault.webp b/MBCPApp/blob_patches/revert_old_eMBee/homeLanding_img_avatarDefault.webp similarity index 100% rename from MBCPApp/patches/revert_old_eMBee/homeLanding_img_avatarDefault.webp rename to MBCPApp/blob_patches/revert_old_eMBee/homeLanding_img_avatarDefault.webp diff --git a/MBCPApp/patches/semipriority/ic_logo_mb_text.svg b/MBCPApp/blob_patches/semipriority/ic_logo_mb_text.svg similarity index 100% rename from MBCPApp/patches/semipriority/ic_logo_mb_text.svg rename to MBCPApp/blob_patches/semipriority/ic_logo_mb_text.svg diff --git a/MBCPApp/patches/semipriority/welcom_img_eMbee.webp b/MBCPApp/blob_patches/semipriority/welcom_img_eMbee.webp similarity index 100% rename from MBCPApp/patches/semipriority/welcom_img_eMbee.webp rename to MBCPApp/blob_patches/semipriority/welcom_img_eMbee.webp diff --git a/MBCPApp/patches/skip_maintainscreen/com/vtap/VTapSetupPlugin.smali b/MBCPApp/blob_patches/skip_maintainscreen/com/vtap/VTapSetupPlugin.smali similarity index 100% rename from MBCPApp/patches/skip_maintainscreen/com/vtap/VTapSetupPlugin.smali rename to MBCPApp/blob_patches/skip_maintainscreen/com/vtap/VTapSetupPlugin.smali diff --git a/MBCPApp/common.sh b/MBCPApp/common.sh new file mode 100644 index 0000000..aed894b --- /dev/null +++ b/MBCPApp/common.sh @@ -0,0 +1,79 @@ +#!/usr/bin/env bash +# vim: expandtab tabstop=4 shiftwidth=4 + +# imported from https://github.com/dylanaraps/pure-bash-bible +bb_split() { + # Usage: split "string" "delimiter" + IFS=$'\n' read -d "" -ra arr <<< "${1//$2/$'\n'}" + # printf '%s\n' "${arr[@]}" + printf '%s\n' "${arr[$3]}" +} + +# imported from https://github.com/dylanaraps/pure-sh-bible +lstrip() { + # Usage: lstrip "string" "pattern" + printf '%s\n' "${1##$2}" +} + +# imported from https://github.com/dylanaraps/pure-sh-bible +rstrip() { + # Usage: rstrip "string" "pattern" + printf '%s\n' "${1%%$2}" +} + +getvar() { + # Usage: getline "n" "pattern" "file" + while IFS= read -r line; do + i=$((i+1)) + [ "$i" = "$1" ] && printf '%s\n' "${line##$2}" && return + done < "$3" +} + +sed_libapp() { + target=$(bb_split "$1" '|' '1') + replacement=$(bb_split "$1" '|' '2') + ( + sed -i "$1" "$DIRPATH"/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so + sed -i "$1" "$DIRPATH"/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so + ) && info "[sed_libapp] [$target] -> [$replacement]" || warn "[sed_libapp] replacing [$target] failed !" +} + +# libdesignersactivists.so are former known as libZDefend.so +# MB moved it to libdesignersactivists.so since v6.4.48+ +# this currently is placeholder, and will be implemented later +sed_libzdefend() { + target=$(bb_split "$1" '|' '1') + replacement=$(bb_split "$1" '|' '2') + ( + sed -i "$1" "$DIRPATH"/mbapk/mbapk_unpacked/lib/arm64-v8a/libdesignersactivists.so + sed -i "$1" "$DIRPATH"/mbapk/mbapk_unpacked/lib/armeabi-v7a/libdesignersactivists.so + ) && info "[sed_libzdefend] [$target] -> [$replacement]" || warn "[sed_libzdefend] replacing [$target] failed !" +} + +manifest_remove() { + sed -i "/$1/d" "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml && \ + info "[manifest_remove] removing $1" || \ + warn "[manifest_remove] removing $1 failed" +} + +get_mb_ver() { + a="$(grep -m1 'versionName' "$DIRPATH"/mbapk/mbapk_unpacked/apktool.yml)" + a="$(bb_split "$a" ':' '1')" + bb_split "$a" '.' '2' +} + +good() { + echo -e "\033[32m[$(date +"%H:%M:%S:%2N")] [INFO] $1\033[0m" +} + +info() { + echo "[$(date +"%H:%M:%S:%2N")] [INFO] $1" +} + +warn() { + echo -e "\033[33m[$(date +"%H:%M:%S:%2N")] [WARN] $1\033[0m" +} + +err() { + echo -e "\033[31m[$(date +"%H:%M:%S:%2N")] [ERROR] $1\033[0m" +} diff --git a/MBCPApp/legacy_patch.sh b/MBCPApp/legacy_patch.sh index a1865d4..0f2e620 100755 --- a/MBCPApp/legacy_patch.sh +++ b/MBCPApp/legacy_patch.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash echo "Legacy patches list for MBCPApp :" PS3='Select patch options :' @@ -34,8 +34,8 @@ if [ "$opt" == 'Bypass 1200 error [v6.4.45]' ]; then # Checks for MBShield, if exists then exit function if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/assets/mbshield.szip ] then - echo "INFO : MBShield found on unpacked APK ! Bypass signature checks won't be possible if MBShield is present on current unpacked APK !" - echo "INFO : Please use supported version !!!" + info "MBShield found on unpacked APK ! Bypass signature checks won't be possible if MBShield is present on current unpacked APK !" + info "Please use supported version !!!" echo "For React Native : MBBank/MB Lite v1.0 up to v6.3.11" echo "For Flutter : MBBank v6.4.0 up to v6.4.21" echo "Some specific version has no MBShield can also be used :" diff --git a/MBCPApp/mbcpapp.sh b/MBCPApp/mbcpapp.sh index ceaae84..b04d4c4 100755 --- a/MBCPApp/mbcpapp.sh +++ b/MBCPApp/mbcpapp.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # vim: expandtab tabstop=4 shiftwidth=4 FILEPATH=$(readlink -f "$0") @@ -6,6 +6,7 @@ DIRPATH=$(dirname "$FILEPATH") export DIRPATH # Initial startup +cd "$DIRPATH" mkdir -p "$DIRPATH"/mbapk mkdir -p "$DIRPATH"/mbcpapp_apk mkdir -p "$DIRPATH"/tools @@ -13,7 +14,7 @@ clear # Check if user is running on an actual Linux environment if uname -a | grep -i Linux ; then - echo "INFO : You have Linux environment :)" + info "You have Linux environment :)" fi # Check if user is trying to run under WSL (Windows Subsystem for Linux) @@ -26,21 +27,23 @@ fi if command -v figlet ; then FIGLET=figlet else - echo "WARN : figlet not found, ignoring banner !" + warn "figlet not found, ignoring banner !" FIGLET=: fi +. "$DIRPATH/common.sh" + # Check if java exists echo 'Checking if Java exists...' if ! java -version ; then - echo "ERROR : Java not found !!!" - echo "INFO : Please install Java for your Linux distribution ! " + err "Java not found !!!" + info "Please install Java for your Linux distribution ! " exit 127 fi # Check if user runs on macOS environment if [[ $OSTYPE == 'darwin'* ]]; then - echo "INFO : You have macOS environment, which is not supported !" + info "You have macOS environment, which is not supported !" exit fi @@ -60,8 +63,8 @@ download_tools() { apkeditor_link="https://github.com/REAndroid/APKEditor/releases/download/V1.4.4/APKEditor-1.4.4.jar" cd tools && rm -rf ./*.jar - wget -q --show-progress -O apktool.jar "$apktool_link" || echo "ERROR : downloading apktool failed" - wget -q --show-progress -O apkeditor.jar "$apkeditor_link" || echo "ERROR : downloading apkeditor failed" + wget -q --show-progress -O apktool.jar "$apktool_link" || err "downloading apktool failed" + wget -q --show-progress -O apkeditor.jar "$apkeditor_link" || err "downloading apkeditor failed" cd .. } @@ -71,19 +74,19 @@ copy_assets() { is_unpacked() { [ -d "$DIRPATH"/mbapk/mbapk_unpacked ] || { - echo "ERROR : [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/lib ] || { - echo "ERROR : [mbapk_unpacked/lib] folder not found ! Please unpack APK first !" ; return 127 + err "[mbapk_unpacked/lib] folder not found ! Please unpack APK first !" ; return 127 } } apktool_exist() { - [ -f "$DIRPATH"/tools/apktool.jar ] || { echo "ERROR : apktool not found" ; return 127 ; } + [ -f "$DIRPATH"/tools/apktool.jar ] || { err "apktool not found" ; return 127 ; } } apkeditor_exist() { - [ -f "$DIRPATH"/tools/apkeditor.jar ] || { echo "ERROR : 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 || { @@ -96,7 +99,7 @@ unpack_mbcp() { local - ; set -e { apktool_exist && mb_apk_exist ; } || return 1 rm -rf 'mbapk/mbapk_unpacked' - java -jar tools/apktool.jar d mbapk/*.apk -o mbapk/mbapk_unpacked -j"$(nproc)" || { echo "ERROR : Unpacking failed !" ; return 1 ; } + java -jar tools/apktool.jar d mbapk/*.apk -o mbapk/mbapk_unpacked -j"$(nproc)" || { err "Unpacking failed !" ; return 1 ; } echo "Cleaning useless files..." rm -rf 'mbapk/mbapk_unpacked/assets/_4A9w8flncUrhDOG8dyqLi_azBTYT3PlSXz0hiCzRQA_' rm -rf 'mbapk/mbapk_unpacked/assets/0QDl12M5S2hKxoKF4cNI4kEX1qDQRMiOd34TXjSjy4M_' @@ -177,7 +180,7 @@ convert_apks() { } run_patcher() { - is_unpacked_lib && bash ./patch.sh + is_unpacked_lib && bash ./parse.sh && bash ./patch.sh } run_legacy_patcher() { @@ -225,7 +228,7 @@ do then if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/assets/mbshield.szip ] then - echo "INFO : MBShield found ! Continuing !!!" + info "MBShield found ! Continuing !!!" echo 'You MUST grant root access to [com.android.shell] in order to extract assets !' echo 'Trying to extract assets...' adb shell am force-stop com.mbmobile @@ -267,10 +270,10 @@ then adb pull /sdcard/assets mbapk/mbapk_unpacked/ adb shell rm -rf /sdcard/assets else - echo "INFO : MBShield not found ! No need to extract assets !" + info "MBShield not found ! No need to extract assets !" fi else - echo "ERROR : Can't find [mbapk/mbapk_unpacked] folder, cannot continue ! " + err "Can't find [mbapk/mbapk_unpacked] folder, cannot continue ! " echo "Please unpack APK first !" fi @@ -285,7 +288,7 @@ done echo "Clearing [com.mbmobile] data..." adb shell pm clear com.mbmobile adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity - echo "INFO : Current logged in account will remain present, even if app data is cleared !" + info "Current logged in account will remain present, even if app data is cleared !" ;; 'Pull latest commit' ) diff --git a/MBCPApp/parse.sh b/MBCPApp/parse.sh new file mode 100644 index 0000000..9acc9c5 --- /dev/null +++ b/MBCPApp/parse.sh @@ -0,0 +1,84 @@ +#!/usr/bin/env bash +# shellcheck disable=SC2295 +# vim: expandtab tabstop=4 shiftwidth=4 + +[ -n "$DIRPATH" ] || { + echo 'ERROR : $DIRPATH not set, script ran standalone?' + exit 1 +} + +. "$DIRPATH/common.sh" + +echo '#!/usr/bin/env bash + +[ -n "$DIRPATH" ] || { + err "DIRPATH not set, script ran standalone?" + exit 1 +} + +[ -d "$DIRPATH"/mbapk/mbapk_unpacked ] || { + err "[mbapk_unpacked] folder not found, please unpack APK first !" + exit 127 +} + +. "$DIRPATH/common.sh" + +applyPatch() { + good "Applying patch [$opt]" + if bash "$2" ; then + good "Patch [$opt] applied successfully" + echo "Patch applied by MBCPApp Patcher on $(uname -s -r) with commit : $(git rev-parse --short HEAD) at $(date)." > "mbapk/mbapk_unpacked/assets/mbcp_info/$1.inf" + else + err "Patch [$opt] failed" + fi +} + +echo "-------------------------- +Patch list for MBCPApp :" +PS3="Select patch options : "' > patch.sh + +for f in patches/*.sh ; do + # name without suffix and prefix + n="$(rstrip "$f" '.sh')" + n="$(lstrip "$n" 'patches/')" + + # patch infos + pname="$(getvar "2" "# PATCHNAME: " "$f")" + maxver="$(getvar "3" "# MAXVER: " "$f")" + minver="$(getvar "4" "# MINVER: " "$f")" + + pname=${pname//[^a-zA-Z0-9_& ]/} + minver="${minver//[^0-9.]/}" + maxver="${maxver//[^0-9.]/}" + + #echo "$f|$pname|$minver|$maxver" + + [ -n "$pname" ] || { + warn "[parser] $f missing PATCHNAME, not adding" + continue + } + [ -n "$minver" ] && { + [ "$(get_mb_ver)" -gt "$minver" ] || { + info "[parser] skipping [$pname] as current version is lower than patch version clamp" + continue ; } + } || : + [ -n "$maxver" ] && { + [ "$(get_mb_ver)" -lt "$maxver" ] || { + info "[parser] skipping [$pname] as current version is higher than patch version clamp" + continue ; } + } || : + + opts_arr+=" '$pname'" + append+=" '$pname') applyPatch $n $f ;; +" +done + +opts_arr+=" 'Exit'" +#echo "$opts_arr" +echo "select opt in $opts_arr" >> patch.sh +echo 'do + case "$opt" in' >> patch.sh +echo "$append + 'Exit' ) exit ;; + esac +done" >> patch.sh diff --git a/MBCPApp/patch.sh b/MBCPApp/patch.sh deleted file mode 100755 index d19c459..0000000 --- a/MBCPApp/patch.sh +++ /dev/null @@ -1,1015 +0,0 @@ -#!/bin/bash -# vim: expandtab tabstop=4 shiftwidth=4 -# shellcheck disable=SC2016 - -# Check if user is trying to run under WSL (Windows Subsystem for Linux) -# Removing this detection part might cause project development to be STOPPED, You've been warned ! -if [ -f /proc/sys/fs/binfmt_misc/WSLInterop ]; then -echo "Detected WSL (Windows Subsystem for Linux) in current environment !!" -echo "INFO : MBCPApp Patcher must be run on actual or virtualized (non-WSL) Linux environment instead !!!" -echo "INFO : Trying to remove WSL detection code might make the script malfunction !" -exit -fi - -if [[ $OSTYPE == 'darwin'* ]]; then - echo "INFO : You have macOS environment, which is not supported !" - exit -fi - -# imported from https://github.com/dylanaraps/pure-bash-bible -bb_split() { - # Usage: split "string" "delimiter" - IFS=$'\n' read -d "" -ra arr <<< "${1//$2/$'\n'}" - # printf '%s\n' "${arr[@]}" - printf '%s\n' "${arr[$3]}" -} - -sed_libapp() { - target=$(bb_split "$1" '|' '1') - replacement=$(bb_split "$1" '|' '2') - ( - sed -i "$1" "$DIRPATH"/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so - sed -i "$1" "$DIRPATH"/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so - ) && echo "INFO : [$target] -> [$replacement]" || echo "WARN : replacing [$target] failed !" -} - -# libdesignersactivists.so are former known as libZDefend.so -# MB moved it to libdesignersactivists.so since v6.4.48+ -# this currently is placeholder, and will be implemented later -sed_libzdefend() { - target=$(bb_split "$1" '|' '1') - replacement=$(bb_split "$1" '|' '2') - ( - sed -i "$1" "$DIRPATH"/mbapk/mbapk_unpacked/lib/arm64-v8a/libdesignersactivists.so - sed -i "$1" "$DIRPATH"/mbapk/mbapk_unpacked/lib/armeabi-v7a/libdesignersactivists.so - ) && echo "INFO : [$target] -> [$replacement]" || echo "WARN : replacing [$target] failed !" -} - -manifest_remove() { - sed -i "/$1/d" "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml -} - -get_mb_ver() { - a="$(grep -m1 'versionName' "$DIRPATH"/mbapk/mbapk_unpacked/apktool.yml)" - a="$(bb_split "$a" ':' '1')" - bb_split "$a" '.' '2' -} - -patch_finish() { - echo "Patch applied by MBCPApp Patcher on $(uname -s -r) with commit : $(git rev-parse --short HEAD) at $(date)." > "mbapk/mbapk_unpacked/assets/mbcp_info/$1.inf" -} - -echo --------------------------- -echo 'Patch list for MBCPApp :' -PS3='Select patch options : ' -select opt in 'Autopatch strings' 'Change app logo' 'Force portrait screen' 'Remove invoke to mbshield' 'Remove bulit-in fonts' 'Modify app theme' 'Remove garbage permission and activities' 'Remove eMBee' 'Revert old eMBee logo' 'Remove animated QR background' 'Remove banners & MiniApp' 'Remove VPN detection' 'Remove VNPAY VMB20' 'Restore old registration resources' 'Bypass accessibility & malicious apps check' 'Hide VTAP root detection activity & dialog' 'Remove new root detection' 'Bypass new zimperium detection' 'Remove app from launcher' 'Remove protection shield' 'Set targetSdkVersion to 35' 'Add modified resources' 'Add anime resources' 'Exit' -do - if [ "$opt" == 'Autopatch strings' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked/lib ] - then - echo "Applying [Autopatch strings] patch..." - echo "Patching strings in [libapp.so], please wait..." - # App embedded links - # App update button url - sed_libapp 's|market://details?id=com.mbmobile|https://t.me/mbbpatch/2?ref=mbcp|g' - # Facebook button url - sed_libapp 's|https://www.facebook.com/VietnamMBBank?mibextid=LQQJ4d|https://gitlab.com/mbcp/mbbpatch/? |g' - # VNeID download url - sed_libapp 's|https://play.google.com/store/apps/details?id=com.vnid|https://www.apkmirror.com/uploads/?appcategory=vneid??|g' - - # App embedded strings - sed_libapp 's|online OTP|DigitalOTP|g' - sed_libapp 's|Online OTP|DigitalOTP|g' - sed_libapp 's|MB Bank|MBCPApp|g' - sed_libapp 's|The lastest version|TG/GitLab: mbbpatch|g' - sed_libapp 's|User profile|View profile|g' - sed_libapp 's|User ID|Phone |g' - sed_libapp 's|MB Membership Package|MB Membership |g' - sed_libapp 's|email information|Email information|g' - sed_libapp 's|Premium Account Number|Open new lucky account|g' - sed_libapp 's|Cashback 150K| |g' - sed_libapp 's|Request for supplying password|Request for new password |g' - sed_libapp 's|ID card/ID card|Old/New ID card|g' - sed_libapp 's|Number of document|Number of id card |g' - sed_libapp 's|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 tham 5 times. Please try again or use the "Forgot password" feature to reset. |g' - sed_libapp 's|Introduction to receive money|Invite using MB |g' - sed_libapp 's|Shopping- Entertainment- Investment|Flutter embedded MiniApps |g' - sed_libapp 's|Downloaded themes|Your owned themes|g' - sed_libapp 's|Coming soon|Placeholder|g' - sed_libapp 's|Coming Soon|Placeholder|g' - sed_libapp 's|MBBank app|MBCPApp |g' - - # Adapt for v6.4.56+ - sed_libapp 's|MBBank APP|MBCPApp |g' - # Adapt for v6.4.56+ - sed_libapp 's|APP MBBank|MBCPApp |g' - sed_libapp 's|MBBank App|MBCPApp |g' - sed_libapp 's|App MBBank|MBCPApp |g' - sed_libapp 's|get notifications|Get notifications|g' - sed_libapp 's|Read the announcement|Notify with voice |g' - - sed_libapp 's|Viettel post|Viettel Post|g' - sed_libapp 's|This service has been upgraded, please update the app to continue using the service|This app version is expired, please update or repatch with newer version. (GW525) |g' - sed_libapp 's|Welcome to the MBBank APP!|Thanks for login to MBCP~ |g' - sed_libapp 's|There is no device registered for DOTP|No active DigitalOTP device found :> |g' - sed_libapp 's|Transaction authentication code (OTP) has been sent to your phone number|DigitalOTP registration code (OTP) has been sent to your phone number : |g' - sed_libapp 's|You can request a new code later|You can request a new code after|g' - sed_libapp 's|Verification information is invalid, please contact hotline 1900545426 for support|EKYC failed, please go to our Telegram group (@mbbpatch) for details and help !!! |g' - # XPE002/XPE003 dialog contents : - sed_libapp 's|MB has detected that the device is currently not secure for performing transactions|This dialog are showing cuz server-side MB changes for rooted devices are enforced.|g' - sed_libapp 's|Please try closing and reopening the app, or reinstalling the MBCPApp from the app store to continue using the service.|If you are patching via Patcher with v6.4.59+ or newer, please repatch and dont include [Remove new root detection] patch.|g' - - sed_libapp 's|Set up DigitalOTP|Setup DigitalOTP |g' - sed_libapp 's|Set up facial authentication|Setup eKYC for transactions |g' - sed_libapp 's|facial|seKYC |g' - sed_libapp 's|Dentification|Identifier |g' - - sed_libapp 's|The data synchronization process was not successful, please restart the MBCPApp or redownload it on the app market|Unable to connect to MB server or VTAP isnt properly working. Please restart MBCPApp and try to login again. |g' - - sed_libapp 's|Devices registered with DOTP|Active DigitalOTP devices |g' - - sed_libapp 's|Select Digital OTP Setup / Configuration|3 dots / Setup DigitalOTP / Register |g' - sed_libapp 's|Total Balance in VND|Total balance in VND|g' - sed_libapp 's|Simply enter the DigitalOTP PIN, and the system will Autoally activate to process encryption and transaction authentication.|Simply enter the DigitalOTP PIN, and the VTAP system will activate to process encryption and transaction authentication. |g' - - sed_libapp 's|productionrn|mbcpreleases|g' - - sed_libapp 's|Momo|MoMo|g' - sed_libapp 's|Zalo Pay|ZolaPay |g' - sed_libapp 's|MB membership|MB Membership|g' - - sed_libapp 's|Open account ice number|Open new account number|g' - sed_libapp 's|Link Management|Link management|g' - sed_libapp 's|Set as Default Account|Set as default account|g' - sed_libapp 's|Account Balance|Account balance|g' - sed_libapp 's|New release|Features |g' - sed_libapp 's|Challenge to receive gifts|Others |g' - sed_libapp 's|MB will Autoally transfer the entire remaining balance to the account you have selected|MB will transfer the balance from the closed account to the account you have selected. |g' - sed_libapp 's|You have not registered for D-OTP|DigitalOTP is not registered |g' - sed_libapp 's|Please register for D-OTP to use this feature|DigitalOTP is required for this feature. |g' - sed_libapp 's|Register D-OTP|Register now |g' - sed_libapp 's|The login session expired. Please login again|Login session are expired. Please login again|g' - sed_libapp 's|I understand|OKAY |g' - sed_libapp 's|Authentication with DigitalOTP|DigitalOTP authentication |g' - sed_libapp 's|DigitalOTP information|DigitalOTP Information|g' - sed_libapp 's|Do you want to exit the app?|Back button pressed. Exit ? |g' - sed_libapp 's|Exit application|Exit MBCPApp |g' - sed_libapp 's|To use this feature, please install|To use this feature, please setup |g' - sed_libapp 's|Setup D-OTP|Digital OTP|g' - sed_libapp 's|Your login session expired|Login session will end :< |g' - # Placeholder toolbox - sed_libapp 's|Shopping, entertainment|MBCPApp Toolbox |g' - - - - patch_finish "autopatch_strings" - echo "Applied [Autopatch strings] patch !!!" - - else - echo "ERROR : [mbapk_unpacked] folder not found, please unpack APK first !" - echo "ERROR : Auto patch strings requires [mbapk_unpacked] in order to continue !" - fi - - elif [ "$opt" == 'Force portrait screen' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ] - then - echo "Applying patch [Force portrait screen]..." - echo "Patching [AndroidManifest.xml]..." - sed -i 's|fullSensor|portrait|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml - patch_finish "force_portrait_screen" - echo "Applied [Force portrait screen] patch !!!" - else - echo "ERROR : [mbapk_unpacked] folder not found, please unpack APK first !" - fi - - elif [ "$opt" == 'Remove protection shield' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ] - then - echo "Apply patch [Remove protection shield]..." - sed_libapp 's|get-protective-cyber-risk|get_protective_cyber_none|g' - sed_libapp 's|Activate for Protection|Protection are disabled|g' - echo "Removing resources..." - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_img_pending.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_img_actived.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_img_empty.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_illus_pending.webp' - - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_hoadon.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_muasam.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_offline.webp' - - # Private exclusive - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_hoadon.private.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_muasam.private.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_offline.private.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_illus_pending.private.webp' - - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_img_pending.private.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_img_actived.private.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_img_empty.private.webp' - - - # Priority exclusive - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/shield_img_pending.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/shield_img_empty.webp' - - echo "NOTE : This doesn't remove the app protection shield, it just disable and remove the MB Protection Shield, which literally is the MIC Shield !" - echo "Applied [Remove protection shield] patch !" - else - echo "ERROR : [mbapk_unpacked] folder not found, please unpack APK first !" - fi - - - elif [ "$opt" == 'Remove app from launcher' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ] - then - echo "Applying patch [Remove app from launcher]..." - echo "Patching [AndroidManifest.xml]..." - sed -i 's|||g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml - else - echo "ERROR : [mbapk_unpacked] folder not found, please unpack APK first !" - fi - - elif [ "$opt" == 'Bypass accessibility & malicious apps check' ]; then - if [ -d "$DIRPATH"/patches/bypass_accessibility_applist ] - then - if [ "$(get_mb_ver)" -lt 55 ] ; then - echo "Applying patch [Bypass accessibility & malicious apps check]..." - echo 'Copying patched code [MbbankUtilitiesPlugin]...' - cp -r -f 'patches/bypass_accessibility_applist/com' 'mbapk/mbapk_unpacked/smali_classes3' - echo 'Patching [AndroidManifest.xml]...' - sed -i 's|| |g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml - echo 'Patching [libapp.so]...' - sed_libapp 's|PackageName|packageMBBB|g' - sed_libapp 's|packageName|packageMBBa|g' - patch_finish "bypass_accessibility_malicious_app_check" - echo "Applied [Bypass accessibility & malicious apps check] patch !!!" - else - echo "WARN : This patch is only applicable for v6.4.54 and lower" - fi - else - echo "Patch not found ! Aborting :)" - fi - - elif [ "$opt" == 'Remove garbage permission and activities' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ] - then - echo "Applying patch [Remove garbage permission and activities]..." - echo "Patching [AndroidManifest.xml]..." - sed -i 's|android:protectionLevel="signature"|android:protectionLevel="normal"|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml - manifest_remove 'android:name="com.android.vending.CHECK_LICENSE"' - manifest_remove 'android:name="com.google.android.gms.permission.AD_ID"' - manifest_remove "com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY" - manifest_remove "com.vtap.MaintenanceActivity" - manifest_remove "com.mbmobile.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" - manifest_remove "com.vkey.android.vguard.VGDialogActivity" - patch_finish "remove_garbage_permission_and_activities" - echo "Applied [Remove garbage permission and activities] patch !!!" - - else - echo "[mbapk_unpacked] not found ! Please unpack APK !" - fi - - elif [ "$opt" == 'Remove eMBee' ]; then - echo "WARNING : Remove eMBee also remove customer support and any other options on eMBee Helper !" - echo "Removing eMBee Customer support function..." - sed_libapp 's|group_button_support|itsnotworthittouseem|g' - sed_libapp 's|Customer support| |g' - echo "Removing eMBee..." - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_page.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_header.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_login.webp' - # Priority support - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_page.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_header.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_login.webp' - # Private support - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_page.private.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_login.private.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_header.private.webp' - - - # Adapt for v6.4.53+ - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_headerNew.private.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_headerNew.webp' - # Private support - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_loginSupport.private.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_loginSupport.webp' - # Priority support - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_headerNew.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_loginSupport.webp' - - patch_finish "remove_embee" - - echo "Applied [Remove eMBee] patch !!!" - - elif [ "$opt" == 'Remove VNPAY VMB20' ]; then - if [ "$(get_mb_ver)" -gt 56 ] ; then - echo "Applying patch..." - rm -rf 'mbapk/mbapk_unpacked/smali_classes4/com/vnpay' - rm -rf 'mbapk/mbapk_unpacked/smali_classes4/com/d5' - rm -rf 'mbapk/mbapk_unpacked/smali_classes5/com/u4' - rm -rf 'mbapk/mbapk_unpacked/smali_classes5/com/v4' - rm -rf 'mbapk/mbapk_unpacked/smali_classes5/com/x2' - rm -rf 'mbapk/mbapk_unpacked/smali_classes5/com/y4' - rm -rf 'mbapk/mbapk_unpacked/smali_classes5/com/z4' - rm -rf 'mbapk/mbapk_unpacked/smali/com/a5' - rm -rf 'mbapk/mbapk_unpacked/smali/com/ay4' - rm -rf 'mbapk/mbapk_unpacked/smali/com/az4' - rm -rf 'mbapk/mbapk_unpacked/smali/com/c5' - rm -rf 'mbapk/mbapk_unpacked/smali/com/d5' - for i in {9..82}; do - # skip 77, 78, 79 - case $i in - 77 | 78 | 79 | 81 ) :; ;; - *) rm -f "mbapk/mbapk_unpacked/smali_classes5/mbshield/EP$i.smali" ;; - esac - done - rm -f 'mbapk/mnapk_unpacked/res/drawable-xhdpi/ic_home_vna.png' - rm -f 'mbapk/mnapk_unpacked/res/drawable-xhdpi/logo_vnairline.png' - rm -f 'mbapk/mnapk_unpacked/res/drawable-xxhdpi/ic_home_vna.png' - rm -f 'mbapk/mnapk_unpacked/res/drawable-xxhdpi/logo_vnairline.png' - echo "Removing resources..." - - cd "$DIRPATH" || exit 127 - - # Remove activity - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20BlankActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.FlightTracking.SearchingResultActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.FlightTracking.FlightSearchingActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.FlightTracking.FollowingFlightActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.FlightTracking.FlightDetailActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20TimChuyenBayActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20ThoiGianActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20DiaDiemActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20HangHangKhongActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20LoadingActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.confirm.VMBConfirmBookActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20BookFlightSuccessActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20BookHistoryActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20TicketDetailsActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20TermActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20InfoServiceActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20ActivityThoiGianNew"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20BookFlightSuccessActivity2"' - manifest_remove 'android:name="com.vnpay.ticketlib.checkin.CheckinActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.checkin.PnrInfoActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.checkin.InitChooseSeatActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.checkin.UpdateInfoActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.checkin.UpdatePassportInfoActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.checkin.ReCheckinActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.checkin.TicketPreviewActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.checkin.CheckinConditionAcitvity"' - manifest_remove 'android:name="com.vnpay.ticketlib.checkin.SendMailActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.checkin.TermConditionActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.FlightTracking.FlightTrackingMapActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VJInfoFlightActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.rename.VMBChangeNameActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.rename.VJDetailFeeActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.changeFlight.VJChangeFlightActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VJListFlightActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VJHistoryActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.history.VJInfoTicketActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VJTermActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.history.VJDetailTicketActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.ancillary.VJAddOnMealActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20PaylaterActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.ebill.VMB20EBillActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.ebill.VMB20ConfirmExportBillActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VJConfirmActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20FlightActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20AirportActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20IFlightActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20NewSortActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20DetailFlightActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VMBManagerBookingActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VMBDetailFeeActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VMBInfoFlightActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VMBSeatMapActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.seats.VMBInfoSeatActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.ancillary.VNBL.VMBVNBLActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Voucher.VMBListVoucherActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Voucher.VMBDetailVoucherActivity"' - manifest_remove 'android:name="com.vnpay.tracking.ExitService"' - manifest_remove 'android:name="com.vnpay.tracking.TrackingReceiver"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.contact.VMBAddInfoActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.contact.VMBPassengerContactActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.infobook.VMBNewInfoBookActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.search.VMBNewSearchActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.search.VMBSortINTFlightActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.iflight.VMBNewIFlightsActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.iflight.VMBQuotePriceIFlightActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.checkin.PnrReviewActivity"' - manifest_remove 'android:name="com.vnpay.ticketlib.Activity.contact.VMBAddInfoActivity"' - - # stub - sed -i 's|||g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml - manifest_remove 'android:name="_vemaybay_payment"' - manifest_remove 'android:name="_vemaybay_payment_without_paymentcode"' - manifest_remove 'android:name="_vemaybay_payment_paylater"' - - cp -f 'patches/remove_vmb20/GeneratedPluginRegistrant.smali' 'mbapk/mbapk_unpacked/smali_classes4/io/flutter/plugins' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/base/partner/img_vnpay.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/base/partner/img_vna.webp' - sed -i 's|vna_flight_landing|broken_vna_ehh_idk|g' "$DIRPATH"/mbapk/mbapk_unpacked/lib/arm64-v8a/libapp.so - sed -i 's|vna_flight_landing|broken_vna_ehh_idk|g' "$DIRPATH"/mbapk/mbapk_unpacked/lib/armeabi-v7a/libapp.so - - - echo "Applied patch [Remove VNPAY VMB20] !!" - patch_finish "remove_vnpay_vmb20" - else - echo "WARN : This patch is only applicable for v6.4.56+" - fi - - elif [ "$opt" == 'Revert old eMBee logo' ]; then - if [ -d "$DIRPATH"/patches/revert_old_eMBee ] - then - echo "Removing new eMBee logo..." - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/customerService_img_avatarChat.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/customerService_img_avatarChat01.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/customerService_img_avatarChat02.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/customerService_img_avatarChat03.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/customerService_img_avatarChat04.webp' - echo "Copying old eMBee logo..." - cp -f 'patches/revert_old_eMBee/customerService_img_avatarChat.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/revert_old_eMBee/customerService_img_avatarChat01.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/revert_old_eMBee/customerService_img_avatarChat02.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/revert_old_eMBee/customerService_img_avatarChat03.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/revert_old_eMBee/customerService_img_avatarChat04.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/revert_old_eMBee/eMBee_img_headerNew.private.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/revert_old_eMBee/eMBee_img_headerNew.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/revert_old_eMBee/eMBee_img_loginSupport.private.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/revert_old_eMBee/eMBee_img_loginSupport.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - - # Priority exclusive - cp -f 'patches/revert_old_eMBee/eMBee_img_headerNew.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority' - cp -f 'patches/revert_old_eMBee/eMBee_img_loginSupport.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority' - - # Restore old eMBee account profile picture (present before on MB React Native) - cp -f 'patches/revert_old_eMBee/homeLanding_img_avatarDefault.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/revert_old_eMBee/homeLanding_img_avatarDefault.private.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/revert_old_eMBee/homeLanding_img_avatarDefault.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority' - - - patch_finish "revert_old_embee" - echo "Applied [Revert old eMBee logo] patch !!!" - - else - echo "[revert_old_eMBee] patch not found !" - fi - - elif [ "$opt" == 'Remove invoke to mbshield' ]; then - if [ -d "$DIRPATH"/patches/noinvoke ] - then - echo "Currently only support remove invoke mbshield to [io.flutter.plugins.MainActivity] and [MBBHomeWidgetQR] !!!" - echo "Copying..." - rm -f 'mbapk/mbapk_unpacked/smali_classes4/io/flutter/plugins/MainAcitivity.smali' - rm -f 'mbapk/mbapk_unpacked/smali_classes4/io/flutter/plugins/MBBHomeWidgetQR.smali' - cp -f 'patches/noinvoke/MainActivity.smali' 'mbapk/mbapk_unpacked/smali_classes4/io/flutter/plugins' - cp -f 'patches/noinvoke/MBBHomeWidgetQR.smali' 'mbapk/mbapk_unpacked/smali_classes4/io/flutter/plugins' - echo "Removing left over files..." - for i in {0..83}; do - case $i in - *) rm -f "mbapk/mbapk_unpacked/smali_classes5/mbshield/EP$i.smali" ;; - esac - done - - patch_finish "remove_invoke_to_mbshield" - echo "Applied [Remove invoke to mbshield] patch !!!" - else - echo "noinvoke patch not found!" - fi - - elif [ "$opt" == 'Restore old registration resources' ]; then - if [ -d "$DIRPATH"/patches/restore_oldreg ] -then - echo "Applying patch..." - cp -f 'patches/restore_oldreg/onboarding_illus_featureAccount.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/onboarding' - cp -f 'patches/restore_oldreg/onboarding_illus_featureFreeService.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/onboarding' - cp -f 'patches/restore_oldreg/onboarding_illus_featureMBS.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/onboarding' - cp -f 'patches/restore_oldreg/onboarding_illus_featureShield.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/onboarding' - cp -f 'patches/restore_oldreg/onboarding_img_referLinkNoneCoin.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/onboarding' - cp -f 'patches/restore_oldreg/onboarding_img_referLinkPersonalCoin.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/onboarding' - patch_finish "restore_old_registration_resources" - echo "Applied [Restore old registration resources] patch !!!" -else - echo "[restore_oldreg] not found !" -fi - - elif [ "$opt" == 'Bypass new zimperium detection' ]; then - if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali ] - then - echo "Applying patch..." - echo 'Removing [libvvb2060.so]...' - rm -f 'mbapk/mbapk_unpacked/lib/arm64-v8a/libvvb2060.so' - rm -f 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libvvb2060.so' - echo 'Removing [libtoolChecker.so]...' - rm -f 'mbapk/mbapk_unpacked/lib/arm64-v8a/libtoolChecker.so' - rm -f 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libtoolChecker.so' - echo "Removing checksum from provider..." - sed -i 's|e1a14adc915d7ad159edf2668b0dfcb359cf86538642de0e425d027f66eb07b2||g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali - sed -i 's|ca168a2ad00a92b8010d6801c3ca43e6df9f3701f084f6864399eaa4bbfaf56d||g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali - sed -i 's|5c9a139e42e6e6032ddbc1092af9831b8142e4e5ae89700fc7828f5bd62e1671||g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali - sed -i 's|c0a161a71738083df4298a0f03b0c54abf5bfda97c7d230875d97593733226ec||g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali - echo "Patching [libdesignersactivists.so]..." - sed_libzdefend 's|zimperium.c|zimperium.x|g' - sed_libzdefend 's|com.zimperium.threat.new|app.zimperiam.nonpop.all|g' - sed_libzdefend 's|com.zimperium.command|app.zimperiam.commall|g' - sed_libzdefend 's|com.zimperium.threat.get|app.zimperiam.nonpop.all|g' - sed_libzdefend 's|detection|freedom..|g' - echo "Patching [AndroidManifest.xml]..." - manifest_remove 'android:name="android.permission.QUERY_ALL_PACKAGES"' - echo "App data clear are mandatory in order to make app to not trigger root detect screen" - patch_finish "bypass_new_zimperium_detection" - echo "Applied [Bypass new zimperium detection] patch !!!" -else - echo "[UnderlyingVcl.smali] not found! Please clear patched app then unpack again!" -fi - - # Test remove VPN detection function from bundle, that showing notice warn users to turn off VPN. - elif [ "$opt" == 'Remove VPN detection' ]; then - echo "Applying patch..." - sed_libapp 's|vpn|app|g' - patch_finish "remove_vpn_detection" - echo "Applied [Remove VPN detection patch] !!!" - - elif [ "$opt" == 'Add anime resources' ]; then - if [ -d "$DIRPATH"/patches/anime_resources ] - then - echo "Applying patch..." - cp -f 'patches/anime_resources/rating_illus_fiveStar.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/' - cp -f 'patches/anime_resources/rating_illus_fourStar.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/' - cp -f 'patches/anime_resources/rating_illus_threeStar.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/' - cp -f 'patches/anime_resources/rating_illus_twoStar.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/' - cp -f 'patches/anime_resources/rating_illus_oneStar.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/' - patch_finish "add_anime_resources" - echo "Applied [Add anime resources] patch !" - else - echo "[anime_resources] not found !" - fi - - elif [ "$opt" == 'Set targetSdkVersion to 35' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ] - then - echo "Applying patch..." - sed -i 's|targetSdkVersion: 34|targetSdkVersion: 35|g' "$DIRPATH"/mbapk/mbapk_unpacked/apktool.yml - else - echo "ERROR : [mbapk_unpacked] folder not found, please unpack APK first !" - fi - - elif [ "$opt" == 'Remove animated QR background' ]; then - if [ -d "$DIRPATH"/patches/qr_white ] -then - echo "This will remove animated QR on bottom navigation bar and replace with white background !" - echo "Removing animated QR..." - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/homeLanding_bg_qrCode.gif' - echo "Copying new static white background..." - mv 'patches/qr_white/150.png' 'patches/qr_white/homeLanding_bg_qrCode.gif' > /dev/null 2>&1 - cp -f 'patches/qr_white/homeLanding_bg_qrCode.gif' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static' - patch_finish "remove_animated_qr_background" - echo "Applied [Remove animated QR background] patch !!!" -else - echo "[qr_white] not found !" -fi - - elif [ "$opt" == 'Remove banners & MiniApp' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ] - then - echo "Applying patch [Remove banners & MiniApp]..." - echo 'Removing banner links from [libapp.so]...' - sed_libapp 's|banner|remove|g' - sed_libapp 's|marketplacehome|removemarketapp|g' - - echo 'Removing related resources...' - rm -rf 'mbapk/mbapk_unpacked/assets/flutter_assets/packages' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/billing_img_defaultBanner.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/billing_img_defaultBanner.private.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/explore_img_defaultBanner.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/coreBanking_img_successBanner.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/homeLanding_img_defaultBanner.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/homeLanding_img_defaultBanner.private.webp' - # Priority exclusive - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/explore_img_defaultBanner.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/coreBanking_img_successBanner.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/homeLanding_img_defaultBanner.webp' - - # Shield related resources - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_hoadon.private.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_muasam.private.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_offline.private.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_hoadon.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_muasam.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_offline.webp' - - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/khien_img_hoadon.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/khien_img_muasam.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/khien_img_offline.webp' - - - - # - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/banner_transfer_mass.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/banner_transfer_private.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/recap_banner.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/poster_cyberrisk_noti.webp' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/onboarding/ads_banner_borigin.webp' - - patch_finish "remove_banner_miniapp" - - echo "Applied [Remove banners & MiniApp] patch !!!" - - else - echo "[mbapk_unpacked] folder not found ! Please unpack APK first !" - fi - - elif [ "$opt" == 'Remove new root detection' ]; then - if [ "$(get_mb_ver)" -lt 59 ] ; then - echo "Applying [Remove new root detection] patch..." - echo 'Removing [libZDefend.so]...' - rm -f 'mbapk/mbapk_unpacked/lib/arm64-v8a/libZDefend.so' - rm -f 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libZDefend.so' - echo 'Removing [libvvb2060.so]...' - rm -f 'mbapk/mbapk_unpacked/lib/arm64-v8a/libvvb2060.so' - rm -f 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libvvb2060.so' - echo 'Removing [libtoolChecker.so]...' - rm -f 'mbapk/mbapk_unpacked/lib/arm64-v8a/libtoolChecker.so' - rm -f 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libtoolChecker.so' - echo 'Removing [libdesignersactivists.so]...' - rm -f 'mbapk/mbapk_unpacked/lib/arm64-v8a/libdesignersactivists.so' - rm -f 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libdesignersactivists.so' - echo 'Removing related files...' - sleep 3 - rm -rf 'mbapk/mbapk_unpacked/assets/zfiles' - rm -f 'mbapk/mbapk_unpacked/assets/dlangV5.dat' - rm -f 'mbapk/mbapk_unpacked/assets/dlangV5.en.dat' - rm -f 'mbapk/mbapk_unpacked/assets/policy0' - rm -f 'mbapk/mbapk_unpacked/assets/policy1' - rm -f 'mbapk/mbapk_unpacked/assets/policy2' - rm -f 'mbapk/mbapk_unpacked/assets/policy3' - rm -f 'mbapk/mbapk_unpacked/assets/policy4' - rm -f 'mbapk/mbapk_unpacked/assets/policy5' - rm -f 'mbapk/mbapk_unpacked/assets/policy6' - rm -f 'mbapk/mbapk_unpacked/assets/policy8' - rm -f 'mbapk/mbapk_unpacked/assets/policy9' - rm -f 'mbapk/mbapk_unpacked/assets/policym' - rm -f 'mbapk/mbapk_unpacked/assets/rulesV5.dat' - rm -rf 'mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl' - rm -f 'mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali' - echo "Patching [AndroidManifest.xml]" - manifest_remove 'android:authorities="com.mbmobile.honor.essence.enter' - manifest_remove 'android:authorities="com.mbmobile.inserted.thumbzilla.ireland' - patch_finish "remove_new_root_detection" - echo "Applied [Remove new root detection] patch !!!" - else - echo "WARN : This patch is only applicable for v6.4.58 and lower" - fi - - elif [ "$opt" == 'Add modified resources' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ] - then - echo "Applying patch [Add modified resources]..." - echo "Copying modified resources..." - cp -r -f 'patches/resources/raw' 'mbapk/mbapk_unpacked/res/' - cp -f 'patches/resources/strings-vi/strings.xml' 'mbapk/mbapk_unpacked/res/values-vi/' - patch_finish "add_modified_resources" - echo "Applied [Add modified resources] patch !!!" - else - echo "[mbapk_unpacked] not found ! Please unpack APK first !" - fi - -elif [ "$opt" == 'Remove bulit-in fonts' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ] - then - echo "Applying patch [Remove bulit-in fonts]..." - echo "Removing..." - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Black.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-BlackItalic.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Bold.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-BoldItalic.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Extrabold.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-ExtraboldItalic.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCy-Extrathin.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCy-ExtrathinItalic.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Light.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-LightItalic.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Regular.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-RegularItalic.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Semibold.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-SemiboldItalic.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Thin.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-ThinItalic.otf' - rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/SF-Pro-Display-Medium.ttf' - rm -f 'mbapk/mbapk_unpacked/res/font/avenir_next_bold.ttf' - rm -f 'mbapk/mbapk_unpacked/res/font/bold.ttf' - rm -f 'mbapk/mbapk_unpacked/res/font/medium.ttf' - rm -f 'mbapk/mbapk_unpacked/res/font/regular.ttf' - rm -f 'mbapk/mbapk_unpacked/assets/insider.ttf' - # Placeholder font to fix display issues when open details balance notifications - echo "Creating placeholder font..." - touch 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Regular.otf' - # Placeholder to prevent compiling resource fail - touch 'mbapk/mbapk_unpacked/res/font/avenir_next_bold.ttf' - echo 'Copying fix fonts...' - # NFC scanning phase requires actual font in order to not throw exception - cp -f 'patches/resources/font/bold.ttf' 'mbapk/mbapk_unpacked/res/font/' - cp -f 'patches/resources/font/medium.ttf' 'mbapk/mbapk_unpacked/res/font/' - cp -f 'patches/resources/font/regular.ttf' 'mbapk/mbapk_unpacked/res/font/' - patch_finish "remove_bulitin_fonts" - echo "Applied [Remove bulit-in fonts] patch !!!" - else - echo "[mbapk_unpacked] not found ! Please unpack APK first !" - fi - - -elif [ "$opt" == 'Modify app theme' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ] - then - echo In order to modify app theme, you must extract assets first if current unpacked APK has MBShield! - PS3='Select themes : ' -select opt in 'MBCP SemiPriority' 'MBCP MBClassic' 'Noel 2024' 'Exit' -do - if [ "$opt" == 'MBCP SemiPriority' ]; then - echo 'Moving [priority] folder...' - mv 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority' 'patches/semipriority/' - echo 'Modifying QR background...' - rm -f 'patches/semipriority/priority/qr_img_ThemeDefalut.webp' - mv 'patches/semipriority/priority/a_background_image.webp' 'patches/semipriority/priority/qr_img_ThemeDefalut.webp' - echo 'Renaming to [base]...' - mv 'patches/semipriority/priority' 'patches/semipriority/base' - echo 'Copying to [flutter_assets/assets/images/dynamic/base]' - cp -r -f 'patches/semipriority/base' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic' - echo 'Renaming back to [priority]' - mv 'patches/semipriority/base' 'patches/semipriority/priority' - echo 'Copying back to [flutter_assets]...' - cp -r -f 'patches/semipriority/priority' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic' - echo 'Copying [ic_logo_mb_text.svg]...' - cp -f 'patches/semipriority/ic_logo_mb_text.svg' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/svgs/' - echo 'Copying [welcom_img_eMbee.webp]...' - cp -f 'patches/semipriority/welcom_img_eMbee.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - echo 'Cleaning...' - rm -rf 'patches/semipriority/priority' - patch_finish "semipriority_theme" - echo "Applied [MBCP SemiPriority] theme." - - - - elif [ "$opt" == 'MBCP MBClassic' ]; then - echo "Ensure that you did NOT applied SemiPriority theme before apply this theme !" - echo "Otherwise it will conflicts like mixed SemiPriority and MB Classic theme, You've warned !!! " - cp -f 'patches/mbclassic/a_background_image.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/mbclassic/general_bg_screenshot.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/mbclassic/homeLanding_bg_main.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/mbclassic/loading_bg_main.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/mbclassic/login_bg_main.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/mbclassic/qr_img_ThemeDefalut.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - echo "Patching [libapp.so]..." - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenLoginClassic.png|https://gitlab.com/-/project/56341767/uploads/f585b28f88876db211f116d1d622031d/mbcp_login.png?git1|g' - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenLoginClassic.png|https://gitlab.com/-/project/56341767/uploads/f585b28f88876db211f116d1d622031d/mbcp_login.png?git1|g' - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_thumbnailClassic.png|https://gitlab.com/-/project/56341767/uploads/ba4f0923a4956ba379868e01c55e9cfb/thumb.png?aaaaaaa|g' - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_thumbnailClassic.png|https://gitlab.com/-/project/56341767/uploads/ba4f0923a4956ba379868e01c55e9cfb/thumb.png?aaaaaaa|g' - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenHomeClassic.png|https://gitlab.com/-/project/56341767/uploads/1d7fcf300167e87440220a6f0d28b8c1/mbcp_lobby.png?aaa|g' - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenHomeClassic.png|https://gitlab.com/-/project/56341767/uploads/1d7fcf300167e87440220a6f0d28b8c1/mbcp_lobby.png?aaa|g' - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenSuccessClassic.png|https://gitlab.com/-/project/56341767/uploads/d94e257eb6cf59865016a939541c32fc/mbcp_transfer.png?aaa|g' - sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenSuccessClassic.png|https://gitlab.com/-/project/56341767/uploads/d94e257eb6cf59865016a939541c32fc/mbcp_transfer.png?aaa|g' - patch_finish "mbclassic_theme" - echo 'Applied [MBCP MBClassic] theme.' - - elif [ "$opt" == 'Noel 2024' ]; then - echo "Ensure that you did NOT applied SemiPriority theme before apply this theme !" - echo "Otherwise it will conflicts like mixed SemiPriority and Noel 2024 theme, You've warned !!! " - cp -f 'patches/noel/a_background_image.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/bill_background_gold.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/coreBanking_img_successBackground.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/general_bg_screenshot.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/general_bg_success.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/homeLanding_bg_main.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/loading_bg_main.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/login_bg_main.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/qr_img_ThemeDefalut.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - ############## - cp -f 'patches/noel/a_background_image.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/bill_background_gold.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/coreBanking_img_successBackground.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/general_bg_screenshot.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/general_bg_success.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/homeLanding_bg_main.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/loading_bg_main.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/login_bg_main.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/qr_img_ThemeDefalut.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - # Change theme preview - cp -f 'patches/noel/customUI_img_classicMode.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - cp -f 'patches/noel/customUI_img_classicMode.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' - # Lockdown ability to change other theme, also force Noel 2024 theme - echo "Patching [libapp.so]..." - sed_libapp 's|theme|Noel |g' - sed_libapp 's|theme|Noel |g' - # Settings - sed_libapp 's|Change Noel |Noel 2024 |g' - sed_libapp 's|Change Noel |Noel 2024 |g' - - patch_finish "noel2024_theme" - echo "INFO : You WON'T be able to use other theme than Noel 2024 on app !" - - echo "Applied [Noel 2024] theme." - elif [ "$opt" == 'Exit' ]; then - bash patch.sh - break - fi -done - - - else - echo "[mbapk_unpacked] folder not found, can't continue !" - fi - - -elif [ "$opt" == 'Change app logo' ]; then - echo ------------------------------------------- - echo ------------------------------------------- - PS3='Select app icon variant to continue, or [7] to quit : ' - select opt in 'MB Classic' 'Tet' 'Valentine 2025' '30/4-1/5' 'Summer 2025' 'Noel' 'Exit' -do - if [ "$opt" == '30/4-1/5' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked/ ] -then - echo 'Removing old logos...' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-hdpi - echo 'INFO : tries removed [mipmap-hdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-mdpi - echo 'INFO : tries removed [mipmap-mdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xhdpi - echo 'INFO : tries removed [mipmap-xhdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xxhdpi - echo 'INFO : tries removed [mipmap-xxhdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xxxhdpi - echo 'INFO : tries removed [mipmap-xxxhdpi] on [mbapk_unpacked/res] !' - echo 'Copying new logos to [mbapk_unpacked/res] !!!' - cp -r -f "$DIRPATH"/mbcpicons/thongnhatVN/mipmap-hdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/thongnhatVN/mipmap-mdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/thongnhatVN/mipmap-xhdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/thongnhatVN/mipmap-xxhdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/thongnhatVN/mipmap-xxxhdpi mbapk/mbapk_unpacked/res - patch_finish "change_app_logo" - echo 'Applied selected logo !' - else - echo "[mbapk_unpacked] not found ! Please unpack APK first !" - fi - - elif [ "$opt" == 'MB Classic' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked/ ] -then - echo 'Removing old logos...' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-hdpi - echo 'INFO : tries removed [mipmap-hdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-mdpi - echo 'INFO : tries removed [mipmap-mdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xhdpi - echo 'INFO : tries removed [mipmap-xhdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xxhdpi - echo 'INFO : tries removed [mipmap-xxhdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xxxhdpi - echo 'INFO : tries removed [mipmap-xxxhdpi] on [mbapk_unpacked/res] !' - echo 'Copying new logos to [mbapk_unpacked/res] !!!' - cp -r -f "$DIRPATH"/mbcpicons/normal/mipmap-hdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/normal/mipmap-mdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/normal/mipmap-xhdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/normal/mipmap-xxhdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/normal/mipmap-xxxhdpi mbapk/mbapk_unpacked/res - patch_finish "change_app_logo" - echo 'Applied selected logo !' - else - echo "[mbapk_unpacked] not found ! Please unpack APK first !" - fi - - elif [ "$opt" == 'Tet' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked/ ] -then - echo 'Removing old logos...' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-hdpi - echo 'INFO : tries removed [mipmap-hdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-mdpi - echo 'INFO : tries removed [mipmap-mdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xhdpi - echo 'INFO : tries removed [mipmap-xhdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xxhdpi - echo 'INFO : tries removed [mipmap-xxhdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xxxhdpi - echo 'INFO : tries removed [mipmap-xxxhdpi] on [mbapk_unpacked/res] !' - echo 'Copying new logos to [mbapk_unpacked/res] !!!' - cp -r -f "$DIRPATH"/mbcpicons/tet/mipmap-hdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/tet/mipmap-mdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/tet/mipmap-xhdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/tet/mipmap-xxhdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/tet/mipmap-xxxhdpi mbapk/mbapk_unpacked/res - patch_finish "change_app_logo" - echo 'Applied selected logo !' - else - echo "[mbapk_unpacked] not found ! Please unpack APK first !" - fi - - elif [ "$opt" == 'Valentine 2025' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ] - then - echo "Removing old logos..." - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-hdpi - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-mdpi - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xhdpi - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xxhdpi - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xxxhdpi - echo "Copying new logos to [mbapk_unpakced/res] !!!" - cp -r -f "$DIRPATH"/mbcpicons/valentine/mipmap-hdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/valentine/mipmap-mdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/valentine/mipmap-xhdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/valentine/mipmap-xxhdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/valentine/mipmap-xxxhdpi mbapk/mbapk_unpacked/res - patch_finish "change_app_logo" - echo "Applied selected logo !" - else - ehco "[mbapk_unpacked] not found ! Please unpack APK first !" - fi - - elif [ "$opt" == 'Summer 2025' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ] - then - echo "Removing old logos..." - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-hdpi - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-mdpi - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xhdpi - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xxhdpi - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xxxhdpi - echo "Copying new logos to [mbapk_unpakced/res] !!!" - cp -r -f "$DIRPATH"/mbcpicons/summer2025/mipmap-hdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/summer2025/mipmap-mdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/summer2025/mipmap-xhdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/summer2025/mipmap-xxhdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/summer2025/mipmap-xxxhdpi mbapk/mbapk_unpacked/res - patch_finish "change_app_logo" - echo "Applied selected logo !" - else - ehco "[mbapk_unpacked] not found ! Please unpack APK first !" - fi - - - elif [ "$opt" == 'Noel' ]; then - if [ -d "$DIRPATH"/mbapk/mbapk_unpacked/ ] -then - echo 'Removing old logos...' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-hdpi - echo 'INFO : tries removed [mipmap-hdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-mdpi - echo 'INFO : tries removed [mipmap-mdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xhdpi - echo 'INFO : tries removed [mipmap-xhdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xxhdpi - echo 'INFO : tries removed [mipmap-xxhdpi] on [mbapk_unpacked/res] !' - rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xxxhdpi - echo 'INFO : tries removed [mipmap-xxxhdpi] on [mbapk_unpacked/res] !' - echo 'Copying new logos to [mbapk_unpacked/res] !!!' - cp -r -f "$DIRPATH"/mbcpicons/noel/mipmap-hdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/noel/mipmap-mdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/noel/mipmap-xhdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/noel/mipmap-xxhdpi mbapk/mbapk_unpacked/res - cp -r -f "$DIRPATH"/mbcpicons/noel/mipmap-xxxhdpi mbapk/mbapk_unpacked/res - patch_finish "change_app_logo" - echo 'Applied selected logo !' - else - echo "[mbapk_unpacked] not found ! Please unpack APK first !" - fi - - - elif [ "$opt" == 'Exit' ]; then - bash patch.sh - - break - fi -done - - elif [ "$opt" == 'Hide VTAP root detection activity & dialog' ]; then - if [ -d "$DIRPATH"/patches/skip_maintainscreen ] - then - echo "Applying [Hide VTAP root detection activity & dialog]..." - # 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 > /dev/null 2>&1 - - sed -i 's|Lcom/vtap/MaintenanceActivity;|Lio/flutter/plugins/MainActivity;|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali_classes4/com/vtap/VTapSetupPlugin.smali > /dev/null 2>&1 - 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 'patches/bypass_rootold/BasicThreatInfo.smali' 'mbapk/mbapk_unpacked/smali_classes4/com/vkey/android/internal/vguard/engine/' - cp -f 'patches/bypass_rootold/VGThreatAppInfo.smali' 'mbapk/mbapk_unpacked/smali_classes4/com/vkey/android/vguard/model/' - cp -f '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' - patch_finish "hide_vtap_root_detection_activity" - echo "Applied [Hide VTAP root detection activity & dialog] patch !!!" - else - echo "Patch not found ! Aborting :)" - fi - - elif [ "$opt" == 'Exit' ]; then - exit - fi -done - diff --git a/MBCPApp/patches/TEMPLATE b/MBCPApp/patches/TEMPLATE new file mode 100644 index 0000000..d955ef4 --- /dev/null +++ b/MBCPApp/patches/TEMPLATE @@ -0,0 +1,6 @@ +#!/usr/bin/env bash +# PATCHNAME: +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh diff --git a/MBCPApp/patches/add_anime_resources.sh b/MBCPApp/patches/add_anime_resources.sh new file mode 100644 index 0000000..802ec45 --- /dev/null +++ b/MBCPApp/patches/add_anime_resources.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +# PATCHNAME: Add anime resources +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +cp -f 'blob_patches/anime_resources/rating_illus_fiveStar.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/' +cp -f 'blob_patches/anime_resources/rating_illus_fourStar.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/' +cp -f 'blob_patches/anime_resources/rating_illus_threeStar.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/' +cp -f 'blob_patches/anime_resources/rating_illus_twoStar.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/' +cp -f 'blob_patches/anime_resources/rating_illus_oneStar.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/' diff --git a/MBCPApp/patches/add_modified_resources.sh b/MBCPApp/patches/add_modified_resources.sh new file mode 100644 index 0000000..1b0bf39 --- /dev/null +++ b/MBCPApp/patches/add_modified_resources.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash +# PATCHNAME: Add modified resources +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +info "Copying modified resources..." +cp -r -f 'blob_patches/resources/raw' 'mbapk/mbapk_unpacked/res/' +cp -f 'blob_patches/resources/strings-vi/strings.xml' 'mbapk/mbapk_unpacked/res/values-vi/' diff --git a/MBCPApp/patches/autopatch_strings.sh b/MBCPApp/patches/autopatch_strings.sh new file mode 100644 index 0000000..481d427 --- /dev/null +++ b/MBCPApp/patches/autopatch_strings.sh @@ -0,0 +1,97 @@ +#!/usr/bin/env bash +# PATCHNAME: Autopatch strings +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +# App embedded links +# App update button url +sed_libapp 's|market://details?id=com.mbmobile|https://t.me/mbbpatch/2?ref=mbcp|g' +# Facebook button url +sed_libapp 's|https://www.facebook.com/VietnamMBBank?mibextid=LQQJ4d|https://gitlab.com/mbcp/mbbpatch/? |g' +# VNeID download url +sed_libapp 's|https://play.google.com/store/apps/details?id=com.vnid|https://www.apkmirror.com/uploads/?appcategory=vneid??|g' + +# App embedded strings +sed_libapp 's|online OTP|DigitalOTP|g' +sed_libapp 's|Online OTP|DigitalOTP|g' +sed_libapp 's|MB Bank|MBCPApp|g' +sed_libapp 's|The lastest version|TG/GitLab: mbbpatch|g' +sed_libapp 's|User profile|View profile|g' +sed_libapp 's|User ID|Phone |g' +sed_libapp 's|MB Membership Package|MB Membership |g' +sed_libapp 's|email information|Email information|g' +sed_libapp 's|Premium Account Number|Open new lucky account|g' +sed_libapp 's|Cashback 150K| |g' +sed_libapp 's|Request for supplying password|Request for new password |g' +sed_libapp 's|ID card/ID card|Old/New ID card|g' +sed_libapp 's|Number of document|Number of id card |g' +sed_libapp 's|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 tham 5 times. Please try again or use the "Forgot password" feature to reset. |g' +sed_libapp 's|Introduction to receive money|Invite using MB |g' +sed_libapp 's|Shopping- Entertainment- Investment|Flutter embedded MiniApps |g' +sed_libapp 's|Downloaded themes|Your owned themes|g' +sed_libapp 's|Coming soon|Placeholder|g' +sed_libapp 's|Coming Soon|Placeholder|g' +sed_libapp 's|MBBank app|MBCPApp |g' + +# Adapt for v6.4.56+ +sed_libapp 's|MBBank APP|MBCPApp |g' +# Adapt for v6.4.56+ +sed_libapp 's|APP MBBank|MBCPApp |g' +sed_libapp 's|MBBank App|MBCPApp |g' +sed_libapp 's|App MBBank|MBCPApp |g' +sed_libapp 's|get notifications|Get notifications|g' +sed_libapp 's|Read the announcement|Notify with voice |g' + +sed_libapp 's|Viettel post|Viettel Post|g' +sed_libapp 's|This service has been upgraded, please update the app to continue using the service|This app version is expired, please update or repatch with newer version. (GW525) |g' +sed_libapp 's|Welcome to the MBBank APP!|Thanks for login to MBCP~ |g' +sed_libapp 's|There is no device registered for DOTP|No active DigitalOTP device found :> |g' +sed_libapp 's|Transaction authentication code (OTP) has been sent to your phone number|DigitalOTP registration code (OTP) has been sent to your phone number : |g' +sed_libapp 's|You can request a new code later|You can request a new code after|g' +sed_libapp 's|Verification information is invalid, please contact hotline 1900545426 for support|EKYC failed, please go to our Telegram group (@mbbpatch) for details and help !!! |g' +# XPE002/XPE003 dialog contents : +sed_libapp 's|MB has detected that the device is currently not secure for performing transactions|This dialog are showing cuz server-side MB changes for rooted devices are enforced.|g' +sed_libapp 's|Please try closing and reopening the app, or reinstalling the MBCPApp from the app store to continue using the service.|If you are patching via Patcher with v6.4.59+ or newer, please repatch and dont include [Remove new root detection] patch.|g' + +sed_libapp 's|Set up DigitalOTP|Setup DigitalOTP |g' +sed_libapp 's|Set up facial authentication|Setup eKYC for transactions |g' +sed_libapp 's|facial|seKYC |g' +sed_libapp 's|Dentification|Identifier |g' + +sed_libapp 's|The data synchronization process was not successful, please restart the MBCPApp or redownload it on the app market|Unable to connect to MB server or VTAP isnt properly working. Please restart MBCPApp and try to login again. |g' + +sed_libapp 's|Devices registered with DOTP|Active DigitalOTP devices |g' + +sed_libapp 's|Select Digital OTP Setup / Configuration|3 dots / Setup DigitalOTP / Register |g' +sed_libapp 's|Total Balance in VND|Total balance in VND|g' +sed_libapp 's|Simply enter the DigitalOTP PIN, and the system will Autoally activate to process encryption and transaction authentication.|Simply enter the DigitalOTP PIN, and the VTAP system will activate to process encryption and transaction authentication. |g' + +sed_libapp 's|productionrn|mbcpreleases|g' + +sed_libapp 's|Momo|MoMo|g' +sed_libapp 's|Zalo Pay|ZolaPay |g' +sed_libapp 's|MB membership|MB Membership|g' + +sed_libapp 's|Open account ice number|Open new account number|g' +sed_libapp 's|Link Management|Link management|g' +sed_libapp 's|Set as Default Account|Set as default account|g' +sed_libapp 's|Account Balance|Account balance|g' +sed_libapp 's|New release|Features |g' +sed_libapp 's|Challenge to receive gifts|Others |g' +sed_libapp 's|MB will Autoally transfer the entire remaining balance to the account you have selected|MB will transfer the balance from the closed account to the account you have selected. |g' +sed_libapp 's|You have not registered for D-OTP|DigitalOTP is not registered |g' +sed_libapp 's|Please register for D-OTP to use this feature|DigitalOTP is required for this feature. |g' +sed_libapp 's|Register D-OTP|Register now |g' +sed_libapp 's|The login session expired. Please login again|Login session are expired. Please login again|g' +sed_libapp 's|I understand|OKAY |g' +sed_libapp 's|Authentication with DigitalOTP|DigitalOTP authentication |g' +sed_libapp 's|DigitalOTP information|DigitalOTP Information|g' +sed_libapp 's|Do you want to exit the app?|Back button pressed. Exit ? |g' +sed_libapp 's|Exit application|Exit MBCPApp |g' +sed_libapp 's|To use this feature, please install|To use this feature, please setup |g' +sed_libapp 's|Setup D-OTP|Digital OTP|g' +sed_libapp 's|Your login session expired|Login session will end :< |g' +# Placeholder toolbox +sed_libapp 's|Shopping, entertainment|MBCPApp Toolbox |g' diff --git a/MBCPApp/patches/bypass_accessibility_malicious_app_check.sh b/MBCPApp/patches/bypass_accessibility_malicious_app_check.sh new file mode 100644 index 0000000..847b0c7 --- /dev/null +++ b/MBCPApp/patches/bypass_accessibility_malicious_app_check.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +# PATCHNAME: Bypass accessibility & malicious apps check +# MAXVER: 55 +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +info 'Copying patched [MbbankUtilitiesPlugin]...' +cp -r -f 'blob_patches/bypass_accessibility_applist/com' 'mbapk/mbapk_unpacked/smali_classes3' +manifest_remove 'uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"' +sed_libapp 's|PackageName|packageMBBB|g' +sed_libapp 's|packageName|packageMBBa|g' diff --git a/MBCPApp/patches/bypass_new_zimperium_detection.sh b/MBCPApp/patches/bypass_new_zimperium_detection.sh new file mode 100644 index 0000000..53b8b0d --- /dev/null +++ b/MBCPApp/patches/bypass_new_zimperium_detection.sh @@ -0,0 +1,27 @@ +#!/usr/bin/env bash +# PATCHNAME: Bypass new zimperium detection +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +#if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali ] +info 'Removing [libvvb2060.so]...' +rm -f 'mbapk/mbapk_unpacked/lib/arm64-v8a/libvvb2060.so' +rm -f 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libvvb2060.so' +info 'Removing [libtoolChecker.so]...' +rm -f 'mbapk/mbapk_unpacked/lib/arm64-v8a/libtoolChecker.so' +rm -f 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libtoolChecker.so' +info "Removing checksum from provider..." +sed -i 's|e1a14adc915d7ad159edf2668b0dfcb359cf86538642de0e425d027f66eb07b2||g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali +sed -i 's|ca168a2ad00a92b8010d6801c3ca43e6df9f3701f084f6864399eaa4bbfaf56d||g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali +sed -i 's|5c9a139e42e6e6032ddbc1092af9831b8142e4e5ae89700fc7828f5bd62e1671||g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali +sed -i 's|c0a161a71738083df4298a0f03b0c54abf5bfda97c7d230875d97593733226ec||g' "$DIRPATH"/mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali +info "Patching [libdesignersactivists.so]..." +sed_libzdefend 's|zimperium.c|zimperium.x|g' +sed_libzdefend 's|com.zimperium.threat.new|app.zimperiam.nonpop.all|g' +sed_libzdefend 's|com.zimperium.command|app.zimperiam.commall|g' +sed_libzdefend 's|com.zimperium.threat.get|app.zimperiam.nonpop.all|g' +sed_libzdefend 's|detection|freedom..|g' +manifest_remove 'android:name="android.permission.QUERY_ALL_PACKAGES"' +warn "Clearing app data is mandatory in order to not trigger root detect screen" diff --git a/MBCPApp/patches/change_app_logo.sh b/MBCPApp/patches/change_app_logo.sh new file mode 100644 index 0000000..ed61e44 --- /dev/null +++ b/MBCPApp/patches/change_app_logo.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# PATCHNAME: Change app logo +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +PS3='Select app icon variant to continue, or [7] to quit : ' +select opt in 'MB Classic' 'Tet' 'Valentine 2025' '30/4-1/5' 'Summer 2025' 'Noel' 'Exit' +do + case "$opt" in + 'MB Classic') variant="normal" ;; + 'Tet') variant="tet" ;; + 'Valentine 2025') variant="valentine" ;; + '30/4-1/5') variant="thongnhatVN" ;; + 'Summer 2025') variant="summer2025" ;; + 'Noel') variant="noel" ;; + 'Exit') exit ;; + esac + + info 'Removing old logos...' + rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-hdpi + rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-mdpi + rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xhdpi + rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xxhdpi + rm -rf "$DIRPATH"/mbapk/mbapk_unpacked/res/mipmap-xxxhdpi + + info 'Copying new logos to [mbapk_unpacked/res]...' + cp -r -f "$DIRPATH"/mbcpicons/"$variant"/mipmap-hdpi mbapk/mbapk_unpacked/res + cp -r -f "$DIRPATH"/mbcpicons/"$variant"/mipmap-mdpi mbapk/mbapk_unpacked/res + cp -r -f "$DIRPATH"/mbcpicons/"$variant"/mipmap-xhdpi mbapk/mbapk_unpacked/res + cp -r -f "$DIRPATH"/mbcpicons/"$variant"/mipmap-xxhdpi mbapk/mbapk_unpacked/res + cp -r -f "$DIRPATH"/mbcpicons/"$variant"/mipmap-xxxhdpi mbapk/mbapk_unpacked/res + +done diff --git a/MBCPApp/patches/force_portrait_screen.sh b/MBCPApp/patches/force_portrait_screen.sh new file mode 100644 index 0000000..41c2180 --- /dev/null +++ b/MBCPApp/patches/force_portrait_screen.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +# PATCHNAME: Force portrait screen +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh +sed -i 's|fullSensor|portrait|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml diff --git a/MBCPApp/patches/hide_vtap_root_detection_activity.sh b/MBCPApp/patches/hide_vtap_root_detection_activity.sh new file mode 100644 index 0000000..2795d07 --- /dev/null +++ b/MBCPApp/patches/hide_vtap_root_detection_activity.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash +# PATCHNAME: Hide VTAP root detection activity & dialog +# MAXVER: +# MINVER: +# shellcheck disable=SC1091,SC2016 +. "$DIRPATH"/common.sh + +# 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 > /dev/null 2>&1 + +sed -i 's|Lcom/vtap/MaintenanceActivity;|Lio/flutter/plugins/MainActivity;|g' "$DIRPATH"/mbapk/mbapk_unpacked/smali_classes4/com/vtap/VTapSetupPlugin.smali > /dev/null 2>&1 +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' diff --git a/MBCPApp/patches/modify_app_theme.sh b/MBCPApp/patches/modify_app_theme.sh new file mode 100644 index 0000000..0cddd98 --- /dev/null +++ b/MBCPApp/patches/modify_app_theme.sh @@ -0,0 +1,86 @@ +#!/usr/bin/env bash +# PATCHNAME: Modify app theme +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +info "In order to modify app theme, you must extract assets first if current unpacked APK has MBShield!" +PS3='Select themes : ' +select opt in 'MBCP SemiPriority' 'MBCP MBClassic' 'Noel 2024' 'Exit' +do + case "$opt" in + 'MBCP SemiPriority') + info 'Moving [priority] folder...' + cp -r 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority' 'blob_patches/semipriority/' + info 'Modifying QR background...' + cp 'blob_patches/semipriority/priority/a_background_image.webp' 'blob_patches/semipriority/priority/qr_img_ThemeDefalut.webp' + info 'Copying to [flutter_assets/assets/images/dynamic/base]' + cp -r -f 'blob_patches/semipriority/priority/'* 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + info 'Copying [ic_logo_mb_text.svg]...' + cp -f 'blob_patches/semipriority/ic_logo_mb_text.svg' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/svgs/' + info 'Copying [welcom_img_eMbee.webp]...' + cp -f 'blob_patches/semipriority/welcom_img_eMbee.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + info 'Cleaning...' + rm -rf 'blob_patches/semipriority/priority' + patch_finish "semipriority_theme" + good "Applied [MBCP SemiPriority] theme." + ;; + 'MBCP MBClassic') + info "Ensure that SemiPriority theme is not applied before this !" + info "Otherwise it will have like mixed SemiPriority and MB Classic theme, You've been warned !!! " + cp -f 'blob_patches/mbclassic/a_background_image.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/mbclassic/general_bg_screenshot.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/mbclassic/homeLanding_bg_main.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/mbclassic/loading_bg_main.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/mbclassic/login_bg_main.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/mbclassic/qr_img_ThemeDefalut.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenLoginClassic.png|https://gitlab.com/-/project/56341767/uploads/f585b28f88876db211f116d1d622031d/mbcp_login.png?git1|g' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenLoginClassic.png|https://gitlab.com/-/project/56341767/uploads/f585b28f88876db211f116d1d622031d/mbcp_login.png?git1|g' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_thumbnailClassic.png|https://gitlab.com/-/project/56341767/uploads/ba4f0923a4956ba379868e01c55e9cfb/thumb.png?aaaaaaa|g' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_thumbnailClassic.png|https://gitlab.com/-/project/56341767/uploads/ba4f0923a4956ba379868e01c55e9cfb/thumb.png?aaaaaaa|g' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenHomeClassic.png|https://gitlab.com/-/project/56341767/uploads/1d7fcf300167e87440220a6f0d28b8c1/mbcp_lobby.png?aaa|g' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenHomeClassic.png|https://gitlab.com/-/project/56341767/uploads/1d7fcf300167e87440220a6f0d28b8c1/mbcp_lobby.png?aaa|g' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenSuccessClassic.png|https://gitlab.com/-/project/56341767/uploads/d94e257eb6cf59865016a939541c32fc/mbcp_transfer.png?aaa|g' + sed_libapp 's|https://filestatic.mbbank.com.vn/mbapp-images/rs/prime/ThemeImage/theme_img_screenSuccessClassic.png|https://gitlab.com/-/project/56341767/uploads/d94e257eb6cf59865016a939541c32fc/mbcp_transfer.png?aaa|g' + patch_finish "mbclassic_theme" + good 'Applied [MBCP MBClassic] theme.' + ;; + 'Noel 2024') + info "Ensure that SemiPriority theme is not applied before this !" + info "Otherwise it will have like mixed SemiPriority and MB Classic theme, You've been warned !!! " + cp -f 'blob_patches/noel/a_background_image.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/bill_background_gold.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/coreBanking_img_successBackground.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/general_bg_screenshot.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/general_bg_success.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/homeLanding_bg_main.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/loading_bg_main.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/login_bg_main.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/qr_img_ThemeDefalut.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + ############## + cp -f 'blob_patches/noel/a_background_image.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/bill_background_gold.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/coreBanking_img_successBackground.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/general_bg_screenshot.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/general_bg_success.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/homeLanding_bg_main.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/loading_bg_main.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/login_bg_main.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/qr_img_ThemeDefalut.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + # Change theme preview + cp -f 'blob_patches/noel/customUI_img_classicMode.png' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + cp -f 'blob_patches/noel/customUI_img_classicMode.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + # Lockdown ability to change other theme, also force Noel 2024 theme + sed_libapp 's|theme|Noel |g' + sed_libapp 's|theme|Noel |g' + # Settings + sed_libapp 's|Change Noel |Noel 2024 |g' + sed_libapp 's|Change Noel |Noel 2024 |g' + + warn "You WON'T be able to use other theme than Noel 2024 on app !" + good "Applied [Noel 2024] theme." + ;; + 'Exit') exit ;; + esac +done diff --git a/MBCPApp/patches/remove_animated_qr_background.sh b/MBCPApp/patches/remove_animated_qr_background.sh new file mode 100644 index 0000000..c354c4f --- /dev/null +++ b/MBCPApp/patches/remove_animated_qr_background.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +# PATCHNAME: Remove animated QR background +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +info "This will remove animated QR on bottom navigation bar and replace with white background !" +info "Removing animated QR..." +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/homeLanding_bg_qrCode.gif' +info "Copying new static white background..." +mv 'blob_patches/qr_white/150.png' 'blob_patches/qr_white/homeLanding_bg_qrCode.gif' > /dev/null 2>&1 +cp -f 'blob_patches/qr_white/homeLanding_bg_qrCode.gif' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static' diff --git a/MBCPApp/patches/remove_app_from_launcher.sh b/MBCPApp/patches/remove_app_from_launcher.sh new file mode 100644 index 0000000..dfda6b0 --- /dev/null +++ b/MBCPApp/patches/remove_app_from_launcher.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +# PATCHNAME: Remove app from launcher +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh +sed -i 's|||g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml diff --git a/MBCPApp/patches/remove_banner_miniapp.sh b/MBCPApp/patches/remove_banner_miniapp.sh new file mode 100644 index 0000000..0fca977 --- /dev/null +++ b/MBCPApp/patches/remove_banner_miniapp.sh @@ -0,0 +1,41 @@ +#!/usr/bin/env bash +# PATCHNAME: Remove banners & MiniApp +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +sed_libapp 's|banner|remove|g' +sed_libapp 's|marketplacehome|removemarketapp|g' + +info 'Removing related resources...' +rm -rf 'mbapk/mbapk_unpacked/assets/flutter_assets/packages' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/billing_img_defaultBanner.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/billing_img_defaultBanner.private.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/explore_img_defaultBanner.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/coreBanking_img_successBanner.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/homeLanding_img_defaultBanner.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/homeLanding_img_defaultBanner.private.webp' +# Priority exclusive +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/explore_img_defaultBanner.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/coreBanking_img_successBanner.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/homeLanding_img_defaultBanner.webp' + +# Shield related resources +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_hoadon.private.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_muasam.private.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_offline.private.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_hoadon.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_muasam.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_offline.webp' + +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/khien_img_hoadon.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/khien_img_muasam.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/khien_img_offline.webp' + +# +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/banner_transfer_mass.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/banner_transfer_private.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/recap_banner.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/poster_cyberrisk_noti.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/onboarding/ads_banner_borigin.webp' diff --git a/MBCPApp/patches/remove_bulitin_fonts.sh b/MBCPApp/patches/remove_bulitin_fonts.sh new file mode 100644 index 0000000..dbf2bf2 --- /dev/null +++ b/MBCPApp/patches/remove_bulitin_fonts.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +# PATCHNAME: Remove bulit-in fonts +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Black.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-BlackItalic.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Bold.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-BoldItalic.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Extrabold.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-ExtraboldItalic.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCy-Extrathin.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCy-ExtrathinItalic.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Light.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-LightItalic.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Regular.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-RegularItalic.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Semibold.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-SemiboldItalic.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Thin.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-ThinItalic.otf' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/SF-Pro-Display-Medium.ttf' +rm -f 'mbapk/mbapk_unpacked/res/font/avenir_next_bold.ttf' +rm -f 'mbapk/mbapk_unpacked/res/font/bold.ttf' +rm -f 'mbapk/mbapk_unpacked/res/font/medium.ttf' +rm -f 'mbapk/mbapk_unpacked/res/font/regular.ttf' +rm -f 'mbapk/mbapk_unpacked/assets/insider.ttf' +# Placeholder font to fix display issues when open details balance notifications +info "Creating placeholder font..." +touch 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/fonts/AvertaStdCY-Regular.otf' +# Placeholder to prevent compiling resource fail +touch 'mbapk/mbapk_unpacked/res/font/avenir_next_bold.ttf' +info 'Copying fix fonts...' +# NFC scanning phase requires actual font in order to not throw exception +cp -f 'blob_patches/resources/font/bold.ttf' 'mbapk/mbapk_unpacked/res/font/' +cp -f 'blob_patches/resources/font/medium.ttf' 'mbapk/mbapk_unpacked/res/font/' +cp -f 'blob_patches/resources/font/regular.ttf' 'mbapk/mbapk_unpacked/res/font/' diff --git a/MBCPApp/patches/remove_embee.sh b/MBCPApp/patches/remove_embee.sh new file mode 100644 index 0000000..68b7a5a --- /dev/null +++ b/MBCPApp/patches/remove_embee.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# PATCHNAME: Remove eMBee +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +warn "Remove eMBee also remove customer support and any other options on eMBee Helper !" +info "Removing eMBee Customer support function..." +sed_libapp 's|group_button_support|itsnotworthittouseem|g' +sed_libapp 's|Customer support| |g' + +info "Removing assets..." +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_page.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_header.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_login.webp' +# Priority support +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_page.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_header.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_login.webp' +# Private support +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_page.private.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_login.private.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_header.private.webp' + +# Adapt for v6.4.53+ +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_headerNew.private.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_headerNew.webp' +# Private support +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_loginSupport.private.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_loginSupport.webp' +# Priority support +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_headerNew.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/eMBee_img_loginSupport.webp' diff --git a/MBCPApp/patches/remove_garbage_permission_and_activities.sh b/MBCPApp/patches/remove_garbage_permission_and_activities.sh new file mode 100644 index 0000000..4b38b01 --- /dev/null +++ b/MBCPApp/patches/remove_garbage_permission_and_activities.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +# PATCHNAME: Remove garbage permission & activities +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +sed -i 's|android:protectionLevel="signature"|android:protectionLevel="normal"|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml +manifest_remove 'android:name="com.android.vending.CHECK_LICENSE"' +manifest_remove 'android:name="com.google.android.gms.permission.AD_ID"' +manifest_remove "com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY" +manifest_remove "com.vtap.MaintenanceActivity" +manifest_remove "com.mbmobile.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION" +manifest_remove "com.vkey.android.vguard.VGDialogActivity" diff --git a/MBCPApp/patches/remove_invoke_to_mbshield.sh b/MBCPApp/patches/remove_invoke_to_mbshield.sh new file mode 100644 index 0000000..98befd4 --- /dev/null +++ b/MBCPApp/patches/remove_invoke_to_mbshield.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +# PATCHNAME: Remove invoke to mbshield +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +warn "Currently only support remove invoke mbshield to [io.flutter.plugins.MainActivity] and [MBBHomeWidgetQR] !!!" +info "Copying..." +rm -f 'mbapk/mbapk_unpacked/smali_classes4/io/flutter/plugins/MainAcitivity.smali' +rm -f 'mbapk/mbapk_unpacked/smali_classes4/io/flutter/plugins/MBBHomeWidgetQR.smali' +cp -f 'blob_patches/noinvoke/MainActivity.smali' 'mbapk/mbapk_unpacked/smali_classes4/io/flutter/plugins' +cp -f 'blob_patches/noinvoke/MBBHomeWidgetQR.smali' 'mbapk/mbapk_unpacked/smali_classes4/io/flutter/plugins' +info "Removing leftover files..." +for i in {0..83}; do + case $i in + *) rm -f "mbapk/mbapk_unpacked/smali_classes5/mbshield/EP$i.smali" ;; + esac +done diff --git a/MBCPApp/patches/remove_new_root_detection.sh b/MBCPApp/patches/remove_new_root_detection.sh new file mode 100644 index 0000000..68b2ccb --- /dev/null +++ b/MBCPApp/patches/remove_new_root_detection.sh @@ -0,0 +1,39 @@ +#!/usr/bin/env bash +# PATCHNAME: Remove new root detection +# MAXVER: 59 +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +info 'Removing [libZDefend.so]...' +rm -f 'mbapk/mbapk_unpacked/lib/arm64-v8a/libZDefend.so' +rm -f 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libZDefend.so' +info 'Removing [libvvb2060.so]...' +rm -f 'mbapk/mbapk_unpacked/lib/arm64-v8a/libvvb2060.so' +rm -f 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libvvb2060.so' +info 'Removing [libtoolChecker.so]...' +rm -f 'mbapk/mbapk_unpacked/lib/arm64-v8a/libtoolChecker.so' +rm -f 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libtoolChecker.so' +info 'Removing [libdesignersactivists.so]...' +rm -f 'mbapk/mbapk_unpacked/lib/arm64-v8a/libdesignersactivists.so' +rm -f 'mbapk/mbapk_unpacked/lib/armeabi-v7a/libdesignersactivists.so' + +info 'Removing related files...' +rm -rf 'mbapk/mbapk_unpacked/assets/zfiles' +rm -f 'mbapk/mbapk_unpacked/assets/dlangV5.dat' +rm -f 'mbapk/mbapk_unpacked/assets/dlangV5.en.dat' +rm -f 'mbapk/mbapk_unpacked/assets/policy0' +rm -f 'mbapk/mbapk_unpacked/assets/policy1' +rm -f 'mbapk/mbapk_unpacked/assets/policy2' +rm -f 'mbapk/mbapk_unpacked/assets/policy3' +rm -f 'mbapk/mbapk_unpacked/assets/policy4' +rm -f 'mbapk/mbapk_unpacked/assets/policy5' +rm -f 'mbapk/mbapk_unpacked/assets/policy6' +rm -f 'mbapk/mbapk_unpacked/assets/policy8' +rm -f 'mbapk/mbapk_unpacked/assets/policy9' +rm -f 'mbapk/mbapk_unpacked/assets/policym' +rm -f 'mbapk/mbapk_unpacked/assets/rulesV5.dat' +rm -rf 'mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl' +rm -f 'mbapk/mbapk_unpacked/smali/androidx/UnderlyingVcl.smali' +manifest_remove 'android:authorities="com.mbmobile.honor.essence.enter' +manifest_remove 'android:authorities="com.mbmobile.inserted.thumbzilla.ireland' diff --git a/MBCPApp/patches/remove_protection_shield.sh b/MBCPApp/patches/remove_protection_shield.sh new file mode 100644 index 0000000..5b2f3f4 --- /dev/null +++ b/MBCPApp/patches/remove_protection_shield.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# PATCHNAME: Remove protection shield +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +sed_libapp 's|get-protective-cyber-risk|get_protective_cyber_none|g' +sed_libapp 's|Activate for Protection|Protection are disabled|g' +info "Removing resources..." +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_img_pending.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_img_actived.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_img_empty.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_illus_pending.webp' + +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_hoadon.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_muasam.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_offline.webp' + +# Private exclusive +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_hoadon.private.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_muasam.private.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/khien_img_offline.private.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_illus_pending.private.webp' + +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_img_pending.private.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_img_actived.private.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/shield_img_empty.private.webp' + +# Priority exclusive +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/shield_img_pending.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority/shield_img_empty.webp' + +info "NOTE : This doesn't remove the app protection shield, it just disable and remove the MB Protection Shield, which literally is the MIC Shield !" diff --git a/MBCPApp/patches/remove_vnpay_vmb20.sh b/MBCPApp/patches/remove_vnpay_vmb20.sh new file mode 100644 index 0000000..09f6eef --- /dev/null +++ b/MBCPApp/patches/remove_vnpay_vmb20.sh @@ -0,0 +1,113 @@ +#!/usr/bin/env bash +# PATCHNAME: Remove VNPAY VMB20 +# MAXVER: +# MINVER: 56 +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +info "Removing smali..." +rm -rf 'mbapk/mbapk_unpacked/smali_classes4/com/vnpay' +rm -rf 'mbapk/mbapk_unpacked/smali_classes4/com/d5' +rm -rf 'mbapk/mbapk_unpacked/smali_classes5/com/u4' +rm -rf 'mbapk/mbapk_unpacked/smali_classes5/com/v4' +rm -rf 'mbapk/mbapk_unpacked/smali_classes5/com/x2' +rm -rf 'mbapk/mbapk_unpacked/smali_classes5/com/y4' +rm -rf 'mbapk/mbapk_unpacked/smali_classes5/com/z4' +rm -rf 'mbapk/mbapk_unpacked/smali/com/a5' +rm -rf 'mbapk/mbapk_unpacked/smali/com/ay4' +rm -rf 'mbapk/mbapk_unpacked/smali/com/az4' +rm -rf 'mbapk/mbapk_unpacked/smali/com/c5' +rm -rf 'mbapk/mbapk_unpacked/smali/com/d5' +for i in {9..82}; do + # skip 77, 78, 79 + case $i in + 77 | 78 | 79 | 81 ) :; ;; + *) rm -f "mbapk/mbapk_unpacked/smali_classes5/mbshield/EP$i.smali" ;; + esac +done + +info "Removing resources..." +rm -f 'mbapk/mnapk_unpacked/res/drawable-xhdpi/ic_home_vna.png' +rm -f 'mbapk/mnapk_unpacked/res/drawable-xhdpi/logo_vnairline.png' +rm -f 'mbapk/mnapk_unpacked/res/drawable-xxhdpi/ic_home_vna.png' +rm -f 'mbapk/mnapk_unpacked/res/drawable-xxhdpi/logo_vnairline.png' + +# Remove activity +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20BlankActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.FlightTracking.SearchingResultActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.FlightTracking.FlightSearchingActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.FlightTracking.FollowingFlightActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.FlightTracking.FlightDetailActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20TimChuyenBayActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20ThoiGianActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20DiaDiemActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20HangHangKhongActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20LoadingActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.confirm.VMBConfirmBookActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20BookFlightSuccessActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20BookHistoryActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20TicketDetailsActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20TermActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20InfoServiceActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20ActivityThoiGianNew"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20BookFlightSuccessActivity2"' +manifest_remove 'android:name="com.vnpay.ticketlib.checkin.CheckinActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.checkin.PnrInfoActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.checkin.InitChooseSeatActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.checkin.UpdateInfoActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.checkin.UpdatePassportInfoActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.checkin.ReCheckinActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.checkin.TicketPreviewActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.checkin.CheckinConditionAcitvity"' +manifest_remove 'android:name="com.vnpay.ticketlib.checkin.SendMailActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.checkin.TermConditionActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.FlightTracking.FlightTrackingMapActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VJInfoFlightActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.rename.VMBChangeNameActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.rename.VJDetailFeeActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.changeFlight.VJChangeFlightActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VJListFlightActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VJHistoryActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.history.VJInfoTicketActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VJTermActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.history.VJDetailTicketActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.ancillary.VJAddOnMealActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20PaylaterActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.ebill.VMB20EBillActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.ebill.VMB20ConfirmExportBillActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VJConfirmActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20FlightActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20AirportActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20IFlightActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20NewSortActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.VMB20DetailFlightActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VMBManagerBookingActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VMBDetailFeeActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VMBInfoFlightActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.VMBSeatMapActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.seats.VMBInfoSeatActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.VjAddOn.ancillary.VNBL.VMBVNBLActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Voucher.VMBListVoucherActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Voucher.VMBDetailVoucherActivity"' +manifest_remove 'android:name="com.vnpay.tracking.ExitService"' +manifest_remove 'android:name="com.vnpay.tracking.TrackingReceiver"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.contact.VMBAddInfoActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.contact.VMBPassengerContactActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.infobook.VMBNewInfoBookActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.search.VMBNewSearchActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.search.VMBSortINTFlightActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.iflight.VMBNewIFlightsActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.iflight.VMBQuotePriceIFlightActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.checkin.PnrReviewActivity"' +manifest_remove 'android:name="com.vnpay.ticketlib.Activity.contact.VMBAddInfoActivity"' + +# stub +sed -i 's|||g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml +manifest_remove 'android:name="_vemaybay_payment"' +manifest_remove 'android:name="_vemaybay_payment_without_paymentcode"' +manifest_remove 'android:name="_vemaybay_payment_paylater"' + +cp -f 'blob_patches/remove_vmb20/GeneratedPluginRegistrant.smali' 'mbapk/mbapk_unpacked/smali_classes4/io/flutter/plugins' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/base/partner/img_vnpay.webp' +rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/base/partner/img_vna.webp' +sed_libapp 's|vna_flight_landing|broken_vna_ehh_idk|g' diff --git a/MBCPApp/patches/remove_vpn_detection.sh b/MBCPApp/patches/remove_vpn_detection.sh new file mode 100644 index 0000000..9bd09a6 --- /dev/null +++ b/MBCPApp/patches/remove_vpn_detection.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +# PATCHNAME: Remove VPN detection +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +sed_libapp 's|vpn|app|g' diff --git a/MBCPApp/patches/restore_old_registration_resources.sh b/MBCPApp/patches/restore_old_registration_resources.sh new file mode 100644 index 0000000..82c5929 --- /dev/null +++ b/MBCPApp/patches/restore_old_registration_resources.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash +# PATCHNAME: Restore old registration resources +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +cp -f 'blob_patches/restore_oldreg/onboarding_illus_featureAccount.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/onboarding' +cp -f 'blob_patches/restore_oldreg/onboarding_illus_featureFreeService.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/onboarding' +cp -f 'blob_patches/restore_oldreg/onboarding_illus_featureMBS.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/onboarding' +cp -f 'blob_patches/restore_oldreg/onboarding_illus_featureShield.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/onboarding' +cp -f 'blob_patches/restore_oldreg/onboarding_img_referLinkNoneCoin.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/onboarding' +cp -f 'blob_patches/restore_oldreg/onboarding_img_referLinkPersonalCoin.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/static/onboarding' diff --git a/MBCPApp/patches/revert_old_embee.sh b/MBCPApp/patches/revert_old_embee.sh new file mode 100644 index 0000000..cb3dc22 --- /dev/null +++ b/MBCPApp/patches/revert_old_embee.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# PATCHNAME: Revert old eMBee logo +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +info "Copying old eMBee logo..." +cp -f 'blob_patches/revert_old_eMBee/customerService_img_avatarChat.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' +cp -f 'blob_patches/revert_old_eMBee/customerService_img_avatarChat01.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' +cp -f 'blob_patches/revert_old_eMBee/customerService_img_avatarChat02.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' +cp -f 'blob_patches/revert_old_eMBee/customerService_img_avatarChat03.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' +cp -f 'blob_patches/revert_old_eMBee/customerService_img_avatarChat04.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' +cp -f 'blob_patches/revert_old_eMBee/eMBee_img_headerNew.private.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' +cp -f 'blob_patches/revert_old_eMBee/eMBee_img_headerNew.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' +cp -f 'blob_patches/revert_old_eMBee/eMBee_img_loginSupport.private.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' +cp -f 'blob_patches/revert_old_eMBee/eMBee_img_loginSupport.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' + +# Priority exclusive +cp -f 'blob_patches/revert_old_eMBee/eMBee_img_headerNew.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority' +cp -f 'blob_patches/revert_old_eMBee/eMBee_img_loginSupport.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority' + +# Restore old eMBee account profile picture (present before on MB React Native) +cp -f 'blob_patches/revert_old_eMBee/homeLanding_img_avatarDefault.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' +cp -f 'blob_patches/revert_old_eMBee/homeLanding_img_avatarDefault.private.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base' +cp -f 'blob_patches/revert_old_eMBee/homeLanding_img_avatarDefault.webp' 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/priority' diff --git a/MBCPApp/patches/target_sdk_35.sh b/MBCPApp/patches/target_sdk_35.sh new file mode 100644 index 0000000..58c6bd2 --- /dev/null +++ b/MBCPApp/patches/target_sdk_35.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +# PATCHNAME: Set targetSdkVersion to 35 +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +sed -i 's|targetSdkVersion: 34|targetSdkVersion: 35|g' "$DIRPATH"/mbapk/mbapk_unpacked/apktool.yml