Compare commits

..
Message SHA1
fix: patches(spoof_appver.sh): missing versionCode for v6.5.14
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-10-11 23:41:41 +07:00
c89ae14ad1
feat: patches(target_sdk_34.sh): adapt with targetSdk 36 for v6.5.20+
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-09-13 14:54:45 +07:00
d5eab6d854
feat: patches(spoof_appver.sh): spoof more versionCode
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-09-13 14:37:22 +07:00
968367822a
feat: patches(spoof_appver.sh): adapt with v6.5.2x & mark v6.5.x as legacy
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-09-13 13:21:29 +07:00
35707bbecc
feat: patches(remove_qr_wave.sh): introduce remove qr scanner wave patch
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-09-13 13:13:44 +07:00
004ff0e974
docs: wrong day
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-09-12 03:24:19 +07:00
65e71fd42e
docs: wrong link
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-09-12 03:23:49 +07:00
0630d8d025
docs: update about new checksum measure
with v6.5.15+, the checksum is enhanced...

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-09-12 03:20:40 +07:00
db71084199
fix: patcher(mbcpapp.sh): wrong handling
separate function fixed it

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-09-09 15:50:46 +07:00
f413ecfb68
fix: patcher(mbcpapp.sh): use return 0 instead of exit
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-09-09 15:13:48 +07:00
bf39876c69
docs: bump suggested version to v6.5.14 (semi-final)
might be final if no workaround available for v6.5.15+

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-09-09 03:51:19 +07:00
d15a333726
feat: patcher(mbcpapp.sh): confirmation before running patch app function
for v6.5.15+ with new checksum mechanism only

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-09-09 03:44:43 +07:00
45ec5e5e11
fix: patcher(mbcpapp.sh): warn does not show for v6.5.15+
it need to be displayed before run patcher.

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-08-31 01:12:23 +07:00
a21c61f40e
feat: patcher(mbcpapp.sh): check for v6.5.15+ and warn before run patch app func
since v6.5.15, the check is more stricter, extended to all files in assets and apk after converted to apk

it will trigger checksum fail error and throw GW934 error as response.

fix is not implemented yet, but it depends on new lib : `libnframes.so`, without that the login button is not clickable.

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-08-31 00:53:59 +07:00
bb01c94dfa
feat: patcher(mbcpapp.sh): show warn for v6.5.7+ when select specific install apk option
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-08-17 09:13:32 +07:00
5fbf2c74ce
docs: bump suggested version to v6.5.11
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-07-22 00:56:16 +07:00
1ad18251bb
fix: patches(spoof_appver): missing double quote & spoof more versionCode
causing multiple mbcp prefixes in some app versions

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-07-21 16:51:04 +07:00
64513fb78f
refactor: patcher(mbcpapp.sh): move to new install patched app behavior
no longer requires specific app version

with [Install & delete local detection model & open app] option, it will check for su binary and warn if it's not found

also checks the commit id of repacked APK and warn before installing if it's mismatch

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-07-21 16:25:09 +07:00
00be518085
feat: patches(add_modified_resources): adapt with v6.5.7+ strings
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-07-21 15:32:00 +07:00
a8e8ac6233
feat!: patches(block_adjust_volume_sekyc): restrict to v6.4.85 as maximum app version
temp only

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-07-17 19:52:32 +07:00
f76dde30eb
docs: fix-vtap-cert: detailed patch usages
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-07-12 22:47:07 +07:00
208c22d10f
fix: patches(remove_useless_lib): patch applying error with newer target
due to return 1 in last of file

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-07-10 04:40:00 +07:00
12a99f22e3
feat: patcher(mbcpapp.sh): adapt with v6.5.9+ behavior & condition when installing apk to device
also added new pattern to specific app version installation

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-07-10 04:29:08 +07:00
ecfded007a
fix: patcher(mbcpapp.sh): critical model still getting deleted & adapt new v6.5.7+ model
due to duplicate files in new zimperium for v6.4.66+

also delete `GXNv8xc5IcVF6TyUgjJpyYFeyHGqUqN7ZS0X_2WRbEE_` model

adapt newer model for v6.5.7+

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-29 21:05:38 +07:00
54d5855294
fix: patches(remove_useless_lib.sh): do not remove libvvb2060.so in newer app version v6.5.7+
removing it in v6.5.7+ trigger checksum failing error (GW934 - Re-install app to continue using app)

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-29 02:03:25 +07:00
a7e09b9ba2
feat: patches(spoof_appver.sh): adapt with v6.5.1x target, more versionCode
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-29 00:44:16 +07:00
b2a7c82be3
fix: patcher(mbcpapp.sh): don't delete critical local model for v6.5.7+
MB v6.5.7+ with new Zimperium need `fPGzhQFvISia1NiVGU8vQx9IpRm63E4_1Xv0Z2ypWUE_` and `GXNv8xc5IcVF6TyUgjJpyYFeyHGqUqN7ZS0X_2WRbEE_` to function correctly, without it the app will crash with native call error.

with older app version (v6.5.6 or older), it will continue to delete such local model

`libcode.so` is pattern to detect v6.5.7+

this commit should fix crashes with v6.5.7+ when working with Patcher.

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-29 00:08:27 +07:00
a0e0b5492a
docs: bump suggested version to v6.5.6
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-28 18:09:54 +07:00
31f3325df3
chore: patcher(mbcpapp.sh): move from mbshield to zshield for resources extraction
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-28 17:40:41 +07:00
667940ccbe
feat: patcher(mbcpapp.sh): dump Tian37 lib sha256 hashes
this is not needed with older target (<v6.5.6) but need with (v6.5.7)

MB enhanced checksum to more libraries, including this Tian37 one in v6.5.7.

older target remain unaffected.

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-28 17:29:32 +07:00
cc5316f901
feat: patcher/patches(mbcpapp.sh/remove_new_zimperium_check.sh): adapt dumping sha256 hash for new zimperium library
exist since MB v6.5.7+

added condition check whether if older zimperium lib is present or not before dumping

limit zimperium bypass patch to v6.5.6 or older temporary

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-28 17:21:38 +07:00
1765a67d97
feat: patcher(mbcpapp.sh): use --no-check-certificate flag for wget
fixes download error for some Mac machines, confirmed working with my Intel Mac

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-28 16:30:43 +07:00
ae8eeda2db
chore: patcher/patches(etc): move from mbshield to zShield
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-28 15:56:34 +07:00
804e4aeb75
chore: patcher(mbcpapp.sh): rename mbshield to zshield
mbshield does not exist, MB does not have any such shield, they used zShield from Zimperium since v6.4.22, and rename the branding from zShield to [bank name + shield]

with new MB v6.5.7 update, there is a major changes to how zShield work, they randomized the name, not [mbshield] anymore

so I used regex* to look for it, more effective.

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-28 15:27:23 +07:00
ac845ff247
feat: patcher(mbcpapp.sh): rename useless to zimperium local model
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-27 18:11:18 +07:00
73e9bd4def
docs: bring back fix_vtap_cert to patches list
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-20 11:21:27 +07:00
316d2a8476
fix: patches(remove_mbai): typo in path
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-19 10:51:20 +07:00
1fc18698b6
fix: patches(fix_vtap_cert): do not throw nofwfound if no profile found
also skip copying `profile` if it not found.

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-19 10:32:35 +07:00
34d379a7c1
feat: patches(fix_vtap_cert): allow unlimited app target
and specific app target

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-19 10:29:34 +07:00
74ac78f682
docs: bump suggested version to v6.5.5
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-19 10:26:39 +07:00
8f3080e7df
revert "docs: correct my role"
this reverts commit a96b638b0f.

Cuynu   commited 2026-06-19 10:24:51 +07:00
5c821bbe51
feat: patches(remove_mbai): adapt newer resources & rename bullsh*t to slop
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-19 10:24:36 +07:00
05c65d15df
feat: patches(fix_vtap_cert): allow unlimited app target
and specific app target

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-09 16:04:26 +07:00
456089cf75
docs: correct my role
no, `developer` is not a good role for me

i want maintainer role instead

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-04 22:29:58 +07:00
a96b638b0f
chore: patches(etc): move specific bypass from autopatch_strings to separate patches
separate from `autopatch_strings` would be better than just add them to one patch

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-06-03 17:46:50 +07:00
aa08968a5f
feat: patches(add_modified_resources.sh): handle undefined strings
fix compilation error in v6.5.2+

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-05-24 17:46:52 +07:00
d4914930d1
feat: patcher(mbcpapp.sh): adapt with dex6 for v6.5.2+
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-05-24 16:58:02 +07:00
0dc36c5ea4
fix: patcher(mbcpapp.sh): hash folder not getting deleted when use clean patched app function
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-05-24 16:51:00 +07:00
387d66993c
feat: patcher(mbcpapp.sh): also copy sha256 hashes to app assets
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-05-24 16:42:12 +07:00
1d55d49a3c
fix: patcher(mbcpapp.sh): typo fixes
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-05-24 15:58:08 +07:00
c0ba393845
feat: patcher(mbcpapp.sh): dump sha256 hashes after unpacking apk
helpful for future gw934 bypass

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-05-24 15:56:42 +07:00
c0828722c3
docs: readme: bump suggested version to v6.5.2
some other changes

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-05-23 00:27:08 +07:00
45afbf13f3
feat: patches(custom_subbadge): introduce new patch
force static basic sub_badge, no more animated promotion sub_badge to buy membership subscription from MB

also copies some encrypted files in flutter_assets

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-05-19 01:52:04 +07:00
6f8e3a431d
feat: patches(etc): spoof more versionCode & remove metro qr bg
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-05-19 00:59:31 +07:00
388390946a
fix: patches(remove_garbage_permission_and_activities): missing permissions for android 10 and older
older android requires badge permission, which trigger app crash if the badge permissions is not found

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-05-11 02:19:17 +07:00
66da5d86bd
feat: patches(spoof_appver): newer target
v6.5.x finally landed, there is no v6.4.1xx

this commit adapt v6.5.x format

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-05-10 02:03:31 +07:00
0627078614
docs: add credit for theme & resources
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-05-08 16:14:37 +07:00
15d75f5f95
fix: patches(whereis_criticalpatches.sh): redundant white spaces
Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-05-06 00:37:18 +07:00
601ec0250b
feat: patches(whereis_criticalpatches.sh): explain about current situation
this commit explain why vtap & zimperium bypass patches disappeared.

and other way to use app.

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-05-06 00:32:05 +07:00
efa26fe098
feat!: patches(misc): restrict critical patches to v6.4.66
it works with newer app but due to gw934, its useless

revert this commit to remove restriction

future bypass is planned.

Signed-off-by: Cuynu <cuynu@proton.me>

Cuynu   commited 2026-05-06 00:15:22 +07:00
65cb75ea82
50 changed files with 10695 additions and 166 deletions

View file

@ -0,0 +1,2 @@
# credits
extracted from original MB Bank app.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

View file

@ -0,0 +1 @@
{"v":"4.8.0","meta":{"g":"LottieFiles AE 3.5.7","a":"","k":"","d":"","tc":"none"},"fr":60,"ip":0,"op":90,"w":512,"h":512,"nm":"Arrow","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"arrow 02","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[256,241,0],"to":[0,13.333,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":49.779,"s":[256,321,0],"to":[0,0,0],"ti":[0,13.333,0]},{"t":89,"s":[256,241,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":49.779,"s":[95,95,100]},{"t":89,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-72,-119],[0,-38.5],[72,-119]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[20]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":49.779,"s":[19]},{"t":89,"s":[20]}],"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":91,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"arrow 01","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":0,"s":[256,340,0],"to":[0,13.333,0],"ti":[0,0,0]},{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":43.746,"s":[256,420,0],"to":[0,0,0],"ti":[0,13.333,0]},{"t":89,"s":[256,340,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":0,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":43.746,"s":[95,95,100]},{"t":89,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[0,0],[0,0]],"o":[[0,0],[0,0],[0,0]],"v":[[-72,-119],[0,-38.5],[72,-119]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"st","c":{"a":0,"k":[0,0,0,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":0,"s":[20]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":43.746,"s":[19]},{"t":89,"s":[20]}],"ix":5},"lc":2,"lj":2,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":91,"st":0,"bm":0}],"markers":[]}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,5 @@
# Theme credit
This theme is extracted from older MB Bank App (React Native), it is entirely created by MBBank development or designer team, there is no trace of AI generated theme here. The theme is created in 2021.
I extracted it from MB Lite App, found in [APKMirror](https://www.apkmirror.com/apk/mb-bank/mb-lite/mb-lite-6-3-11-release/mb-lite-6-3-11-android-apk-download/), location seems to be in `res/drawable-xxhdpi`

View file

@ -0,0 +1,5 @@
# Theme credit
- This theme is Christmas 2024 theme from official MB Bank app, it exists in older app version like [v6.4.28](https://cuynutt.ddns.net/files/MBBank_APKs/FlutterApp/mbmobile_v6.4.28_628_flutter.apks), [v6.4.29](https://cuynutt.ddns.net/files/MBBank_APKs/FlutterApp/mbmobile_v6.4.29_636_flutter.apks), [v6.4.30](https://cuynutt.ddns.net/files/MBBank_APKs/FlutterApp/mbmobile_v6.4.30_637_flutter.apks) under `assets/flutter_assets/assets/images/dynamic/noel` folder. It is encrypted by MBShield (zShield) and only can be extracted by triggering eKYC (face recognition) feature.
# AI or NOT?
- This theme seems to be AI-free (according to my eye and some other peoples in my group).

View file

@ -0,0 +1,7 @@
# Resource credit
- This is raw resources and strings extracted from MB Bank app, around early Flutter-era (v6.4.3x)
# AI?
- There is files like `singalarity_ai*` in `raw` folder, but it is not AI-generated, I replaced it with old-fashioned Google TTS voice (non-LLM one), which is likely ML (Machine-Learning) than LLM.
- The facial recognition seems to be the same too, it is in the app before Generative AI era, since 2021. It just the friendly ML (Machine-Learning).
- Even the original voice, it seems to be non-LLM, since the voice is exist in app before Generative AI era, it might have been created with TTS voice tools.

Some files were not shown because too many files have changed in this diff Show more