Compare commits

..
11 changed files with 88 additions and 659 deletions

View file

@ -1,378 +0,0 @@
<?xml version='1.0' encoding='utf-8' ?>
<resources>
<string name="OPC_NAME_NOT_SET_KEY">OPC_NAME_NOT_SET_KEY</string>
<string name="OPC_NETWORK_KEY">OPC_NETWORK_KEY</string>
<string name="OPC_NETWORK_NAME_KEY">OPC_NETWORK_NAME_KEY</string>
<string name="OPC_NOT_SET_STRING">NO_OPC_SET</string>
<string name="OPC_SHARED_PREFERENCES_FILE">OPC_SHARED_PREFERENCES_FILE</string>
<string name="OPC_SHARED_PREFERENCES_KEY">OPC_SHARED_PREFERENCES_KEY</string>
<string name="OPC_TOKEN_SERVICE_PROVIDER_KEY">OPC_TOKEN_SERVICE_PROVIDER_KEY</string>
<string name="OPC_TOKEN_SERVICE_PROVIDER_NAME_KEY">OPC_TOKEN_SERVICE_PROVIDER_NAME_KEY</string>
<string name="abc_action_bar_home_description">Navigate home</string>
<string name="abc_action_bar_up_description">Navigate up</string>
<string name="abc_action_menu_overflow_description">More options</string>
<string name="abc_action_mode_done">Done</string>
<string name="abc_activity_chooser_view_see_all">See all</string>
<string name="abc_activitychooserview_choose_application">Choose an app</string>
<string name="abc_capital_off">OFF</string>
<string name="abc_capital_on">ON</string>
<string name="abc_menu_alt_shortcut_label">Alt+</string>
<string name="abc_menu_ctrl_shortcut_label">Ctrl+</string>
<string name="abc_menu_delete_shortcut_label">delete</string>
<string name="abc_menu_enter_shortcut_label">enter</string>
<string name="abc_menu_function_shortcut_label">Function+</string>
<string name="abc_menu_meta_shortcut_label">Meta+</string>
<string name="abc_menu_shift_shortcut_label">Shift+</string>
<string name="abc_menu_space_shortcut_label">space</string>
<string name="abc_menu_sym_shortcut_label">Sym+</string>
<string name="abc_prepend_shortcut_label">Menu+</string>
<string name="abc_search_hint">Search…</string>
<string name="abc_searchview_description_clear">Clear query</string>
<string name="abc_searchview_description_query">Search query</string>
<string name="abc_searchview_description_search">Search</string>
<string name="abc_searchview_description_submit">Submit query</string>
<string name="abc_searchview_description_voice">Voice search</string>
<string name="abc_shareactionprovider_share_with">Share with</string>
<string name="abc_shareactionprovider_share_with_application">Share with %s</string>
<string name="abc_toolbar_collapse_description">Collapse</string>
<string name="aiDemo_buttonUnderstand">Understand and continue</string>
<string name="aiDemo_defaultGuidance">Please move the face into the frame</string>
<string name="aiDemo_willSpeakLoudly">You will have to speak loudy these numbers on the screen</string>
<string name="aiFaceMessage_facePitchDown">Please look straight</string>
<string name="aiFaceMessage_facePitchUp">Please look straight</string>
<string name="aiFaceMessage_faceQualified">Your face is in the frame. Please hold your hand steady!</string>
<string name="aiFaceMessage_faceRollAntiClockWise">Please keep your face upright</string>
<string name="aiFaceMessage_faceRollClockWise">Please keep your face upright</string>
<string name="aiFaceMessage_faceTooBig">Please put the camera further away</string>
<string name="aiFaceMessage_faceTooSmall">Please put the camera closer</string>
<string name="aiFaceMessage_faceYawedLeft">Please look straight</string>
<string name="aiFaceMessage_faceYawedRight">Please look straight</string>
<string name="aiFaceMessage_noFaceFound">Please move your face fit in the frame</string>
<string name="aiFaceMessage_tooManyFace">Found many faces in the frame. Please retake the selfie</string>
<string name="aiGuidanceBottomSheet_buttonConfirm">Agree</string>
<string name="aiGuidanceBottomSheet_line1">Please remove scarf, mask, sunglasses, hat and take a photo in well-lit condition</string>
<string name="aiGuidanceBottomSheet_line2">Keep your face steady during video recording</string>
<string name="aiGuidanceBottomSheet_line3">Speak loudly and clearly the number on the screen</string>
<string name="aiGuidanceBottomSheet_line4">Hold your phone as high as your face </string>
<string name="aiGuidanceBottomSheet_title">Video recording tutorial</string>
<string name="aiIntro_actionDetail">Please take a video of your face to verify no one is impersonating you</string>
<string name="aiIntro_actionTitle">Biometric information</string>
<string name="aiIntro_buttonStartRecord">Start demonstration</string>
<string name="aiIntro_title">Verify information</string>
<string name="aiIntro_videoDescription">Please watch the tutorial to know how to record video with the best quality</string>
<string name="aiResultScreen_buttonCancelLabel">Cancel</string>
<string name="aiResultScreen_buttonRetryLabel">Retry</string>
<string name="aiResultScreen_title">Record selfie video failed</string>
<string name="aiScreen_defaultGuidance">Please move your face fit in the frame</string>
<string name="aiScreen_faceMatchingWithVideoFailed">Your facial data does not match. Please try again</string>
<string name="aiScreen_faceNotMatchQuality">Your video is in low quality</string>
<string name="aiScreen_faceNotMatchWithID">Your facial data does not match</string>
<string name="aiScreen_recordVideoFailed">Failed. Please record the video again</string>
<string name="aiScreen_recordVoiceFailed">Error. Please record your voice again</string>
<string name="aiScreen_recording">Recording</string>
<string name="aiScreen_speakLoudly">Speak loudly the number on the screen</string>
<string name="androidx_startup">androidx.startup</string>
<string name="app_link">mbbank.onelink.me</string>
<string name="app_name">MB Bank</string>
<string name="app_widget_description">This is an app widget description</string>
<string name="appbar_scrolling_view_behavior">com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior</string>
<string name="bottom_sheet_behavior">com.google.android.material.bottomsheet.BottomSheetBehavior</string>
<string name="bottomsheet_action_expand_halfway">Expand halfway</string>
<string name="character_counter_content_description">Characters entered %1$d of %2$d</string>
<string name="character_counter_overflowed_content_description">Character limit exceeded %1$d of %2$d</string>
<string name="character_counter_pattern">%1$d/%2$d</string>
<string name="clear_text_end_icon_content_description">Clear text</string>
<string name="click_setting_qr">Tap to setup QR</string>
<string name="click_setting_qr_big_qr">Tap to setup QR</string>
<string name="com.crashlytics.android.build_id">cca90e65-5805-4c06-bc2d-930595fb2cf4</string>
<string name="com.google.firebase.crashlytics.mapping_file_id">a4f49867dfa64435bea0bafc1f437f34</string>
<string name="common_google_play_services_enable_button">Enable</string>
<string name="common_google_play_services_enable_text">%1$s can't work properly unless you enable GMS/microG.</string>
<string name="common_google_play_services_enable_title">Enable GMS/microG</string>
<string name="common_google_play_services_install_button">Install</string>
<string name="common_google_play_services_install_text">GMS/microG is missing from your device. %1$s still runs without it but some features will be broken.</string>
<string name="common_google_play_services_install_title">GMS/microG missing</string>
<string name="common_google_play_services_notification_channel_name">Google Play services availability</string>
<string name="common_google_play_services_notification_ticker">Google Play services error</string>
<string name="common_google_play_services_unknown_issue">%1$s is having trouble with Google Play services. Please try again.</string>
<string name="common_google_play_services_unsupported_text">%1$s won't run without Google Play services, which are not supported by your device.</string>
<string name="common_google_play_services_update_button">Update</string>
<string name="common_google_play_services_update_text">%1$s won't run unless you update Google Play services.</string>
<string name="common_google_play_services_update_title">Update Google Play services</string>
<string name="common_google_play_services_updating_text">%1$s won't run without Google Play services, which are currently updating.</string>
<string name="common_google_play_services_wear_update_text">New version of Google Play services needed. It will update itself shortly.</string>
<string name="common_open_on_phone">Open on phone</string>
<string name="common_signin_button_text">Sign in</string>
<string name="common_signin_button_text_long">Sign in with Google</string>
<string name="confirm_device_credential_password">Use password</string>
<string name="copy">Copy</string>
<string name="copy_toast_msg">Link copied to clipboard</string>
<string name="default_error_msg">Unknown error</string>
<string name="default_web_client_id">162583259686-erd52s6o9832jno1lpa9on8t2djnicie.apps.googleusercontent.com</string>
<string name="detected_threats_msg_vi">.</string>
<string name="detected_threats_title_vi">.</string>
<string name="error_icon_content_description">Error</string>
<string name="expand_button_title">Advanced</string>
<string name="exposed_dropdown_menu_content_description">Show dropdown menu</string>
<string name="fab_transformation_scrim_behavior">com.google.android.material.transformation.FabTransformationScrimBehavior</string>
<string name="fab_transformation_sheet_behavior">com.google.android.material.transformation.FabTransformationSheetBehavior</string>
<string name="fallback_menu_item_copy_link">Copy link</string>
<string name="fallback_menu_item_open_in_browser">Open in browser</string>
<string name="fallback_menu_item_share_link">Share link</string>
<string name="fcm_fallback_notification_channel_label">Miscellaneous</string>
<string name="fingerprint_dialog_touch_sensor">Touch the fingerprint sensor</string>
<string name="fingerprint_error_hw_not_available">Fingerprint hardware not available.</string>
<string name="fingerprint_error_hw_not_present">This device does not have a fingerprint sensor</string>
<string name="fingerprint_error_lockout">Too many attempts. Please try again later.</string>
<string name="fingerprint_error_no_fingerprints">No fingerprints enrolled.</string>
<string name="fingerprint_error_user_canceled">Fingerprint operation canceled by user.</string>
<string name="fingerprint_not_recognized">Not recognized</string>
<string name="firebase_database_url">https://mbmobilebanking6789.firebaseio.com</string>
<string name="gcm_defaultSenderId">162583259686</string>
<string name="general_errorCannotBackAtThisScreen">You cannot go back to the previous step. Please continue</string>
<string name="general_popupWarningTitle">Warning</string>
<string name="general_processing">Processing...</string>
<string name="generic_error_no_device_credential">No PIN, pattern, or password set.</string>
<string name="generic_error_no_keyguard">This device does not support PIN, pattern, or password.</string>
<string name="generic_error_user_canceled">Authentication canceled by user.</string>
<string name="gerneral_invalidOrMissingResponse">The server response is invalid or missing. Please try again</string>
<string name="gerneral_networkError">Please check your internet connection</string>
<string name="google_api_key">AIzaSyAcxvc0vK4vJ3TzLe0PI9gqNIq8ZxmL5NI</string>
<string name="google_app_id">1:162583259686:android:884f0ccb6ad5e1ed</string>
<string name="google_crash_reporting_api_key">AIzaSyAcxvc0vK4vJ3TzLe0PI9gqNIq8ZxmL5NI</string>
<string name="google_storage_bucket">mbmobilebanking6789.appspot.com</string>
<string name="hide_bottom_view_on_scroll_behavior">com.google.android.material.behavior.HideBottomViewOnScrollBehavior</string>
<string name="icon_content_description">Dialog Icon</string>
<string name="initSDK_getConfigFailed">SDK initialization failed</string>
<string name="initSDK_success">SDK initialization success</string>
<string name="insider_add_testdevice">https://mobile.useinsider.com/api/v1/test_device/add</string>
<string name="insider_amplification">https://mobile.useinsider.com/api/amplification/v1/poll</string>
<string name="insider_analytics">https://mobileanalytics.useinsider.com</string>
<string name="insider_custom_add_testdevice">/api/v1/test_device/add</string>
<string name="insider_custom_amplification">/api/amplification/v1/poll</string>
<string name="insider_custom_gdpr_consent_get">/api/v1/privacy/gdpr/consent/get</string>
<string name="insider_custom_gdpr_consent_set">/api/v1/privacy/gdpr/consent/set</string>
<string name="insider_custom_geofences">/api/v1/geofences</string>
<string name="insider_custom_geofences_notify">/api/v1/geofences/notify</string>
<string name="insider_custom_identity">/api/identity/v3/get</string>
<string name="insider_custom_message_center">/api/message_center/v2/sdk/get</string>
<string name="insider_gdpr_consent_get">https://mobile.useinsider.com/api/v1/privacy/gdpr/consent/get</string>
<string name="insider_gdpr_consent_set">https://mobile.useinsider.com/api/v1/privacy/gdpr/consent/set</string>
<string name="insider_get_geofences">https://mobile.useinsider.com/api/v1/geofences</string>
<string name="insider_get_geofences_notify">https://mobile.useinsider.com/api/v1/geofences/notify</string>
<string name="insider_identity">https://mobile.useinsider.com/api/identity/v3/get</string>
<string name="insider_logging">https://mobile.useinsider.com/api/logging/sdk/v2</string>
<string name="insider_message_center">https://mobile.useinsider.com/api/message_center/v2/sdk/get</string>
<string name="insider_platform">Android</string>
<string name="insider_session_custom_start">/api/v3/session/start</string>
<string name="insider_session_custom_stop">/api/v3/session/stop</string>
<string name="insider_session_start">https://mobile.useinsider.com/api/v3/session/start</string>
<string name="insider_session_stop">https://mobile.useinsider.com/api/v3/session/stop</string>
<string name="insider_wizard_custom_feed">/api/gandalf/v2/live_push</string>
<string name="insider_wizard_custom_init">/api/gandalf/v2/start_connection</string>
<string name="insider_wizard_custom_terminate">/api/gandalf/v2/stop_connection</string>
<string name="insider_wizard_feed">https://mobile.useinsider.com/api/gandalf/v2/live_push</string>
<string name="insider_wizard_init">https://mobile.useinsider.com/api/gandalf/v2/start_connection</string>
<string name="insider_wizard_terminate">https://mobile.useinsider.com/api/gandalf/v2/stop_connection</string>
<string name="item_view_role_description">Tab</string>
<string name="m3_ref_typeface_brand_regular">sans-serif</string>
<string name="m3_ref_typeface_plain_medium">sans-serif-medium</string>
<string name="m3_ref_typeface_plain_regular">sans-serif</string>
<string name="material_clock_display_divider">:</string>
<string name="material_clock_toggle_content_description">Select AM or PM</string>
<string name="material_hour_selection">Select hour</string>
<string name="material_hour_suffix">%1$s o'clock</string>
<string name="material_minute_selection">Select minutes</string>
<string name="material_minute_suffix">%1$s minutes</string>
<string name="material_motion_easing_accelerated">cubic-bezier(0.4, 0.0, 1.0, 1.0)</string>
<string name="material_motion_easing_decelerated">cubic-bezier(0.0, 0.0, 0.2, 1.0)</string>
<string name="material_motion_easing_emphasized">path(M 0,0 C 0.05, 0, 0.133333, 0.06, 0.166666, 0.4 C 0.208333, 0.82, 0.25, 1, 1, 1)</string>
<string name="material_motion_easing_linear">cubic-bezier(0.0, 0.0, 1.0, 1.0)</string>
<string name="material_motion_easing_standard">cubic-bezier(0.4, 0.0, 0.2, 1.0)</string>
<string name="material_slider_range_end">Range end,</string>
<string name="material_slider_range_start">Range start,</string>
<string name="material_timepicker_am">AM</string>
<string name="material_timepicker_clock_mode_description">Switch to clock mode for the time input.</string>
<string name="material_timepicker_hour">Hour</string>
<string name="material_timepicker_minute">Minute</string>
<string name="material_timepicker_pm">PM</string>
<string name="material_timepicker_select_time">Select time</string>
<string name="material_timepicker_text_input_mode_description">Switch to text input mode for the time input.</string>
<string name="mtrl_badge_numberless_content_description">New notification</string>
<string name="mtrl_chip_close_icon_content_description">Remove %1$s</string>
<string name="mtrl_exceed_max_badge_number_content_description">More than %1$d new notifications</string>
<string name="mtrl_exceed_max_badge_number_suffix">%1$d%2$s</string>
<string name="mtrl_picker_a11y_next_month">Change to next month</string>
<string name="mtrl_picker_a11y_prev_month">Change to previous month</string>
<string name="mtrl_picker_announce_current_selection">Current selection: %1$s</string>
<string name="mtrl_picker_cancel">@android:string/cancel</string>
<string name="mtrl_picker_confirm">OK</string>
<string name="mtrl_picker_date_header_selected">%1$s</string>
<string name="mtrl_picker_date_header_title">Select Date</string>
<string name="mtrl_picker_date_header_unselected">Selected date</string>
<string name="mtrl_picker_day_of_week_column_header">Column of days: %1$s</string>
<string name="mtrl_picker_invalid_format">Invalid format.</string>
<string name="mtrl_picker_invalid_format_example">Example: %1$s</string>
<string name="mtrl_picker_invalid_format_use">Use: %1$s</string>
<string name="mtrl_picker_invalid_range">Invalid range.</string>
<string name="mtrl_picker_navigate_to_year_description">Navigate to year %1$s</string>
<string name="mtrl_picker_out_of_range">Out of range: %1$s</string>
<string name="mtrl_picker_range_header_only_end_selected">Start date – %1$s</string>
<string name="mtrl_picker_range_header_only_start_selected">%1$s – End date</string>
<string name="mtrl_picker_range_header_selected">%1$s – %2$s</string>
<string name="mtrl_picker_range_header_title">Select Range</string>
<string name="mtrl_picker_range_header_unselected">Start date – End date</string>
<string name="mtrl_picker_save">Save</string>
<string name="mtrl_picker_text_input_date_hint">Date</string>
<string name="mtrl_picker_text_input_date_range_end_hint">End date</string>
<string name="mtrl_picker_text_input_date_range_start_hint">Start date</string>
<string name="mtrl_picker_text_input_day_abbr">d</string>
<string name="mtrl_picker_text_input_month_abbr">m</string>
<string name="mtrl_picker_text_input_year_abbr">y</string>
<string name="mtrl_picker_toggle_to_calendar_input_mode">Switch to calendar input mode</string>
<string name="mtrl_picker_toggle_to_day_selection">Tap to switch to selecting a day</string>
<string name="mtrl_picker_toggle_to_text_input_mode">Switch to text input mode</string>
<string name="mtrl_picker_toggle_to_year_selection">Tap to switch to selecting a year</string>
<string name="mtrl_timepicker_confirm">OK</string>
<string name="next_button">Next</string>
<string name="nfc_exit_screen_0_btn">Kết thúc</string>
<string name="not_set">Not set</string>
<string name="ocrGuidanceBottomSheet_buttonConfirm">Agree</string>
<string name="ocrGuidanceBottomSheet_line1">Please move the ID card into the frame</string>
<string name="ocrGuidanceBottomSheet_line2">Make sure the photo is easy to read, with no blur or loss of angle or flare</string>
<string name="ocrGuidanceBottomSheet_line3">Make sure your ID card is valid</string>
<string name="ocrGuidanceBottomSheet_title">Tutorial for taking photo of ID card</string>
<string name="ocrIntro_actionDetail">Please take a photo of your ID card to verify your information</string>
<string name="ocrIntro_actionTitle">ID card information</string>
<string name="ocrIntro_buttonChangeDocs">Change</string>
<string name="ocrIntro_buttonStartCapture">Start capturing</string>
<string name="ocrIntro_headerChooseDocs">Please select the type of document</string>
<string name="ocrIntro_popupBackButtonContinue">Continue</string>
<string name="ocrIntro_popupBackButtonStop">Cancel</string>
<string name="ocrIntro_popupBackMessage">Do you want to continue to register?</string>
<string name="ocrIntro_title">Verify information</string>
<string name="ocrIntro_videoDescription">-</string>
<string name="ocrScreen_actionBack">Back</string>
<string name="ocrScreen_actionButtonAccept">Accept</string>
<string name="ocrScreen_actionButtonCapture">Capture</string>
<string name="ocrScreen_actionButtonRetake">Retake</string>
<string name="ocrScreen_actionButtonRetry">Retry</string>
<string name="ocrScreen_actionFront">Front</string>
<string name="ocrScreen_actionPage2">Page 2</string>
<string name="ocrScreen_captureYourCardPrefix">Capture</string>
<string name="ocrScreen_cardCCCDLabel">Citizen identification</string>
<string name="ocrScreen_cardCCLabel">Citizen identification</string>
<string name="ocrScreen_cardCMNDLabel">Identification documents</string>
<string name="ocrScreen_cardPassportLabel">Passport</string>
<string name="ocrScreen_cardVNMilitaryLabel">Military ID card</string>
<string name="ocrScreen_errorIncorrectSide">You took the wrong side of the ID card. Please try again</string>
<string name="ocrScreen_errorLowQuality">Your photo is unqualified. Please retake a photo of ID</string>
<string name="ocrScreen_errorNoFace">Cannot find the face on your ID card. Please retake the photo</string>
<string name="ocrScreen_errorWrongCardOrInvalid">Your ID card is not fully captured. Please try again (OCR005)</string>
<string name="ocrScreen_faceNotMatchWithID">Your facial data on ID card and video do not match. Please try again</string>
<string name="ocrScreen_imageLowQuality">Your photo is unqualified. Please retake a photo of ID</string>
<string name="ocrScreen_infoEnsureYourCardIsReadable">Make sure your photos are easy to read, with no blur, loss of corners, or glare</string>
<string name="ocrScreen_infoPlaceDocumentInsideBorder">Please move the ID card into the frame</string>
<string name="ocrScreen_popupBackButtonContinue">Continue</string>
<string name="ocrScreen_popupBackButtonStop">Stop</string>
<string name="ocrScreen_popupBackMessage">Do you want to continue to register?</string>
<string name="ocrScreen_popupBackPrevButtonContinue">Yes</string>
<string name="ocrScreen_popupBackPrevButtonStop">No</string>
<string name="ocrScreen_popupBackPrevMessage">Do you want to go back to previous step?</string>
<string name="ocrScreen_warningCardRotated">Please keep your ID straight</string>
<string name="ocrScreen_warningNoFace">Cannot find the face on your ID card</string>
<string name="onboardingResult_authenFailed">Authentication failed</string>
<string name="onboardingResult_authenSuccess">Authentication successfully</string>
<string name="onboardingResult_getSessionFailed">Cannot receive the data of identification session. Please try again</string>
<string name="onboardingResult_hashBankUidMismatchWithBioId">Identifier and bioID do not match</string>
<string name="onboardingResult_hashBankUidNotFound">Cannot find the identifier</string>
<string name="onboardingResult_manualReview">Your data is being manually reviewed</string>
<string name="onboardingResult_matchingWithLocalImageFailed">Cannot identify your data on video and ID card</string>
<string name="onboardingResult_onboardingFailed">Authentication failed</string>
<string name="onboardingResult_onboardingSuccess">Successful registration with highest level</string>
<string name="onboardingResult_retryManyTimes">You have tried more than the permitted. Please contact the call center</string>
<string name="onboardingResult_supiciousFraud">Please try again. If not successful, please contact the call center</string>
<string name="onboardingResult_uploadEkycDataFailed">Cannot verify your data</string>
<string name="onboardingResult_userCancelled">You have exited the identification process</string>
<string name="onboardingResult_userNotQualifyToNextStep">You are not qualify to take the next step</string>
<string name="password_toggle_content_description">Show password</string>
<string name="path_password_eye">M12,4.5C7,4.5 2.73,7.61 1,12c1.73,4.39 6,7.5 11,7.5s9.27,-3.11 11,-7.5c-1.73,-4.39 -6,-7.5 -11,-7.5zM12,17c-2.76,0 -5,-2.24 -5,-5s2.24,-5 5,-5 5,2.24 5,5 -2.24,5 -5,5zM12,9c-1.66,0 -3,1.34 -3,3s1.34,3 3,3 3,-1.34 3,-3 -1.34,-3 -3,-3z</string>
<string name="path_password_eye_mask_strike_through">M2,4.27 L19.73,22 L22.27,19.46 L4.54,1.73 L4.54,1 L23,1 L23,23 L1,23 L1,4.27 Z</string>
<string name="path_password_eye_mask_visible">M2,4.27 L2,4.27 L4.54,1.73 L4.54,1.73 L4.54,1 L23,1 L23,23 L1,23 L1,4.27 Z</string>
<string name="path_password_strike_through">M3.27,4.27 L19.74,20.74</string>
<string name="permission_buttonAggree">Agree</string>
<string name="permission_buttonClose">Close</string>
<string name="permission_buttonGotoSetting">Go to "Settings"</string>
<string name="permission_cameraAndMicrophoneDescription">Please allow [APP_NAME] to access the camera and microphone for recording the video</string>
<string name="permission_cameraAndMicrophoneTitle">Please allow [APP_NAME] to access the camera and microphone </string>
<string name="permission_cameraDescription">Please allow [APP_NAME] to access the camera for taking selfie</string>
<string name="permission_cameraTitle">Please allow [APP_NAME] to access the camera</string>
<string name="permission_microphoneDescription">Please allow [APP_NAME] to access the microphone for recording</string>
<string name="permission_microphoneTitle">Please allow [APP_NAME] to access the microphone</string>
<string name="permission_noCameraOrMicrophonePermission">Please allow [APP_NAME] to access the camera and microphone in "Settings"</string>
<string name="preference_copied">"%1$s" copied to clipboard.</string>
<string name="project_id">mbmobilebanking6789</string>
<string name="qr_image">QR Image</string>
<string name="qr_receive_money">Receive QR</string>
<string name="rationale_ask">This app may not work correctly without the requested permissions.</string>
<string name="rationale_ask_again">This app may not work correctly without the requested permissions. Open the app settings screen to modify app permissions.</string>
<string name="rooted_device_msg_en">.</string>
<string name="rooted_device_msg_vi">.</string>
<string name="rooted_device_title_en">.</string>
<string name="rooted_device_title_vi">.</string>
<string name="search_menu_title">Search</string>
<string name="sgnfc_default_scanning">Please keep the card
until the process is completed</string>
<string name="sgnfc_fm_error_desc_not_supported">Your current device is not currently compatible
with NFC mode.
Please try on another device. or restart. </string>
<string name="sgnfc_fm_error_title_not_supported">Current device is not compatible</string>
<string name="sgnfc_fm_guidance1_title">Check your ID card</string>
<string name="sgnfc_fm_guidance1_title_2">Notes</string>
<string name="sgnfc_fm_guidance1_video_desc">Watch the instruction video before proceed</string>
<string name="sgnfc_fm_guidance1_warning_desc_1">1. Prepare vaild ID card</string>
<string name="sgnfc_fm_guidance1_warning_desc_2">2. Remove the phone case.</string>
<string name="sgnfc_fm_guidance1_warning_desc_3">3. Enable NFC and accept the permission if asked.</string>
<string name="sgnfc_fm_guidance1_warning_desc_4">4. Do like the video.</string>
<string name="sgnfc_fm_scan_demo_warning_desc_1">1. Prepare the ID card.</string>
<string name="sgnfc_fm_scan_demo_warning_desc_2">2. Put it to your phone backcover.</string>
<string name="sgnfc_fm_scan_demo_warning_desc_3">3. Move the ID card from bottom slowly until the device recognize it.</string>
<string name="sgnfc_fm_scan_demo_warning_desc_4">4. Keep the card scanning for 5-10 seconds.</string>
<string name="sgnfc_fm_scan_warning_desc_1">1. Put the ID card to your phone backcover.</string>
<string name="sgnfc_fm_scan_warning_desc_2">2. Slowly moving the ID card, until the device recognize it, then keep the card until the process is complete.</string>
<string name="status_bar_notification_info_overflow">999+</string>
<string name="summary_collapsed_preference_list">%1$s, %2$s</string>
<string name="text_click_setting_qr">Tap to setup QR</string>
<string name="text_online_loan">Online loan</string>
<string name="text_phone_recharge">Phone Topup</string>
<string name="text_recharge_phone_short">Phone Topup</string>
<string name="text_scan_qr">Scan QR</string>
<string name="text_transfer">Transfer</string>
<string name="title_activity_video_preview">VideoPreviewActivity</string>
<string name="title_settings_dialog">Permissions Required</string>
<string name="tp_loading_spinner_content_desc">Loading…</string>
<string name="ucrop_crop">Crop</string>
<string name="ucrop_error_input_data_is_absent">Both input and output Uri must be specified</string>
<string name="ucrop_label_edit_photo">Edit Photo</string>
<string name="ucrop_label_original">Original</string>
<string name="ucrop_menu_crop">Crop</string>
<string name="ucrop_mutate_exception_hint">Therefore, override color resource (ucrop_color_toolbar_widget) in your app to make it work on pre-L devices</string>
<string name="ucrop_rotate">Rotate</string>
<string name="ucrop_scale">Scale</string>
<string name="v7_preference_off">OFF</string>
<string name="v7_preference_on">ON</string>
<string name="preference_copied">Copied "%1$s" to clipboard.</string>
<string name="search_menu_title">Search</string>
<string name="status_bar_notification_info_overflow">999+</string>
<string name="summary_collapsed_preference_list">%1$s, %2$s</string>
<string name="tp_loading_spinner_content_desc">Loading…</string>
<string name="v7_preference_off">OFF</string>
<string name="v7_preference_on">ON</string>
</resources>

View file

@ -172,15 +172,9 @@ unpack_mbcp() {
rm -rf 'mbapk/mbapk_unpacked/root/assets/c7uFHgsHzlQ_T524_4N3h9neXvtcUg0m1ERhEjFpPI8_' rm -rf 'mbapk/mbapk_unpacked/root/assets/c7uFHgsHzlQ_T524_4N3h9neXvtcUg0m1ERhEjFpPI8_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/ccBu4aSM_mSaMBpFvr14pizu6EGMvwRiZltU_zVJMz0_' rm -rf 'mbapk/mbapk_unpacked/root/assets/ccBu4aSM_mSaMBpFvr14pizu6EGMvwRiZltU_zVJMz0_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/DcM3z3tolULDhbn8YrUE7hxOlxZx2oFC5yNQFG1SX9k_' rm -rf 'mbapk/mbapk_unpacked/root/assets/DcM3z3tolULDhbn8YrUE7hxOlxZx2oFC5yNQFG1SX9k_'
# v6.5.7+ and new zimperium need this, without it the app will crash in startup, libcode.so rm -rf 'mbapk/mbapk_unpacked/root/assets/fPGzhQFvISia1NiVGU8vQx9IpRm63E4_1Xv0Z2ypWUE_'
# is new pattern to detect v6.5.7+, older app base with old zimperium does not need this
# so i added condition check, whether if libcode.so is exist or not, if not then it will
# continue to delete the local model as before.
[ ! -f 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libcode.so' ] && rm -rf 'mbapk/mbapk_unpacked/root/assets/fPGzhQFvISia1NiVGU8vQx9IpRm63E4_1Xv0Z2ypWUE_'
# v6.5.9+ behavior (does not affect v6.5.7/v6.5.8 behavior)
[ ! -f 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libcode.so' ] && rm -rf 'mbapk/mbapk_unpacked/root/assets/2lclXWtX58GC8tXgJr1E_tmzpvS_K1Q7_0jHeXBaECc_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/GXNv8xc5IcVF6TyUgjJpyYFeyHGqUqN7ZS0X_2WRbEE_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/g9x205p_On9_RR4kI_GdsoQ2pfSrV_OQXSopshyhYVk_' rm -rf 'mbapk/mbapk_unpacked/root/assets/g9x205p_On9_RR4kI_GdsoQ2pfSrV_OQXSopshyhYVk_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/GXNv8xc5IcVF6TyUgjJpyYFeyHGqUqN7ZS0X_2WRbEE_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/H8leCCp85eX0YRvo4WCzqF5MEuj2_9ix6zL2bjnj6hk_' rm -rf 'mbapk/mbapk_unpacked/root/assets/H8leCCp85eX0YRvo4WCzqF5MEuj2_9ix6zL2bjnj6hk_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/Hput_BfAb8ftOt8hvazec24Eqk0gC5DDY6qALJMLtcI_' rm -rf 'mbapk/mbapk_unpacked/root/assets/Hput_BfAb8ftOt8hvazec24Eqk0gC5DDY6qALJMLtcI_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/MZuOOtdhO6pcGnZ5_kqMPh56hL3LqawBZd05vfIivww_' rm -rf 'mbapk/mbapk_unpacked/root/assets/MZuOOtdhO6pcGnZ5_kqMPh56hL3LqawBZd05vfIivww_'
@ -206,6 +200,7 @@ unpack_mbcp() {
rm -rf 'mbapk/mbapk_unpacked/root/assets/ccBu4aSM_mSaMBpFvr14pizu6EGMvwRiZltU_zVJMz0_' rm -rf 'mbapk/mbapk_unpacked/root/assets/ccBu4aSM_mSaMBpFvr14pizu6EGMvwRiZltU_zVJMz0_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/DcM3z3tolULDhbn8YrUE7hxOlxZx2oFC5yNQFG1SX9k_' rm -rf 'mbapk/mbapk_unpacked/root/assets/DcM3z3tolULDhbn8YrUE7hxOlxZx2oFC5yNQFG1SX9k_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/eB0ZLvEtv8_qoOAcmcB19tx0pnT_RXKn5WU3rOVgK4k_' rm -rf 'mbapk/mbapk_unpacked/root/assets/eB0ZLvEtv8_qoOAcmcB19tx0pnT_RXKn5WU3rOVgK4k_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/fPGzhQFvISia1NiVGU8vQx9IpRm63E4_1Xv0Z2ypWUE_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/g9x205p_On9_RR4kI_GdsoQ2pfSrV_OQXSopshyhYVk_' rm -rf 'mbapk/mbapk_unpacked/root/assets/g9x205p_On9_RR4kI_GdsoQ2pfSrV_OQXSopshyhYVk_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/GXNv8xc5IcVF6TyUgjJpyYFeyHGqUqN7ZS0X_2WRbEE_' rm -rf 'mbapk/mbapk_unpacked/root/assets/GXNv8xc5IcVF6TyUgjJpyYFeyHGqUqN7ZS0X_2WRbEE_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/H8leCCp85eX0YRvo4WCzqF5MEuj2_9ix6zL2bjnj6hk_' rm -rf 'mbapk/mbapk_unpacked/root/assets/H8leCCp85eX0YRvo4WCzqF5MEuj2_9ix6zL2bjnj6hk_'
@ -226,6 +221,7 @@ unpack_mbcp() {
rm -rf 'mbapk/mbapk_unpacked/root/assets/ZOKOK1a6XCiqYb_a8bYPE9c0rjUf7_n7k77YxX5Ypdw_' rm -rf 'mbapk/mbapk_unpacked/root/assets/ZOKOK1a6XCiqYb_a8bYPE9c0rjUf7_n7k77YxX5Ypdw_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/zxHdhL4_ZEQLQeo8R2DzSYl9PGss_cKSCQTcZGBtVmU_' rm -rf 'mbapk/mbapk_unpacked/root/assets/zxHdhL4_ZEQLQeo8R2DzSYl9PGss_cKSCQTcZGBtVmU_'
# New zimperium for v6.4.67+ # New zimperium for v6.4.67+
rm -rf 'mbapk/mbapk_unpacked/root/assets/2lclXWtX58GC8tXgJr1E_tmzpvS_K1Q7_0jHeXBaECc_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/EHFtsAf7MYH_M7kQF1YX8LeWfU1_RjdRH62oJRE0v38_' rm -rf 'mbapk/mbapk_unpacked/root/assets/EHFtsAf7MYH_M7kQF1YX8LeWfU1_RjdRH62oJRE0v38_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/KZsyhtgSOXgFDPIf88NF5svaDH3xQ8feGsAQiy1c9_s_' rm -rf 'mbapk/mbapk_unpacked/root/assets/KZsyhtgSOXgFDPIf88NF5svaDH3xQ8feGsAQiy1c9_s_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/mT0VvAZ00szUCjj1fIELzEtu8jyGYugItWXzMzctw5s_' rm -rf 'mbapk/mbapk_unpacked/root/assets/mT0VvAZ00szUCjj1fIELzEtu8jyGYugItWXzMzctw5s_'
@ -240,10 +236,7 @@ unpack_mbcp() {
# New zimperium for v6.4.72+ # New zimperium for v6.4.72+
rm -rf 'mbapk/mbapk_unpacked/root/assets/Z1YbTXaPlMjbmWCKXXD0m4wkWyE0I6xxDebGhXz5igk_' rm -rf 'mbapk/mbapk_unpacked/root/assets/Z1YbTXaPlMjbmWCKXXD0m4wkWyE0I6xxDebGhXz5igk_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/zxwCzUaZ8itWQeAMKtyu52RbljJe1Pd8GuV7H4RPsy4_' rm -rf 'mbapk/mbapk_unpacked/root/assets/zxwCzUaZ8itWQeAMKtyu52RbljJe1Pd8GuV7H4RPsy4_'
# New zimperium for v6.5.7+
rm -rf 'mbapk/mbapk_unpacked/root/assets/BHCdF10ojcfyA7xfkrsMHYFMRUCn2CVYK6zKEnI8Jdc_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/i_4CYiKEHQ3wTzTlrx_YVNIvHCgFjnkpMtMf4pgDlic_'
rm -rf 'mbapk/mbapk_unpacked/root/assets/OrE6E3b6dxQnoToaT2eLN48gKz8_Iui_eFezclhtVQk_'
info "Creating [mbcp_info] folder..." info "Creating [mbcp_info] folder..."
mkdir 'mbapk/mbapk_unpacked/root/assets/mbcp_info/' mkdir 'mbapk/mbapk_unpacked/root/assets/mbcp_info/'
@ -313,15 +306,7 @@ convert_apks() {
info "You probably can continue to unpack APK!" info "You probably can continue to unpack APK!"
} }
newbehavior() {
warn "App is newer v6.5.15+! Patches continue to work, but you can't login"
warn "Until a workaround is implemented :("
confirm || exit 1
}
run_patcher() { run_patcher() {
# check v6.5.15+
[ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libnframes.so ] && newbehavior
is_unpacked_lib && bash ./parse.sh && bash ./patch.sh is_unpacked_lib && bash ./parse.sh && bash ./patch.sh
} }
@ -337,7 +322,7 @@ echo "Original APK must be inside [mbapk] folder !"
echo ------------------------------------------------------------- echo -------------------------------------------------------------
echo "Current commit : $COMMIT ($BRANCH)" echo "Current commit : $COMMIT ($BRANCH)"
echo "Source code : https://git.disroot.org/mbcp/mbbpatch.git" echo "Source code : https://git.disroot.org/mbcp/mbbpatch.git"
echo "Documentation : see [README.md] or [docs] folder" echo "Documentation : see [docs] folder"
echo "Written from scratch by Cuynu with love <3" echo "Written from scratch by Cuynu with love <3"
echo ------------------------------------------------------------- echo -------------------------------------------------------------
echo App status : $(successunpack) echo App status : $(successunpack)
@ -463,35 +448,32 @@ done
info "Cleared !" info "Cleared !"
;; ;;
'Install patched app' ) 'Install patched app' )
echo 'Choose install options :' info 'Select your patched version to continue'
ls mbcpapp_apk | grep -q MBCP_Flutter_SelfPatched_$(git rev-parse --short HEAD).apk || err "Couldn't find APK with current commit ID, you might already do new commits : $(git rev-parse --short HEAD)" || warn "Please repack APK again after each new commits !" PS3='Select patched version to continue, or [4] to quit : '
PS3='Select option to continue, or [3] to quit : ' select opt in 'App patched with newer version [v6.4.59+]' 'App patched with specific version' 'App patched with older version [v6.4.55 or lower]' 'Exit'
select opt in 'Install & open app' 'Install & delete local detection model & open app' 'Exit'
do do
if [ "$opt" == 'Install & open app' ]; then if [ "$opt" == 'App patched with newer version [v6.4.59+]' ]; then
if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ] if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ]
then then
warn "MBCP Helper / CorePatch must be installed with disable digest verify on !!!" warn "MBCP Helper / CorePatch must be installed with disable digest verify on !!!"
warn "You must have connected Android device with USB debugging turned on in order to install !!!" warn "You must have connected Android device with USB debugging turned on in order to install !!!"
adb kill-server adb kill-server
adb start-server adb start-server
adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk" | grep -q Success && echo "App installation successful! Opening app..." && adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity || echo "Failed to install app, please check your device!" adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk"
adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
else else
err "[MBCP_Flutter_SelfPatched_$COMMIT.apk] not found, cannot continue !" err "[MBCP_Flutter_SelfPatched_$COMMIT.apk] not found, cannot continue !"
fi fi
elif [ "$opt" == 'Install & delete local detection model & open app' ]; then elif [ "$opt" == 'App patched with specific version' ]; then
# handle method for newer app
[ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libcode.so ] && warn "This method works best with v6.4.58 ~ v6.5.6. For newer app please block Zimperium host first !"
if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ] if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ]
then then
warn "MBCP Helper / CorePatch must be installed with disable digest verify on !!!" warn "MBCP Helper / CorePatch must be installed with disable digest verify on !!!"
warn "You must have connected Android device with USB debugging turned on in order to install !!!" warn "You must have connected Android device with USB debugging turned on in order to install !!!"
adb kill-server adb kill-server
adb start-server adb start-server
adb shell [ -f /system/bin/su ] || warn "No su binary found in [/system/bin/su] from connected device. Root-related commands will not work!!" adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk"
adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk" | grep -q Success && echo "App installation successful! Opening app..." && adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity || echo "Failed to install app, please check your device!"
# Delete zimperium detection files # Delete zimperium detection files
adb shell su -c rm -rf /data/data/com.mbmobile/files/0* adb shell su -c rm -rf /data/data/com.mbmobile/files/0*
adb shell su -c rm -rf /data/data/com.mbmobile/files/1* adb shell su -c rm -rf /data/data/com.mbmobile/files/1*
@ -505,7 +487,6 @@ do
adb shell su -c rm -rf /data/data/com.mbmobile/files/9* adb shell su -c rm -rf /data/data/com.mbmobile/files/9*
adb shell su -c rm -rf /data/data/com.mbmobile/files/KNOV3PN* adb shell su -c rm -rf /data/data/com.mbmobile/files/KNOV3PN*
adb shell su -c rm -rf /data/data/com.mbmobile/files/zxpolicyme* adb shell su -c rm -rf /data/data/com.mbmobile/files/zxpolicyme*
adb shell su -c rm -rf /data/data/com.mbmobile/files/zxpolicymd*
adb shell su -c rm -rf /data/data/com.mbmobile/files/policyme* adb shell su -c rm -rf /data/data/com.mbmobile/files/policyme*
warn "ATTENTION : Network traffic will be redirected to [medium.com] for 20 seconds !!!" warn "ATTENTION : Network traffic will be redirected to [medium.com] for 20 seconds !!!"
adb shell su -c 'iptables -t nat -A OUTPUT -p tcp -d 0/0 -j DNAT --to-destination 162.159.153.4:443' adb shell su -c 'iptables -t nat -A OUTPUT -p tcp -d 0/0 -j DNAT --to-destination 162.159.153.4:443'
@ -518,6 +499,20 @@ do
err "[MBCP_Flutter_SelfPatched_$COMMIT.apk] not found, cannot continue !" err "[MBCP_Flutter_SelfPatched_$COMMIT.apk] not found, cannot continue !"
fi fi
elif [ "$opt" == 'App patched with older version [v6.4.55 or lower]' ]; then
if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ]
then
warn "MBCP Helper / CorePatch must be installed with disable digest verify on !!!"
warn "You must have connected Android device with USB debugging turned on in order to install !!!"
adb kill-server
adb start-server
adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk"
adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
else
err "[MBCP_Flutter_SelfPatched_$COMMIT.apk] not found, cannot continue !"
fi
elif [ "$opt" == 'Exit' ]; then elif [ "$opt" == 'Exit' ]; then
PS3='Please select options to continue : ' PS3='Please select options to continue : '
break break

View file

@ -15,18 +15,11 @@ nochiptext() {
rm -rf strings_temp rm -rf strings_temp
} }
no_resolution() {
warn "App newer than v6.5.7+ ! Using specific strings file instead..."
cp -f 'blob_patches/resources/strings_newapp.xml' 'mbapk/mbapk_unpacked/resources/package_1/res/values/strings.xml'
}
info "Copying modified resources..." info "Copying modified resources..."
cp -r -f 'blob_patches/resources/raw' 'mbapk/mbapk_unpacked/resources/package_1/res/' cp -r -f 'blob_patches/resources/raw' 'mbapk/mbapk_unpacked/resources/package_1/res/'
cp -f 'blob_patches/resources/strings-vi/strings.xml' 'mbapk/mbapk_unpacked/resources/package_1/res/values-vi/' cp -f 'blob_patches/resources/strings-vi/strings.xml' 'mbapk/mbapk_unpacked/resources/package_1/res/values-vi/'
[ $(cat mbapk/mbapk_unpacked/resources/package_1/res/values/strings.xml | grep chip_text) ] && cp -f 'blob_patches/resources/strings/strings.xml' 'mbapk/mbapk_unpacked/resources/package_1/res/values/' || nochiptext [ $(cat mbapk/mbapk_unpacked/resources/package_1/res/values/strings.xml | grep chip_text) ] && cp -f 'blob_patches/resources/strings/strings.xml' 'mbapk/mbapk_unpacked/resources/package_1/res/values/' || nochiptext
[ $(cat mbapk/mbapk_unpacked/resources/package_1/res/values/strings.xml | grep -q RESOLUTION) ] && cp -f 'blob_patches/resources/strings/strings.xml' 'mbapk/mbapk_unpacked/resources/package_1/res/values/' || no_resolution
info "Copying bootleg_ekyc..." info "Copying bootleg_ekyc..."
cp -f 'blob_patches/bootleg_ekyc/dotp1_ekyc.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/digitalOtp_img_authenguide01.webp' cp -f 'blob_patches/bootleg_ekyc/dotp1_ekyc.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/digitalOtp_img_authenguide01.webp'
cp -f 'blob_patches/bootleg_ekyc/dotp2_ekyc.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/digitalOtp_img_authenguide02.webp' cp -f 'blob_patches/bootleg_ekyc/dotp2_ekyc.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/digitalOtp_img_authenguide02.webp'

View file

@ -1,6 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# PATCHNAME: Block adjust volume on sEKYC # PATCHNAME: Block adjust volume on sEKYC
# MAXVER: 6.4.85 # MAXVER:
# MINVER: # MINVER:
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. "$DIRPATH"/common.sh . "$DIRPATH"/common.sh

View file

@ -1,8 +0,0 @@
#!/usr/bin/env bash
# PATCHNAME: Remove QR Scanner Wave
# MAXVER:
# MINVER:
# shellcheck disable=SC1091
. "$DIRPATH"/common.sh
rm -f "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/ic_wave_qr_scanner.webp

View file

@ -5,11 +5,8 @@
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. "$DIRPATH"/common.sh . "$DIRPATH"/common.sh
# remove libvvb2060.so (only for older app verion : v6.5.6 or older)
# in newer app, removing it will trigger checksum failing error (GW934 - Re-install app to continue using app)
[ ! -f 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libcode.so' ] && rm -rf 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libvvb2060.so'
[ ! -f 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libcode.so' ] && rm -rf 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libvvb2060.so'
# remove rootbeer simple check (used in singalarity ekyc)
rm -rf 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libtoolChecker.so' rm -rf 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libtoolChecker.so'
rm -rf 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libtoolChecker.so' rm -rf 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libtoolChecker.so'
rm -rf 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libvvb2060.so'
rm -rf 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libvvb2060.so'

View file

@ -12,46 +12,22 @@
info "Spoofing app version..." info "Spoofing app version..."
# v6.5.2x
sed -i 's|"6.5.29"|"6.5.29.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.28"|"6.5.28.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.27"|"6.5.27.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.26"|"6.5.26.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.25"|"6.5.25.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.24"|"6.5.24.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.23"|"6.5.23.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.22"|"6.5.22.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.21"|"6.5.21.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.20"|"6.5.20.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
# v6.5.1x
sed -i 's|"6.5.19"|"6.5.19.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.18"|"6.5.18.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.17"|"6.5.17.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.16"|"6.5.16.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.15"|"6.5.15.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.14"|"6.5.14.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.13"|"6.5.13.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.12"|"6.5.12.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.11"|"6.5.11.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.10"|"6.5.10.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
# v6.5.x # v6.5.x
sed -i 's|"6.5.9"|"6.5.9.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.5.9|6.5.9.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.8"|"6.5.8.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.5.8|6.5.8.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.7"|"6.5.7.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.5.7|6.5.7.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.6"|"6.5.6.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.5.6|6.5.6.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.5"|"6.5.5.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.5.5|6.5.5.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.4"|"6.5.4.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.5.4|6.5.4.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.3"|"6.5.3.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.5.3|6.5.3.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.2"|"6.5.2.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.5.2|6.5.2.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.1"|"6.5.1.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.5.1|6.5.1.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|"6.5.0"|"6.5.0.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.5.0|6.5.0.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
# v6.4.9x # v6.4.9x
sed -i 's|6.4.99|6.4.99.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.4.99|6.4.99.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.98|6.4.98.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.4.98|6.4.98.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.97|6.4.97.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.4.97|6.4.97.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.96|6.4.96.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.4.96|6.4.96.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.95|6.4.95.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.4.95|6.4.95.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.94|6.4.94.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.4.94|6.4.94.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
@ -112,7 +88,7 @@ sed -i 's|6.4.49|6.4.49.old|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.48|6.4.48.old|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.4.48|6.4.48.old|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|6.4.47|6.4.47.old|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|6.4.47|6.4.47.old|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
# versionCode spoofing to prevent in-app forced update dialog, and play store / aurora store from replacing with original app :>
sed -i 's|704|1000|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|704|1000|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|712|1001|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|712|1001|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|727|2000|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|727|2000|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
@ -134,43 +110,6 @@ sed -i 's|744|2014|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|745|2015|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|745|2015|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|746|2016|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|746|2016|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|747|2017|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|747|2017|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|749|2018|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|750|2019|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|751|2020|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|752|2021|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|753|2022|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|754|2023|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|755|2024|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|756|2025|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|757|2026|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|758|2027|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
# v6.5.14
sed -i 's|759|2028|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
# other versions
sed -i 's|760|2028|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|761|2029|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|762|2030|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|763|2031|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|764|2032|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|765|2033|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|766|2034|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|767|2035|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|768|2036|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|769|2037|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|770|2038|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|771|2039|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|772|2040|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|773|2041|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|774|2042|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|775|2043|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|776|2044|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|777|2045|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|778|2046|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|779|2047|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|780|2048|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|781|2049|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|782|2050|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|v6.4.66|v6.4.68|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|v6.4.66|v6.4.68|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
sed -i 's|v6.4.65|v6.4.68|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|v6.4.65|v6.4.68|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'

View file

@ -5,7 +5,4 @@
# shellcheck disable=SC1091 # shellcheck disable=SC1091
. "$DIRPATH"/common.sh . "$DIRPATH"/common.sh
# applies for v6.4.62 ~ v6.5.19
sed -i 's|android:targetSdkVersion="35"|android:targetSdkVersion="34"|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml sed -i 's|android:targetSdkVersion="35"|android:targetSdkVersion="34"|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml
# applies for v6.5.20+
sed -i 's|android:targetSdkVersion="36"|android:targetSdkVersion="34"|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml

View file

@ -18,18 +18,6 @@
> >
> Older releases (v6.4.90 or older) has mismatch commit ID with this new repo, for reference to the exactly same commit, see [MBCP_VersionReference.md](MBCP_VersionReference.md) in repository. > Older releases (v6.4.90 or older) has mismatch commit ID with this new repo, for reference to the exactly same commit, see [MBCP_VersionReference.md](MBCP_VersionReference.md) in repository.
## Checksum
- More information about checksum measure :
<details>
- Since v6.5.15+, the checksum is more strict, see [this explain](docs/checksum_newapp.md) for more details.
- The checksum measure (which throws GW934 as response) is known enabled from the server-side (v6.4.64 works since days 0, but return with GW934 error after 11 days), it requires client (MBCP/MBBank) app to sent the SHA256 hash of 3 app libraries `libapp.so` | `libmbshield.so` | `libclosestmadagascar.so` and all of 5 dex files (classes1->5.dex) to the server for comparing hash, and if it doesn't match, the server will prevent the app from logging in with GW934 error : `Re-install app to continue using app.`
- The other function (eg: DigitalOTP) that works without logging in still works.
</details>
## Introduction ## Introduction
> Fact : MBCP / MBZDefend-Fix is my "hobby project", I maintain it in my free times :> > Fact : MBCP / MBZDefend-Fix is my "hobby project", I maintain it in my free times :>
@ -62,48 +50,46 @@
## Patches list : ## Patches list :
**Not seeing Zimperium bypass?** It is moved to legacy patch, local Zimperium model is already removed when you unpack APK, just apply other patch, repack and use [MBZDefend-Fix](/mbcp/mbzdefend-fix/releases) module to bypass the detection.
</details> </details>
### [📦 `MB Bank : com.mbmobile`](https://t.me/embeeapks) ### [📦 `MB Bank : com.mbmobile`](https://t.me/embeeapks)
> Any version from v6.4.63 and above should be patchable, but some version, such as v6.5.15, or v6.4.67+ has enhanced checksum mechanism, the patch still works, but the app itself will refuse to login. *Last updated situation: 2026/09/09*
<details> <details>
| ⚙️ Patch | 📜 Description | 🏦 Suggested version | | ⚙️ Patch | 📜 Description | 🏦 Suggested version |
|:--------:|:--------------:|:-----------------:| |:--------:|:--------------:|:-----------------:|
| `Add verified badge` | Replaces the MIC protection shield with verified badge to make it looks more cute :3 | v6.4.0 ~ v6.5.14 | | `Add verified badge` | Replaces the MIC protection shield with verified badge to make it looks more cute :3 | v6.4.0 ~ v6.5.6 |
| `Adaptive launcher icon` | Adds the adaptive & themed icon support to the app. Thanks to @fukiame ! | v6.4.0 ~ v6.5.14 | | `Adaptive launcher icon` | Adds the adaptive & themed icon support to the app. Thanks to @fukiame ! | v6.4.0 ~ v6.5.6 |
| `Proper notification icon` | Temporary fixes for the app notification icon. Thanks to @fukiame ! | v6.4.0 ~ v6.5.14 | | `Proper notification icon` | Temporary fixes for the app notification icon. Thanks to @fukiame ! | v6.4.0 ~ v6.5.6 |
| `Better custom background screen` | Replace the preview custom background from awful to useful. | v6.4.84 ~ v6.5.14 | | `Block adjust volume on sEKYC` | Prevent the device volume from being adjusted when entering eKYC activity. (Hidden for v6.4.67+) | v6.4.0 ~ v6.5.6 |
| `Change app logo` | Change the app logo with set of icons. | v6.4.0 ~ v6.5.14 | | `Better custom background screen` | Replace the preview custom background from awful to useful. | v6.4.84 ~ v6.5.6 |
| `Change widget background to dark ` | Change widget background to dark if you use MBBHomeWidget. | v6.4.0 ~ v6.5.14 | | `Change app logo` | Change the app logo with set of icons. | v6.4.0 ~ v6.5.6 |
| `Custom VTAP screen` | Warn users about critical VTAP trigger error from app. | v6.4.53 ~ v6.5.14 | | `Change widget background to dark ` | Change widget background to dark if you use MBBHomeWidget. | v6.4.0 ~ v6.5.6 |
| `Custom sub-badge` | Replace original animated promotion badge with static badge for Basic users | v6.4.44 ~ v6.5.14 | | `Custom VTAP screen` | Warn users about critical VTAP trigger error from app. | v6.4.53 ~ v6.5.6 |
| `Disable MB Membership` | Disable the MB Membership badge below pfp and all of it's features. (limited features with v6.4.67+) | v6.4.0 ~ v6.5.14 | | `Custom sub-badge` | Replace original animated promotion badge with static badge for Basic users | v6.4.44 ~ v6.5.6 |
| `Tian37 Fix` | Nuke detection points within Tian37 libraries. (Causing GW934 error for v6.5.7+) | v6.4.87 ~ v6.5.14 | | `Disable MB Membership` | Disable the MB Membership badge below pfp and all of it's features. (limited features with v6.4.67+) | v6.4.0 ~ v6.5.6 |
| `Force portrait screen` | Force the screen always portrait on app, especially when launching app. | v6.4.0 ~ v6.5.14 | | `Tian37 Fix` | Nuke detection points within Tian37 libraries. | v6.4.87 ~ v6.5.6 |
| `Fix VTAP certificate` | Update or downgrade VTAP certificate for older/newer app version, so it can work again in future. Read `docs/fix-vtap-cert.md` to know how to use it. | v6.4.67 ~ v6.5.14 | | `Force portrait screen` | Force the screen always portrait on app, especially when launching app. | v6.4.0 ~ v6.5.6 |
| `Remove MB AI Slop resources` | Remove the MB AI slop resources from app. | v6.4.74 ~ v6.5.14 | | `Fix VTAP certificate` | Update or downgrade VTAP certificate for older/newer app version, so it can work again in future. | v6.4.67 ~ v6.5.6 |
| `Remove MB Themes Store` | Remove the MB Themes Store banner from Themes list, preventing access to MB Theme Store. | v6.4.28 ~ v6.5.14 | | `Remove MB AI Slop resources` | Remove the MB AI slop resources from app. | v6.4.74 ~ v6.5.6 |
| `Remove invoke to zShield` | Make the app stop invoking to zShield when opening (MainActivity) and (MBBHomeWidgetQR) only (causing GW934 error for v6.4.67+) | v6.4.22 ~ v6.5.14 | | `Remove MB Themes Store` | Remove the MB Themes Store banner from Themes list, preventing access to MB Theme Store. | v6.4.28 ~ v6.5.6 |
| `Remove built-in fonts` | Remove app font and force to use device font for most app components. | v6.4.0 ~ v6.5.14 | | `Remove invoke to zShield` | Make the app stop invoking to zShield when opening (MainActivity) and (MBBHomeWidgetQR) only (Hidden for v6.4.67+) | v6.4.22 ~ v6.5.6 |
| `Modify app theme` | Modify the built-in app theme from original one to other themes. | v6.4.30 ~ v6.5.14 | | `Remove new zimperium check` | Remove the new Zimperium (ZDefend) root detection from app. Picked up from Legacy Patch. (Hidden for v6.4.67+) | v6.4.60 ~ v6.5.6 |
| `Remove garbage permission and activities` | Removes tracking permission & activities from app. | v6.4.0 ~ v6.5.14 | | `Remove built-in fonts` | Remove app font and force to use device font for most app components. | v6.4.0 ~ v6.5.6 |
| `Revert old eMBee logo` | Revert old eMBee logo, especially on product consultation options. | v6.4.53 ~ v6.5.14 | | `Modify app theme` | Modify the built-in app theme from original one to other themes. | v6.4.30 ~ v6.5.6 |
| `Remove useless libraries` | Remove the useless libraries from app, only for v6.4.67+ | v6.4.67 ~ v6.5.14 | | `Remove garbage permission and activities` | Removes tracking permission & activities from app. | v6.4.0 ~ v6.5.6 |
| `Remove animated QR background` | Remove the animated QR background from bottom navigation bar and replace with white background. | v6.4.43 ~ v6.5.14 | | `Revert old eMBee logo` | Revert old eMBee logo, especially on product consultation options. | v6.4.53 ~ v6.5.6 |
| `Remove VNPAY VMB20` | Remove the VNPAY Airplane related activities. | v6.4.55 ~ v6.5.14 | | `Remove useless libraries` | Remove the useless libraries from app, only for v6.4.67+ | v6.4.67 ~ v6.5.6 |
| `Restore old registration resources` | Restore old resources on `onboarding` page. | v6.4.48 ~ v6.5.14 | | `Remove animated QR background` | Remove the animated QR background from bottom navigation bar and replace with white background. | v6.4.43 ~ v6.5.6 |
| `Hide VTAP root detection activity & dialog` | Hide the old root detection screen and dialog showing "Device is rooted" (might have issues with some HyperOS ROMs). (causing GW934 error for v6.4.67+) | v6.4.0 ~ v6.5.14 | | `Remove VNPAY VMB20` | Remove the VNPAY Airplane related activities. | v6.4.55 ~ v6.5.6 |
| `Legacy hide VTAP activity & dialog` | Hide the first root detection screen with dialog showing "Device is rooted" but not bypassing it. (GW908 will still present, unlike standard `Hide VTAP root detection activity & dialog` patch). Only use for some ugly ROMs which is crashing with standard patch. (Causing GW934 error for v6.4.67+) | v6.4.53 ~ v6.5.14 | | `Restore old registration resources` | Restore old resources on `onboarding` page. | v6.4.48 ~ v6.5.6 |
| `Remove protection shield` | Remove the MIC protection shield on profile picture and login screen. (not app protection) | v6.4.0 ~ v6.5.14 | | `Hide VTAP root detection activity & dialog` | Hide the old root detection screen and dialog showing "Device is rooted" (might have issues with some HyperOS ROMs). (Hidden for v6.4.67+) | v6.4.0 ~ v6.5.6 |
| `Remove app from launcher` | Remove the app icon from launcher, and start with `am start` or with MBZDefend-Fix Action/Termux. | v6.4.0 ~ v6.5.14 | | `Legacy hide VTAP activity & dialog` | Hide the first root detection screen with dialog showing "Device is rooted" but not bypassing it. (GW908 will still present, unlike standard `Hide VTAP root detection activity & dialog` patch). Only use for some ugly ROMs which is crashing with standard patch. (Hidden for v6.4.67+) | v6.4.53 ~ v6.5.6 |
| `Set targetSdkVersion to 34` | Set the `targetSdkVersion` to 34 (Android 14) to prevent UI issues on some activities. | v6.4.10 ~ v6.5.14 | | `Remove protection shield` | Remove the MIC protection shield on profile picture and login screen. (not app protection) | v6.4.0 ~ v6.5.6 |
| `Add modified resources` | Adds the specific strings for MBCP on eKYC phases, and modify the DigiBank logo. | v6.4.0 ~ v6.5.14 | | `Remove app from launcher` | Remove the app icon from launcher, and start with `am start` or with MBZDefend-Fix Action/Termux. | v6.4.0 ~ v6.5.6 |
| `Add anime resources` | Adds anime-related resources to some components inside app. | v6.4.45 ~ v6.5.14 | | `Set targetSdkVersion to 34` | Set the `targetSdkVersion` to 34 (Android 14) to prevent UI issues on some activities. | v6.4.10 ~ v6.5.6 |
| `Add modified resources` | Adds the specific strings for MBCP on eKYC phases, and modify the DigiBank logo. | v6.4.0 ~ v6.5.6 |
| `Add anime resources` | Adds anime-related resources to some components inside app. | v6.4.45 ~ v6.5.6 |
</details> </details>
@ -121,7 +107,6 @@
| `Bypass blacklist IP hashes` | Bypass the block list of some IP hashes. | v6.4.50 ~ v6.4.66 | | `Bypass blacklist IP hashes` | Bypass the block list of some IP hashes. | v6.4.50 ~ v6.4.66 |
| `Bypass forced update dialog` | Bypass forced update dialog from app. | v6.4.0 ~ v6.4.66 | | `Bypass forced update dialog` | Bypass forced update dialog from app. | v6.4.0 ~ v6.4.66 |
| `Bypass malicious app check` | Bypass malicious app check from app. | v6.4.10 ~ v6.4.66 | | `Bypass malicious app check` | Bypass malicious app check from app. | v6.4.10 ~ v6.4.66 |
| `Block adjust volume on sEKYC` | Prevent the device volume from being adjusted when entering eKYC activity. (causing GW934 error for v6.4.67+) | v6.4.0 ~ v6.4.85 |
| `XPE003 Fix` | Fix XPE003 issues when use bypass zimperium patch. | v6.4.56 ~ v6.4.66 | | `XPE003 Fix` | Fix XPE003 issues when use bypass zimperium patch. | v6.4.56 ~ v6.4.66 |
| `Bypass GW934 checksum` | Bypass the GW934 error rolled-out from MB server-side which prevent MBCP users from logging in to app. Only use this after applied all your patch needs. | v6.4.64 ~ v6.4.66 | | `Bypass GW934 checksum` | Bypass the GW934 error rolled-out from MB server-side which prevent MBCP users from logging in to app. Only use this after applied all your patch needs. | v6.4.64 ~ v6.4.66 |
| `Remove custom profile picture` | Force the use of default profile picture instead of your current one on MB's server side. | v6.4.0 ~ v6.4.66 | | `Remove custom profile picture` | Force the use of default profile picture instead of your current one on MB's server side. | v6.4.0 ~ v6.4.66 |
@ -133,7 +118,6 @@
| `Bypass accessibility & malicious apps check` | Remove the restriction of using the app when an app using accessibility service or "malicious apps" like (HideMyAppList) installed. | v6.4.25 ~ v6.4.54 | | `Bypass accessibility & malicious apps check` | Remove the restriction of using the app when an app using accessibility service or "malicious apps" like (HideMyAppList) installed. | v6.4.25 ~ v6.4.54 |
| `Remove new root detection` | Remove the new Zimperium (ZDefend) root detection from app. (Now requires workaround for v6.4.56+) | v6.4.15 ~ v6.4.58 | | `Remove new root detection` | Remove the new Zimperium (ZDefend) root detection from app. (Now requires workaround for v6.4.56+) | v6.4.15 ~ v6.4.58 |
| `Bypass new zimperium detection` | Bypass the root check from Zimperium within app. | v6.4.56 ~ v6.4.63 | | `Bypass new zimperium detection` | Bypass the root check from Zimperium within app. | v6.4.56 ~ v6.4.63 |
| `Remove new zimperium check` | Remove the new Zimperium (ZDefend) root detection from app. Picked up from Legacy Patch. (causing GW934 error for v6.4.67+) | v6.4.60 ~ v6.5.6 |
</details> </details>
@ -350,6 +334,15 @@ Early note : When I created @mbbmod channel back in 2023, no one knows it for mo
- [x] Adapt new v6.4.68 trungthu theme - [x] Adapt new v6.4.68 trungthu theme
## Old measure
- More information about GW934 measure :
<details>
- The `GW934` error is known enabled from the server-side (v6.4.64 works since days 0, but return with GW934 error after 11 days), it requires client (MBCP/MBBank) app to sent the SHA256 hash of 3 app libraries `libapp.so` | `libmbshield.so` | `libclosestmadagascar.so` and all of 5 dex files (classes1->5.dex) to the server for comparing hash, and if it doesn't match, the server will prevent the app from logging in with GW934 error : `Re-install app to continue using app.`
- The other function (eg: DigitalOTP) that works without logging in still works.
</details>
## Credits ## Credits
- [apktool](https://github.com/iBotPeaches/Apktool) - [apktool](https://github.com/iBotPeaches/Apktool)

View file

@ -1,43 +0,0 @@
# MBBank v6.5.15+ checksum list
in first day of v6.5.15+ released, there is no such checksum, it still the same as before, only until 4 days since release, there is toggle in backend that enable the check, remain unaffected for older base
same as v6.4.63+, in first day nothing happens, no checksum, but after 11 days, checksum appears.
if one of these is modified (even one bit) will trigger checksum fail that refuse to accept login from
all of this is both app & server side, server side ask for checksum, the client get sha256 hash and send to server side `getSHFiles` and if something mismatch, the server side will refuse to login and return GW934 as response to app
```shell
# outside assets (v6.5.15+)
mb.apk/AndroidManifest.xml
mb.apk/lib/arm64-v8a/*.so # previously is libapp / zshield & zdefend libs only since v6.4.63+
mb.apk/lib/armeabi-v7a/*.so # previously is libapp / zshield & zdefend libs only since v6.4.63+
mb.apk/classes*.dex # since v6.4.63+
# in assets
# zimperium (v6.5.15+)
mb.apk/assets/zimperium_local_model_randomized_filename*
mb.apk/assets/zimperium_encrypted_dex_folder/*.odex
mb.apk/assets/*.szip # zshield encrypted files
# vkey vtap (v6.5.15+)
mb.apk/assets/firmware # vkey vtap fw
mb.apk/assets/profile # vkey vtap profile
mb.apk/assets/signature # vtap vkey signature
mb.apk/version.json # vtap vkey vos info
mb.apk/voscodesign.vky
mb.apk/vkeylicensepack
# singalarity ekyc files (v6.5.15+)
mb.apk/assets/sgprofile
mb.apk/assets/smart_ekyc_finall.zip
mb.apk/assets/media_init_data
# flutter assets (v6.5.15+)
mb.apk/assets/flutter_assets/assets/fonts/*
mb.apk/assets/flutter_assets/fonts/*
mb.apk/assets/flutter_assets/FontManifest.json
```

View file

@ -1,56 +0,0 @@
# Fix VTAP Certificate usage
This patch can't be applied just by cloning regular repo and apply, I already mentioned it requires specific `firmware` (and `profile` for older base) in `fixcert` folder to function
It can also revert new detection behavior of V-Key (VTAP) like SELinux check, LSPosed, Zygisk check, etc (choose v6.4.78 blobs or older, max to v6.4.53)
```
# from fix_vtap_cert.sh :
# What is [firmware] and [profile]?
# It contains the firmware and certificate for VTAP to communicate with the app connection
# Both [firmware] and [profile] is encrypted with base64 format.
# We do not provide it in the project source, but you can get it from the app itself, in [assets] folder.
```
## How to apply it?
- You can take `firmware` and `profile` file from older app base, then copy to `fixcert` folder in `MBCPApp/` or clone the following repo (it has blobs for some versions)
```
# clone vkey vtap blobs repo
git clone https://git.disroot.org/cuynu/vtapfw_blobs.git
cd vtapfw_blobs
# in vtapfw_blobs folder, the structure are like this
[cuynu@x99e vtapfw_blobs] $ tree
.
├── README.md
├── v6.4.66
│   ├── firmware
│   └── profile
├── v6.4.75
│   ├── firmware
│   └── profile
└── v6.5.2
├── firmware
└── profile
```
- Just choose the proper blobs you want to use, then copy it to `fixcert` folder in `MBCPApp` (in this example i'll use v6.4.75 one, `mbbpatch` cloned in home folder)
```
cp v6.4.75/firmware ~/mbbpatch/MBCPApp/fixcert
# DO NOT copy profile if you are patching newer base then the blobs one, otherwise it will fail certificate check.
cp v6.4.75/profile ~/mbbpatch/MBCPApp/fixcert
```
Then run patcher again `./mbcpapp.sh` -> `Patch App` -> `Fix VTAP Certificate` -> it will work :)
After installed the patched app, if you have previous data, the old one may still present there, at this point delete with
```
su -c rm -f /data/data/com.mbmobile/firmware
su -c rm -f /data/data/com.mbmobile/profile
```