Compare commits
23 changed files with 162 additions and 766 deletions
|
|
@ -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>
|
||||
|
|
@ -30,10 +30,10 @@ do
|
|||
echo "Applying patch [Bypass signature check]..."
|
||||
if [ -d "$DIRPATH"/mbapk/mbapk_unpacked ]
|
||||
then
|
||||
# Checks for zShield (mbshield is zShield), if exists then exit function
|
||||
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/assets/*.szip ]
|
||||
# Checks for MBShield, if exists then exit function
|
||||
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/assets/mbshield.szip ]
|
||||
then
|
||||
info "zShield found on unpacked APK ! Bypass signature checks won't be possible if zShield is present on current unpacked APK !"
|
||||
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"
|
||||
|
|
|
|||
|
|
@ -51,11 +51,11 @@ COMMIT="$(git rev-parse --short HEAD)"
|
|||
BRANCH="$(git rev-parse --abbrev-ref HEAD)"
|
||||
clear
|
||||
|
||||
zshield_found='zShield found on [mbapk_unpacked/assets/*.szip] !!!
|
||||
Patching operation is limited due to zShield :(
|
||||
mbshield_found='MBShield found on [mbapk_unpacked/assets/mbshield.szip] !!!
|
||||
Patching operation is limited due to MBShield :(
|
||||
You need to extract assets from Android device for some patching operation to works properly !!!'
|
||||
|
||||
zshield_not_found='zShield NOT found on [mbapk_unpacked/assets/]
|
||||
mbshield_not_found='MBShield NOT found on [mbapk_unpacked/assets/]
|
||||
Patching operation are all not limited at all !
|
||||
Asset extraction are not needed :)'
|
||||
|
||||
|
|
@ -64,8 +64,8 @@ download_tools() {
|
|||
apkeditor_link="https://github.com/REAndroid/APKEditor/releases/download/V1.4.8/APKEditor-1.4.8.jar"
|
||||
|
||||
cd tools && rm -rf ./*.jar
|
||||
wget -q --no-check-certificate --show-progress -O apktool.jar "$apktool_link" || err "downloading apktool failed"
|
||||
wget -q --no-check-certificate --show-progress -O apkeditor.jar "$apkeditor_link" || err "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 ..
|
||||
}
|
||||
|
||||
|
|
@ -117,29 +117,12 @@ copyHash() {
|
|||
# libapp flutter
|
||||
sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libapp.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libapp_arm64_sum && good "Success dump sha256 libapp (arm64) hash to [mbapk/original_hash] !"
|
||||
sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libapp.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libapp_armv7a_sum && good "Success dump sha256 libapp (armv7a) hash to [mbapk/original_hash] !"
|
||||
|
||||
# mbshield (zShield)
|
||||
# exist in MB v6.4.22 ~ v6.5.6 (except v6.4.45 versionCode 658)
|
||||
[ -f 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libmbshield.so' ] && sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libmbshield.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libmbshield_arm64_sum && good "Success dump sha256 libmbshield (arm64) hash to [mbapk/original_hash] !"
|
||||
[ -f 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libmbshield.so' ] && sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libmbshield.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libmbshield_armv7a_sum && good "Success dump sha256 libmbshield (armv7a) hash to [mbapk/original_hash] !"
|
||||
|
||||
# new zshield + zdefend (v6.5.7+)
|
||||
[ -f 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libempirememorial.so' ] && sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libempirememorial.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libempirememorial_arm64_sum && good "Success dump sha256 libempirememorial (arm64) hash to [mbapk/original_hash] !"
|
||||
[ -f 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libempirememorial.so' ] && sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libempirememorial.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libempirememorial_armv7a_sum && good "Success dump sha256 libempirememorial (armv7a) hash to [mbapk/original_hash] !"
|
||||
|
||||
# built in flutter zdefend plugin lib call, it might call to libempirememorial.so
|
||||
[ -f 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libcode.so' ] && sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libcode.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libcode_arm64_sum && good "Success dump sha256 libcode (arm64) hash to [mbapk/original_hash] !"
|
||||
[ -f 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libcode.so' ] && sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libcode.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libcode_armv7a_sum && good "Success dump sha256 libcode (armv7a) hash to [mbapk/original_hash]"
|
||||
|
||||
# old zimperium zdefend
|
||||
# exist in MB v6.4.72 ~ v6.5.6
|
||||
[ -f 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libclosestmadagascar.so' ] && sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libclosestmadagascar.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libclosestmadagascar_arm64_sum && good "Success dump sha256 zimperium (arm64) hash to [mbapk/original_hash] !"
|
||||
[ -f 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libclosestmadagascar.so' ] && sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libclosestmadagascar.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libclosestmadagascar_armv7_sum && good "Success dump sha256 zimperium (armv7a) hash to [mbapk/original_hash] !"
|
||||
|
||||
# Tian37 (since MB v6.4.86+)
|
||||
[ -f 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libanTian37.so' ] && sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libanTian37.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libanTian37_arm64_sum && good "Success dump libanTian37 (arm64) hash to [mbapk/original_hash] !"
|
||||
[ -f 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libanTian37.so' ] && sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libanTian37.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libanTian37_armv7a_sum && good "Success dump libanTian37 (armv7a) hash to [mbapk/original_hash] !"
|
||||
|
||||
# mbshield
|
||||
sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libmbshield.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libmbshield_arm64_sum && good "Success dump sha256 libmbshield (arm64) hash to [mbapk/original_hash] !"
|
||||
sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libmbshield.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libmbshield_armv7a_sum && good "Success dump sha256 libmbshield (armv7a) hash to [mbapk/original_hash] !"
|
||||
# zimperium
|
||||
sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libclosestmadagascar.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libclosestmadagascar_arm64_sum && good "Success dump sha256 zimperium (arm64) hash to [mbapk/original_hash] !"
|
||||
sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libclosestmadagascar.so | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/libclosestmadagascar_armv7_sum && good "Success dump sha256 zimperium (armv7a) hash to [mbapk/original_hash] !"
|
||||
# dex files
|
||||
sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/.cache/classes.dex | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/dex1_sum && good "Success dump sha256 dex1 hash to [mbapk/original_hash]!"
|
||||
sha256sum "$DIRPATH"/mbapk/mbapk_unpacked/.cache/classes2.dex | cut -f 1 -d " " > "$DIRPATH"/mbapk/original_hash/dex2_sum && good "Success dump sha256 dex2 hash to [mbapk/original_hash] !"
|
||||
|
|
@ -164,7 +147,7 @@ unpack_mbcp() {
|
|||
unzip -l mbapk/MBOriginal.apk | grep -oH "flutter_assets" > /dev/null 2>&1 && good "Current app is Flutter!" || { err "Current converted app is not Flutter, or too outdated, cannot continue! Deleting files..." ; rm -rf mbapk/* ; return 1 ;
|
||||
}
|
||||
unzip -l mbapk/MBOriginal.apk | grep -oH "ic-appmb.ttf" > /dev/null 2>&1 && good "Current converted app is MBBank! Continuing" || { err "Current converted app is NOT MBBank! Deleting files..." ; rm -rf mbapk/* ; return 1 ; }
|
||||
info "Removing local zimperium detection models..."
|
||||
info "Cleaning useless files..."
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/_4A9w8flncUrhDOG8dyqLi_azBTYT3PlSXz0hiCzRQA_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/0QDl12M5S2hKxoKF4cNI4kEX1qDQRMiOd34TXjSjy4M_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/2GcdAWdkXGgxPfHSIhzLkrkf2LU6Z_cuZfUWnczoEHw_'
|
||||
|
|
@ -172,15 +155,9 @@ unpack_mbcp() {
|
|||
rm -rf 'mbapk/mbapk_unpacked/root/assets/c7uFHgsHzlQ_T524_4N3h9neXvtcUg0m1ERhEjFpPI8_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/ccBu4aSM_mSaMBpFvr14pizu6EGMvwRiZltU_zVJMz0_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/DcM3z3tolULDhbn8YrUE7hxOlxZx2oFC5yNQFG1SX9k_'
|
||||
# v6.5.7+ and new zimperium need this, without it the app will crash in startup, libcode.so
|
||||
# is new pattern to detect v6.5.7+, older app base with old zimperium does not need this
|
||||
# so i added condition check, whether if libcode.so is exist or not, if not then it will
|
||||
# continue to delete the local model as before.
|
||||
[ ! -f 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libcode.so' ] && rm -rf 'mbapk/mbapk_unpacked/root/assets/fPGzhQFvISia1NiVGU8vQx9IpRm63E4_1Xv0Z2ypWUE_'
|
||||
# v6.5.9+ behavior (does not affect v6.5.7/v6.5.8 behavior)
|
||||
[ ! -f 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libcode.so' ] && rm -rf 'mbapk/mbapk_unpacked/root/assets/2lclXWtX58GC8tXgJr1E_tmzpvS_K1Q7_0jHeXBaECc_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/GXNv8xc5IcVF6TyUgjJpyYFeyHGqUqN7ZS0X_2WRbEE_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/fPGzhQFvISia1NiVGU8vQx9IpRm63E4_1Xv0Z2ypWUE_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/g9x205p_On9_RR4kI_GdsoQ2pfSrV_OQXSopshyhYVk_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/GXNv8xc5IcVF6TyUgjJpyYFeyHGqUqN7ZS0X_2WRbEE_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/H8leCCp85eX0YRvo4WCzqF5MEuj2_9ix6zL2bjnj6hk_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/Hput_BfAb8ftOt8hvazec24Eqk0gC5DDY6qALJMLtcI_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/MZuOOtdhO6pcGnZ5_kqMPh56hL3LqawBZd05vfIivww_'
|
||||
|
|
@ -206,6 +183,7 @@ unpack_mbcp() {
|
|||
rm -rf 'mbapk/mbapk_unpacked/root/assets/ccBu4aSM_mSaMBpFvr14pizu6EGMvwRiZltU_zVJMz0_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/DcM3z3tolULDhbn8YrUE7hxOlxZx2oFC5yNQFG1SX9k_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/eB0ZLvEtv8_qoOAcmcB19tx0pnT_RXKn5WU3rOVgK4k_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/fPGzhQFvISia1NiVGU8vQx9IpRm63E4_1Xv0Z2ypWUE_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/g9x205p_On9_RR4kI_GdsoQ2pfSrV_OQXSopshyhYVk_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/GXNv8xc5IcVF6TyUgjJpyYFeyHGqUqN7ZS0X_2WRbEE_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/H8leCCp85eX0YRvo4WCzqF5MEuj2_9ix6zL2bjnj6hk_'
|
||||
|
|
@ -226,6 +204,7 @@ unpack_mbcp() {
|
|||
rm -rf 'mbapk/mbapk_unpacked/root/assets/ZOKOK1a6XCiqYb_a8bYPE9c0rjUf7_n7k77YxX5Ypdw_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/zxHdhL4_ZEQLQeo8R2DzSYl9PGss_cKSCQTcZGBtVmU_'
|
||||
# New zimperium for v6.4.67+
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/2lclXWtX58GC8tXgJr1E_tmzpvS_K1Q7_0jHeXBaECc_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/EHFtsAf7MYH_M7kQF1YX8LeWfU1_RjdRH62oJRE0v38_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/KZsyhtgSOXgFDPIf88NF5svaDH3xQ8feGsAQiy1c9_s_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/mT0VvAZ00szUCjj1fIELzEtu8jyGYugItWXzMzctw5s_'
|
||||
|
|
@ -240,10 +219,7 @@ unpack_mbcp() {
|
|||
# New zimperium for v6.4.72+
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/Z1YbTXaPlMjbmWCKXXD0m4wkWyE0I6xxDebGhXz5igk_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/zxwCzUaZ8itWQeAMKtyu52RbljJe1Pd8GuV7H4RPsy4_'
|
||||
# New zimperium for v6.5.7+
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/BHCdF10ojcfyA7xfkrsMHYFMRUCn2CVYK6zKEnI8Jdc_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/i_4CYiKEHQ3wTzTlrx_YVNIvHCgFjnkpMtMf4pgDlic_'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/OrE6E3b6dxQnoToaT2eLN48gKz8_Iui_eFezclhtVQk_'
|
||||
|
||||
info "Creating [mbcp_info] folder..."
|
||||
mkdir 'mbapk/mbapk_unpacked/root/assets/mbcp_info/'
|
||||
|
||||
|
|
@ -286,14 +262,14 @@ successunpack() {
|
|||
fi
|
||||
}
|
||||
|
||||
check_zshield() {
|
||||
check_mbshield() {
|
||||
is_unpacked || return 1
|
||||
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/*.szip ]
|
||||
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/mbshield.szip ]
|
||||
then
|
||||
info "$zshield_found"
|
||||
info "$mbshield_found"
|
||||
iszdefend
|
||||
else
|
||||
info "$zshield_not_found"
|
||||
info "$mbshield_not_found"
|
||||
fi
|
||||
}
|
||||
|
||||
|
|
@ -313,15 +289,7 @@ convert_apks() {
|
|||
info "You probably can continue to unpack APK!"
|
||||
}
|
||||
|
||||
newbehavior() {
|
||||
warn "App is newer v6.5.15+! Patches continue to work, but you can't login"
|
||||
warn "Until a workaround is implemented :("
|
||||
confirm || exit 1
|
||||
}
|
||||
|
||||
run_patcher() {
|
||||
# check v6.5.15+
|
||||
[ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libnframes.so ] && newbehavior
|
||||
is_unpacked_lib && bash ./parse.sh && bash ./patch.sh
|
||||
}
|
||||
|
||||
|
|
@ -337,14 +305,14 @@ echo "Original APK must be inside [mbapk] folder !"
|
|||
echo -------------------------------------------------------------
|
||||
echo "Current commit : $COMMIT ($BRANCH)"
|
||||
echo "Source code : https://git.disroot.org/mbcp/mbbpatch.git"
|
||||
echo "Documentation : see [README.md] or [docs] folder"
|
||||
echo "Documentation : see [docs] folder"
|
||||
echo "Written from scratch by Cuynu with love <3"
|
||||
echo -------------------------------------------------------------
|
||||
echo App status : $(successunpack)
|
||||
echo -------------------------------------------------------------
|
||||
# Main functions
|
||||
PS3='Please select options to continue : '
|
||||
select opt in 'Pull latest commit' 'Unpack APK' 'Convert apks to apk' 'Repack APK' 'Install patched app' 'zShield Check' 'Patch App' 'Legacy patches' 'Extract assets [ROOT]' 'Launch MBCPApp/MBBank' 'Force close MBCPApp/MBBank' 'Clear MBCPApp/MBBank app data' 'Clean patched app' 'Download/update tools' 'Restart script' 'Exit'
|
||||
select opt in 'Pull latest commit' 'Unpack APK' 'Convert apks to apk' 'Repack APK' 'Install patched app' 'MBShield Check' 'Patch App' 'Legacy patches' 'Extract assets [ROOT]' 'Launch MBCPApp/MBBank' 'Force close MBCPApp/MBBank' 'Clear MBCPApp/MBBank app data' 'Clean patched app' 'Download/update tools' 'Restart script' 'Exit'
|
||||
do
|
||||
case "$opt" in
|
||||
'Download/update tools' ) download_tools ;;
|
||||
|
|
@ -352,14 +320,14 @@ do
|
|||
'Repack APK' ) repack_mbcp ;;
|
||||
'Patch App' ) run_patcher ;;
|
||||
'Legacy patches' ) run_legacy_patcher ;;
|
||||
'zShield Check' ) check_zshield ;;
|
||||
'MBShield Check' ) check_mbshield ;;
|
||||
'Convert apks to apk' ) convert_apks ;;
|
||||
'Extract assets [ROOT]' )
|
||||
is_unpacked || exit 1
|
||||
isvcm1
|
||||
iszdefend
|
||||
info "If you have v6.4.98 or newer, app resource extraction is no longer possible. Please use older version."
|
||||
info 'To extract encrypted assets [if current app has zShield protection] you need rooted device'
|
||||
info 'To extract encrypted assets [if current app has MBShield protection] you need rooted device'
|
||||
info 'And trigger a built-in app assets extraction !'
|
||||
echo -------------------------------------------
|
||||
PS3='Select options continue, or [3] to quit : '
|
||||
|
|
@ -373,9 +341,9 @@ do
|
|||
elif [ "$opt" == 'Extract assets' ]; then
|
||||
if [ -d "$DIRPATH"/mbapk/mbapk_unpacked/ ]
|
||||
then
|
||||
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/*.szip ]
|
||||
if [ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/mbshield.szip ]
|
||||
then
|
||||
info "zShield found ! Continuing !!!"
|
||||
info "MBShield found ! Continuing !!!"
|
||||
warn 'You MUST grant root access to [com.android.shell] in order to extract assets !'
|
||||
info 'Trying to extract assets...'
|
||||
adb shell am force-stop com.mbmobile
|
||||
|
|
@ -418,7 +386,7 @@ then
|
|||
info 'Removing leftover assets...'
|
||||
adb shell rm -rf /sdcard/assets && good "Removed leftover assets !" || err "Failed to remove leftover assets from device !"
|
||||
else
|
||||
info "zShield not found ! No need to extract assets !"
|
||||
info "MBShield not found ! No need to extract assets !"
|
||||
fi
|
||||
else
|
||||
err "Can't find [mbapk/mbapk_unpacked] folder, cannot continue ! "
|
||||
|
|
@ -463,35 +431,32 @@ done
|
|||
info "Cleared !"
|
||||
;;
|
||||
'Install patched app' )
|
||||
echo 'Choose install options :'
|
||||
ls mbcpapp_apk | grep -q MBCP_Flutter_SelfPatched_$(git rev-parse --short HEAD).apk || err "Couldn't find APK with current commit ID, you might already do new commits : $(git rev-parse --short HEAD)" || warn "Please repack APK again after each new commits !"
|
||||
PS3='Select option to continue, or [3] to quit : '
|
||||
select opt in 'Install & open app' 'Install & delete local detection model & open app' 'Exit'
|
||||
info 'Select your patched version to continue'
|
||||
PS3='Select patched version to continue, or [4] to quit : '
|
||||
select opt in 'App patched with newer version [v6.4.59+]' 'App patched with specific version' 'App patched with older version [v6.4.55 or lower]' 'Exit'
|
||||
do
|
||||
|
||||
if [ "$opt" == 'Install & open app' ]; then
|
||||
if [ "$opt" == 'App patched with newer version [v6.4.59+]' ]; then
|
||||
if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ]
|
||||
then
|
||||
warn "MBCP Helper / CorePatch must be installed with disable digest verify on !!!"
|
||||
warn "You must have connected Android device with USB debugging turned on in order to install !!!"
|
||||
adb kill-server
|
||||
adb start-server
|
||||
adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk" | grep -q Success && echo "App installation successful! Opening app..." && adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity || echo "Failed to install app, please check your device!"
|
||||
adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk"
|
||||
adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
|
||||
else
|
||||
err "[MBCP_Flutter_SelfPatched_$COMMIT.apk] not found, cannot continue !"
|
||||
fi
|
||||
|
||||
elif [ "$opt" == 'Install & delete local detection model & open app' ]; then
|
||||
# handle method for newer app
|
||||
[ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libcode.so ] && warn "This method works best with v6.4.58 ~ v6.5.6. For newer app please block Zimperium host first !"
|
||||
elif [ "$opt" == 'App patched with specific version' ]; then
|
||||
if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ]
|
||||
then
|
||||
warn "MBCP Helper / CorePatch must be installed with disable digest verify on !!!"
|
||||
warn "You must have connected Android device with USB debugging turned on in order to install !!!"
|
||||
adb kill-server
|
||||
adb start-server
|
||||
adb shell [ -f /system/bin/su ] || warn "No su binary found in [/system/bin/su] from connected device. Root-related commands will not work!!"
|
||||
adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk" | grep -q Success && echo "App installation successful! Opening app..." && adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity || echo "Failed to install app, please check your device!"
|
||||
adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk"
|
||||
# Delete zimperium detection files
|
||||
adb shell su -c rm -rf /data/data/com.mbmobile/files/0*
|
||||
adb shell su -c rm -rf /data/data/com.mbmobile/files/1*
|
||||
|
|
@ -505,7 +470,6 @@ do
|
|||
adb shell su -c rm -rf /data/data/com.mbmobile/files/9*
|
||||
adb shell su -c rm -rf /data/data/com.mbmobile/files/KNOV3PN*
|
||||
adb shell su -c rm -rf /data/data/com.mbmobile/files/zxpolicyme*
|
||||
adb shell su -c rm -rf /data/data/com.mbmobile/files/zxpolicymd*
|
||||
adb shell su -c rm -rf /data/data/com.mbmobile/files/policyme*
|
||||
warn "ATTENTION : Network traffic will be redirected to [medium.com] for 20 seconds !!!"
|
||||
adb shell su -c 'iptables -t nat -A OUTPUT -p tcp -d 0/0 -j DNAT --to-destination 162.159.153.4:443'
|
||||
|
|
@ -517,7 +481,21 @@ do
|
|||
else
|
||||
err "[MBCP_Flutter_SelfPatched_$COMMIT.apk] not found, cannot continue !"
|
||||
fi
|
||||
|
||||
|
||||
elif [ "$opt" == 'App patched with older version [v6.4.55 or lower]' ]; then
|
||||
if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ]
|
||||
then
|
||||
warn "MBCP Helper / CorePatch must be installed with disable digest verify on !!!"
|
||||
warn "You must have connected Android device with USB debugging turned on in order to install !!!"
|
||||
adb kill-server
|
||||
adb start-server
|
||||
adb install "mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk"
|
||||
adb shell am start -n com.mbmobile/io.flutter.plugins.MainActivity
|
||||
else
|
||||
err "[MBCP_Flutter_SelfPatched_$COMMIT.apk] not found, cannot continue !"
|
||||
fi
|
||||
|
||||
|
||||
elif [ "$opt" == 'Exit' ]; then
|
||||
PS3='Please select options to continue : '
|
||||
break
|
||||
|
|
|
|||
|
|
@ -15,18 +15,11 @@ nochiptext() {
|
|||
rm -rf strings_temp
|
||||
}
|
||||
|
||||
no_resolution() {
|
||||
warn "App newer than v6.5.7+ ! Using specific strings file instead..."
|
||||
cp -f 'blob_patches/resources/strings_newapp.xml' 'mbapk/mbapk_unpacked/resources/package_1/res/values/strings.xml'
|
||||
}
|
||||
|
||||
info "Copying modified resources..."
|
||||
|
||||
cp -r -f 'blob_patches/resources/raw' 'mbapk/mbapk_unpacked/resources/package_1/res/'
|
||||
cp -f 'blob_patches/resources/strings-vi/strings.xml' 'mbapk/mbapk_unpacked/resources/package_1/res/values-vi/'
|
||||
[ $(cat mbapk/mbapk_unpacked/resources/package_1/res/values/strings.xml | grep chip_text) ] && cp -f 'blob_patches/resources/strings/strings.xml' 'mbapk/mbapk_unpacked/resources/package_1/res/values/' || nochiptext
|
||||
[ $(cat mbapk/mbapk_unpacked/resources/package_1/res/values/strings.xml | grep -q RESOLUTION) ] && cp -f 'blob_patches/resources/strings/strings.xml' 'mbapk/mbapk_unpacked/resources/package_1/res/values/' || no_resolution
|
||||
|
||||
info "Copying bootleg_ekyc..."
|
||||
cp -f 'blob_patches/bootleg_ekyc/dotp1_ekyc.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/digitalOtp_img_authenguide01.webp'
|
||||
cp -f 'blob_patches/bootleg_ekyc/dotp2_ekyc.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/digitalOtp_img_authenguide02.webp'
|
||||
|
|
|
|||
|
|
@ -5,6 +5,21 @@
|
|||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
||||
# Block forced update dialog (does not bypasses GW525)
|
||||
sed_libapp 's|version_check_update_config|version_nonapp_check_config'
|
||||
sed_libapp 's|currentVersion|currentMBdevsa'
|
||||
sed_libapp 's|minVersion|MBDEVSUCKS'
|
||||
|
||||
# Bypass blacklist IP hashes
|
||||
sed_libapp 's|list_blocked_ip_hash|list_ip_blocked_hash'
|
||||
|
||||
# Bypass malicious apps check
|
||||
sed_libapp 's|whitelistServices|Servicewhitelist'
|
||||
|
||||
# XPE003 error fixes
|
||||
sed_libapp 's|isEnableTimeout|isEnableLockout'
|
||||
sed_libapp 's|zdefend_config|fua0am0_config'
|
||||
|
||||
# App update button url
|
||||
sed_libapp 's|market://details?id=com.mbmobile|https://tinyurl.com/mbcpupdate??|'
|
||||
# Facebook button url
|
||||
|
|
@ -162,9 +177,8 @@ sed_libapp 's|Account Balance|Account balance|g'
|
|||
sed_libapp 's|Set as Default Account|Set as default account|g'
|
||||
|
||||
# App log header info (client.log)
|
||||
# Spoof app version patch already spoofed with (_mbcp) suffix.
|
||||
#sed_libapp 's|productionrn|mbcpreleases|g'
|
||||
#sed_libapp 's|Open app MBCPApp|Open app MB Bank|g'
|
||||
sed_libapp 's|Open app MBCPApp|Open app MB Bank|g'
|
||||
|
||||
# Wallet (Link management)
|
||||
sed_libapp 's|Link Management|Link management|'
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Block adjust volume on sEKYC
|
||||
# MAXVER: 6.4.85
|
||||
# MAXVER: 6.4.66
|
||||
# MINVER:
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
|
|
|||
|
|
@ -1,8 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Bypass blacklist IP hashes
|
||||
# MAXVER: 6.4.67
|
||||
# MINVER:
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
||||
sed_libapp 's|list_blocked_ip_hash|list_ip_blocked_hash|'
|
||||
|
|
@ -1,12 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Bypass forced update dialog
|
||||
# MAXVER: 6.4.67
|
||||
# MINVER:
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
||||
# Block forced update dialog (does not bypasses GW525)
|
||||
sed_libapp 's|version_check_update_config|version_check_nonapp_config'
|
||||
sed_libapp 's|currentVersion|currentMBCPver|'
|
||||
sed_libapp 's|minVersion|appVersion|'
|
||||
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Bypass malicious app check
|
||||
# MAXVER: 6.4.67
|
||||
# MINVER:
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
||||
# Bypass malicious apps check
|
||||
sed_libapp 's|whitelistService|Servicewhitelist|'
|
||||
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Fix VTAP certificate
|
||||
# MAXVER:
|
||||
# PATCHNAME: Fix outdated VTAP certificate
|
||||
# MAXVER: 6.4.89
|
||||
# MINVER:
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
|
@ -17,9 +17,8 @@ info "Not needed for newer app version (like v6.4.94)"
|
|||
nofwfound() {
|
||||
err "no VTAP firmware in [fixcert] folder found!"
|
||||
info "copy [firmware] and [profile] file to [fixcert] folder to continue."
|
||||
info "[firmware] and [profile] can be found in [assets], please find from newer or older app."
|
||||
info "recommended app : v6.4.94 for fixing v6.4.67 ~ v6.4.91"
|
||||
info "and v6.4.75 for v6.4.92+ for revert old detection behavior."
|
||||
info "[firmware] and [profile] can be found in [assets], please find from newer app."
|
||||
info "recommended app : v6.4.94"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
|
@ -27,11 +26,13 @@ mkdir -p "$DIRPATH"/fixcert/
|
|||
|
||||
[ ! -f "$DIRPATH"/fixcert/firmware ] && nofwfound
|
||||
|
||||
[ ! -f "$DIRPATH"/fixcert/profile ] && nofwfound
|
||||
|
||||
# fw
|
||||
cp -f "$DIRPATH"/fixcert/firmware "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/
|
||||
|
||||
# profile
|
||||
[ -f "$DIRPATH"/fixcert/profile ] && cp -f "$DIRPATH"/fixcert/profile "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/
|
||||
cp -f "$DIRPATH"/fixcert/profile "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/
|
||||
|
||||
info "Remove [firmware] and [profile] file from [/data/data/com.mbmobile/files] or clear app data"
|
||||
info "If the app still keep crashing or throwing expired certificate screen or the detection is still the same."
|
||||
info "If the app still keep crashing or throwing expired certificate screen."
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Hide VTAP root detection activity & dialog
|
||||
# MAXVER:
|
||||
# MAXVER: 6.4.66
|
||||
# MINVER:
|
||||
# shellcheck disable=SC1091,SC2016
|
||||
. "$DIRPATH"/common.sh
|
||||
|
|
|
|||
37
MBCPApp/patches/remove_invoke_to_mbshield.sh
Normal file
37
MBCPApp/patches/remove_invoke_to_mbshield.sh
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Remove invoke to mbshield
|
||||
# MAXVER: 6.4.66
|
||||
# MINVER: 6.4.21
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
||||
warn "Currently only support remove invoke mbshield to [io.flutter.plugins.MainActivity] and [MBBHomeWidgetQR] !!!"
|
||||
info "Copying..."
|
||||
if [[ -f mbapk/mbapk_unpacked/smali/classes4/io/flutter/plugins/MainActivity.smali ]]; then
|
||||
info "Flutter found on classes4 !!"
|
||||
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'
|
||||
for i in {0..83}; do
|
||||
case $i in
|
||||
*) rm -f "mbapk/mbapk_unpacked/smali/classes5/mbshield/EP$i.smali" ;;
|
||||
esac
|
||||
done
|
||||
else
|
||||
warn "Flutter not found on classes4, ignoring..."
|
||||
fi
|
||||
|
||||
# Newer dex location (found on v6.4.82+, might present since v6.4.70+)
|
||||
if [[ -f mbapk/mbapk_unpacked/smali/classes3/io/flutter/plugins/MainActivity.smali ]]; then
|
||||
info "Flutter found on classes3 !!"
|
||||
rm -f 'mbapk/mbapk_unpacked/smali/classes3/io/flutter/plugins/MainAcitivity.smali'
|
||||
rm -f 'mbapk/mbapk_unpacked/smali/classes3/io/flutter/plugins/MBBHomeWidgetQR.smali'
|
||||
cp -f 'blob_patches/noinvoke/MainActivity.smali' 'mbapk/mbapk_unpacked/smali/classes3/io/flutter/plugins'
|
||||
cp -f 'blob_patches/noinvoke/MBBHomeWidgetQR.smali' 'mbapk/mbapk_unpacked/smali/classes3/io/flutter/plugins'
|
||||
else
|
||||
warn "Couldn't find Flutter on both classes3 & classes4! Ignoring..."
|
||||
fi
|
||||
|
||||
info "Removing leftover files..."
|
||||
# This is moved to classes4 but EP*.smali no longer exist since v6.4.70+
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Remove MB AI Slop resources
|
||||
# PATCHNAME: Remove MB AI Bullshit resources
|
||||
# MAXVER:
|
||||
# MINVER: 6.4.73
|
||||
# shellcheck disable=SC1091
|
||||
|
|
@ -71,7 +71,3 @@ enforcemb
|
|||
|
||||
# Adapt with new animated search AI logo (v6.4.77+)
|
||||
cp -f 'blob_patches/searchicon/search.png' 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/search_ai.gif'
|
||||
|
||||
# Adapt with more new AI slop icons (v6.5.x)
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/mbai_img_camera.webp'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/dynamic/base/mbai_img_photo.webp'
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Remove new zimperium check
|
||||
# MAXVER: 6.5.5
|
||||
# MAXVER: 6.4.66
|
||||
# MINVER: 6.4.59
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
@ -5,11 +5,8 @@
|
|||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
||||
# remove libvvb2060.so (only for older app verion : v6.5.6 or older)
|
||||
# in newer app, removing it will trigger checksum failing error (GW934 - Re-install app to continue using app)
|
||||
[ ! -f 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libcode.so' ] && rm -rf 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libvvb2060.so'
|
||||
[ ! -f 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libcode.so' ] && rm -rf 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libvvb2060.so'
|
||||
|
||||
# remove rootbeer simple check (used in singalarity ekyc)
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libtoolChecker.so'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libtoolChecker.so'
|
||||
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/lib/arm64-v8a/libvvb2060.so'
|
||||
rm -rf 'mbapk/mbapk_unpacked/root/lib/armeabi-v7a/libvvb2060.so'
|
||||
|
|
|
|||
|
|
@ -12,46 +12,22 @@
|
|||
|
||||
info "Spoofing app version..."
|
||||
|
||||
# v6.5.2x
|
||||
sed -i 's|"6.5.29"|"6.5.29.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.28"|"6.5.28.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.27"|"6.5.27.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.26"|"6.5.26.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.25"|"6.5.25.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.24"|"6.5.24.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.23"|"6.5.23.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.22"|"6.5.22.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.21"|"6.5.21.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.20"|"6.5.20.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
|
||||
# v6.5.1x
|
||||
sed -i 's|"6.5.19"|"6.5.19.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.18"|"6.5.18.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.17"|"6.5.17.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.16"|"6.5.16.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.15"|"6.5.15.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.14"|"6.5.14.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.13"|"6.5.13.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.12"|"6.5.12.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.11"|"6.5.11.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.10"|"6.5.10.mbcp"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
|
||||
# v6.5.x
|
||||
sed -i 's|"6.5.9"|"6.5.9.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.8"|"6.5.8.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.7"|"6.5.7.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.6"|"6.5.6.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.5"|"6.5.5.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.4"|"6.5.4.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.3"|"6.5.3.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.2"|"6.5.2.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.1"|"6.5.1.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|"6.5.0"|"6.5.0.legacy"|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.5.9|6.5.9.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.5.8|6.5.8.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.5.7|6.5.7.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.5.6|6.5.6.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.5.5|6.5.5.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.5.4|6.5.4.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.5.3|6.5.3.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.5.2|6.5.2.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.5.1|6.5.1.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.5.0|6.5.0.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
|
||||
# v6.4.9x
|
||||
sed -i 's|6.4.99|6.4.99.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.4.98|6.4.98.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.4.97|6.4.97.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.4.99|6.4.99.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.4.98|6.4.98.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.4.97|6.4.97.mbcp|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.4.96|6.4.96.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.4.95|6.4.95.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.4.94|6.4.94.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
|
|
@ -112,7 +88,7 @@ sed -i 's|6.4.49|6.4.49.old|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
|||
sed -i 's|6.4.48|6.4.48.old|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|6.4.47|6.4.47.old|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
|
||||
# versionCode spoofing to prevent in-app forced update dialog, and play store / aurora store from replacing with original app :>
|
||||
|
||||
sed -i 's|704|1000|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|712|1001|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|727|2000|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
|
|
@ -134,43 +110,6 @@ sed -i 's|744|2014|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
|||
sed -i 's|745|2015|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|746|2016|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|747|2017|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|749|2018|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|750|2019|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|751|2020|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|752|2021|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|753|2022|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|754|2023|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|755|2024|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|756|2025|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|757|2026|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|758|2027|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
# v6.5.14
|
||||
sed -i 's|759|2028|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
# other versions
|
||||
sed -i 's|760|2028|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|761|2029|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|762|2030|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|763|2031|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|764|2032|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|765|2033|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|766|2034|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|767|2035|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|768|2036|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|769|2037|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|770|2038|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|771|2039|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|772|2040|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|773|2041|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|774|2042|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|775|2043|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|776|2044|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|777|2045|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|778|2046|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|779|2047|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|780|2048|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|781|2049|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|782|2050|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
|
||||
|
||||
sed -i 's|v6.4.66|v6.4.68|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
sed -i 's|v6.4.65|v6.4.68|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml'
|
||||
|
|
|
|||
|
|
@ -5,7 +5,4 @@
|
|||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
||||
# applies for v6.4.62 ~ v6.5.19
|
||||
sed -i 's|android:targetSdkVersion="35"|android:targetSdkVersion="34"|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml
|
||||
# applies for v6.5.20+
|
||||
sed -i 's|android:targetSdkVersion="36"|android:targetSdkVersion="34"|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml
|
||||
|
|
|
|||
19
MBCPApp/patches/whereis_criticalpatches.sh
Normal file
19
MBCPApp/patches/whereis_criticalpatches.sh
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: Where is VTAP & Zimperium bypass
|
||||
# MAXVER:
|
||||
# MINVER:
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
||||
echo "--------------Why Zimperium and VTAP bypass patches disappeared?--------------"
|
||||
warn "VTAP and Zimperium bypass is restricted to v6.4.66 only due to MB limitations to v6.4.67+"
|
||||
info "They added stronger check, it uses SHA-256 to check all of dex files and libraries, if it does not match\n"
|
||||
info "The app will refuse to login with GW934 error. There is already a bypass in the past, but is fixed."
|
||||
info "A newer bypass is planned, but I don't have time. I am a student, and in 12th grade, time does not allow me."
|
||||
echo "------------------------------------------------------------------------------"
|
||||
echo "So what next???"
|
||||
echo "From Patcher, just apply other patches, and repack APK"
|
||||
echo "Since the local root detection model is deleted, you can use my MBZDefend-Fix module"
|
||||
echo "It uses another way to bypass Zimperium check, and still works :)"
|
||||
echo "For VTAP bypass? No way, but it is still easily to hide. It will comeback once I achieve another checksum bypass."
|
||||
exit 169
|
||||
|
|
@ -1,10 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
# PATCHNAME: XPE003 Fix
|
||||
# MAXVER: 6.4.67
|
||||
# MINVER:
|
||||
# shellcheck disable=SC1091
|
||||
. "$DIRPATH"/common.sh
|
||||
|
||||
# XPE003 error fixes
|
||||
sed_libapp 's|isEnableTimeout|isEnableLockout|'
|
||||
sed_libapp 's|zdefend_config|fua0am0_config|'
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue