diff --git a/MBCPApp/mbcpapp.sh b/MBCPApp/mbcpapp.sh index f60cf38..8c3e56f 100755 --- a/MBCPApp/mbcpapp.sh +++ b/MBCPApp/mbcpapp.sh @@ -313,7 +313,15 @@ 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 } @@ -474,7 +482,8 @@ do fi elif [ "$opt" == 'Install & delete local detection model & open app' ]; then - warn "This method only works with v6.4.58 ~ v6.5.6 !" + # handle method for newer app + [ -f "$DIRPATH"/mbapk/mbapk_unpacked/root/lib/arm64-v8a/libcode.so ] && warn "This method works best with v6.4.58 ~ v6.5.6. For newer app please block Zimperium host first !" if [ -f "$DIRPATH"/mbcpapp_apk/MBCP_Flutter_SelfPatched_$COMMIT.apk ] then warn "MBCP Helper / CorePatch must be installed with disable digest verify on !!!" diff --git a/MBCPApp/patches/remove_qr_wave.sh b/MBCPApp/patches/remove_qr_wave.sh new file mode 100644 index 0000000..497ec9c --- /dev/null +++ b/MBCPApp/patches/remove_qr_wave.sh @@ -0,0 +1,8 @@ +#!/usr/bin/env bash +# PATCHNAME: Remove QR Scanner Wave +# MAXVER: +# MINVER: +# shellcheck disable=SC1091 +. "$DIRPATH"/common.sh + +rm -f "$DIRPATH"/mbapk/mbapk_unpacked/root/assets/flutter_assets/assets/images/static/ic_wave_qr_scanner.webp diff --git a/MBCPApp/patches/spoof_appver.sh b/MBCPApp/patches/spoof_appver.sh index 46943e7..b056436 100644 --- a/MBCPApp/patches/spoof_appver.sh +++ b/MBCPApp/patches/spoof_appver.sh @@ -12,6 +12,18 @@ 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' @@ -25,16 +37,16 @@ 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.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' +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' # v6.4.9x sed -i 's|6.4.99|6.4.99.legacy|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' @@ -132,12 +144,33 @@ sed -i 's|755|2024|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|756|2025|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|757|2026|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|758|2027|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +# v6.5.14 +sed -i 's|759|2028|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +# other versions sed -i 's|760|2028|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|761|2029|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|762|2030|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|763|2031|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|764|2032|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|765|2033|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|766|2034|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|767|2035|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|768|2036|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|769|2037|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|770|2038|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|771|2039|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|772|2040|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|773|2041|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|774|2042|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|775|2043|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|776|2044|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|777|2045|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|778|2046|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|779|2047|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|780|2048|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|781|2049|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' +sed -i 's|782|2050|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' + sed -i 's|v6.4.66|v6.4.68|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' sed -i 's|v6.4.65|v6.4.68|g' 'mbapk/mbapk_unpacked/AndroidManifest.xml' diff --git a/MBCPApp/patches/target_sdk_34.sh b/MBCPApp/patches/target_sdk_34.sh index ac4e793..392aeee 100644 --- a/MBCPApp/patches/target_sdk_34.sh +++ b/MBCPApp/patches/target_sdk_34.sh @@ -5,4 +5,7 @@ # shellcheck disable=SC1091 . "$DIRPATH"/common.sh +# applies for v6.4.62 ~ v6.5.19 sed -i 's|android:targetSdkVersion="35"|android:targetSdkVersion="34"|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml +# applies for v6.5.20+ +sed -i 's|android:targetSdkVersion="36"|android:targetSdkVersion="34"|g' "$DIRPATH"/mbapk/mbapk_unpacked/AndroidManifest.xml diff --git a/README.md b/README.md index 21bcfe3..97a76f9 100644 --- a/README.md +++ b/README.md @@ -18,6 +18,18 @@ > > Older releases (v6.4.90 or older) has mismatch commit ID with this new repo, for reference to the exactly same commit, see [MBCP_VersionReference.md](MBCP_VersionReference.md) in repository. +## Checksum + +- More information about checksum measure : +
+ +- Since v6.5.15+, the checksum is more strict, see [this explain](docs/checksum_newapp.md) for more details. + +- The checksum measure (which throws GW934 as response) is known enabled from the server-side (v6.4.64 works since days 0, but return with GW934 error after 11 days), it requires client (MBCP/MBBank) app to sent the SHA256 hash of 3 app libraries `libapp.so` | `libmbshield.so` | `libclosestmadagascar.so` and all of 5 dex files (classes1->5.dex) to the server for comparing hash, and if it doesn't match, the server will prevent the app from logging in with GW934 error : `Re-install app to continue using app.` +- The other function (eg: DigitalOTP) that works without logging in still works. + +
+ ## Introduction > Fact : MBCP / MBZDefend-Fix is my "hobby project", I maintain it in my free times :> @@ -56,40 +68,42 @@ ### [📦 `MB Bank : com.mbmobile`](https://t.me/embeeapks) +> Any version from v6.4.63 and above should be patchable, but some version, such as v6.5.15, or v6.4.67+ has enhanced checksum mechanism, the patch still works, but the app itself will refuse to login. *Last updated situation: 2026/09/09* +
| ⚙️ Patch | 📜 Description | 🏦 Suggested version | |:--------:|:--------------:|:-----------------:| -| `Add verified badge` | Replaces the MIC protection shield with verified badge to make it looks more cute :3 | v6.4.0 ~ v6.5.11 | -| `Adaptive launcher icon` | Adds the adaptive & themed icon support to the app. Thanks to @fukiame ! | v6.4.0 ~ v6.5.11 | -| `Proper notification icon` | Temporary fixes for the app notification icon. Thanks to @fukiame ! | v6.4.0 ~ v6.5.11 | -| `Better custom background screen` | Replace the preview custom background from awful to useful. | v6.4.84 ~ v6.5.11 | -| `Change app logo` | Change the app logo with set of icons. | v6.4.0 ~ v6.5.11 | -| `Change widget background to dark ` | Change widget background to dark if you use MBBHomeWidget. | v6.4.0 ~ v6.5.11 | -| `Custom VTAP screen` | Warn users about critical VTAP trigger error from app. | v6.4.53 ~ v6.5.11 | -| `Custom sub-badge` | Replace original animated promotion badge with static badge for Basic users | v6.4.44 ~ v6.5.11 | -| `Disable MB Membership` | Disable the MB Membership badge below pfp and all of it's features. (limited features with v6.4.67+) | v6.4.0 ~ v6.5.11 | -| `Tian37 Fix` | Nuke detection points within Tian37 libraries. (Causing GW934 error for v6.5.7+) | v6.4.87 ~ v6.5.11 | -| `Force portrait screen` | Force the screen always portrait on app, especially when launching app. | v6.4.0 ~ v6.5.11 | -| `Fix VTAP certificate` | Update or downgrade VTAP certificate for older/newer app version, so it can work again in future. Read `docs/fix-vtap-cert.md` to know how to use it. | v6.4.67 ~ v6.5.11 | -| `Remove MB AI Slop resources` | Remove the MB AI slop resources from app. | v6.4.74 ~ v6.5.11 | -| `Remove MB Themes Store` | Remove the MB Themes Store banner from Themes list, preventing access to MB Theme Store. | v6.4.28 ~ v6.5.11 | -| `Remove invoke to zShield` | Make the app stop invoking to zShield when opening (MainActivity) and (MBBHomeWidgetQR) only (causing GW934 error for v6.4.67+) | v6.4.22 ~ v6.5.11 | -| `Remove built-in fonts` | Remove app font and force to use device font for most app components. | v6.4.0 ~ v6.5.11 | -| `Modify app theme` | Modify the built-in app theme from original one to other themes. | v6.4.30 ~ v6.5.11 | -| `Remove garbage permission and activities` | Removes tracking permission & activities from app. | v6.4.0 ~ v6.5.11 | -| `Revert old eMBee logo` | Revert old eMBee logo, especially on product consultation options. | v6.4.53 ~ v6.5.11 | -| `Remove useless libraries` | Remove the useless libraries from app, only for v6.4.67+ | v6.4.67 ~ v6.5.11 | -| `Remove animated QR background` | Remove the animated QR background from bottom navigation bar and replace with white background. | v6.4.43 ~ v6.5.11 | -| `Remove VNPAY VMB20` | Remove the VNPAY Airplane related activities. | v6.4.55 ~ v6.5.11 | -| `Restore old registration resources` | Restore old resources on `onboarding` page. | v6.4.48 ~ v6.5.11 | -| `Hide VTAP root detection activity & dialog` | Hide the old root detection screen and dialog showing "Device is rooted" (might have issues with some HyperOS ROMs). (causing GW934 error for v6.4.67+) | v6.4.0 ~ v6.5.6 | -| `Legacy hide VTAP activity & dialog` | Hide the first root detection screen with dialog showing "Device is rooted" but not bypassing it. (GW908 will still present, unlike standard `Hide VTAP root detection activity & dialog` patch). Only use for some ugly ROMs which is crashing with standard patch. (Causing GW934 error for v6.4.67+) | v6.4.53 ~ v6.5.11 | -| `Remove protection shield` | Remove the MIC protection shield on profile picture and login screen. (not app protection) | v6.4.0 ~ v6.5.11 | -| `Remove app from launcher` | Remove the app icon from launcher, and start with `am start` or with MBZDefend-Fix Action/Termux. | v6.4.0 ~ v6.5.11 | -| `Set targetSdkVersion to 34` | Set the `targetSdkVersion` to 34 (Android 14) to prevent UI issues on some activities. | v6.4.10 ~ v6.5.11 | -| `Add modified resources` | Adds the specific strings for MBCP on eKYC phases, and modify the DigiBank logo. | v6.4.0 ~ v6.5.11 | -| `Add anime resources` | Adds anime-related resources to some components inside app. | v6.4.45 ~ v6.5.11 | +| `Add verified badge` | Replaces the MIC protection shield with verified badge to make it looks more cute :3 | v6.4.0 ~ v6.5.14 | +| `Adaptive launcher icon` | Adds the adaptive & themed icon support to the app. Thanks to @fukiame ! | v6.4.0 ~ v6.5.14 | +| `Proper notification icon` | Temporary fixes for the app notification icon. Thanks to @fukiame ! | v6.4.0 ~ v6.5.14 | +| `Better custom background screen` | Replace the preview custom background from awful to useful. | v6.4.84 ~ v6.5.14 | +| `Change app logo` | Change the app logo with set of icons. | v6.4.0 ~ v6.5.14 | +| `Change widget background to dark ` | Change widget background to dark if you use MBBHomeWidget. | v6.4.0 ~ v6.5.14 | +| `Custom VTAP screen` | Warn users about critical VTAP trigger error from app. | v6.4.53 ~ v6.5.14 | +| `Custom sub-badge` | Replace original animated promotion badge with static badge for Basic users | v6.4.44 ~ v6.5.14 | +| `Disable MB Membership` | Disable the MB Membership badge below pfp and all of it's features. (limited features with v6.4.67+) | v6.4.0 ~ v6.5.14 | +| `Tian37 Fix` | Nuke detection points within Tian37 libraries. (Causing GW934 error for v6.5.7+) | v6.4.87 ~ v6.5.14 | +| `Force portrait screen` | Force the screen always portrait on app, especially when launching app. | v6.4.0 ~ v6.5.14 | +| `Fix VTAP certificate` | Update or downgrade VTAP certificate for older/newer app version, so it can work again in future. Read `docs/fix-vtap-cert.md` to know how to use it. | v6.4.67 ~ v6.5.14 | +| `Remove MB AI Slop resources` | Remove the MB AI slop resources from app. | v6.4.74 ~ v6.5.14 | +| `Remove MB Themes Store` | Remove the MB Themes Store banner from Themes list, preventing access to MB Theme Store. | v6.4.28 ~ v6.5.14 | +| `Remove invoke to zShield` | Make the app stop invoking to zShield when opening (MainActivity) and (MBBHomeWidgetQR) only (causing GW934 error for v6.4.67+) | v6.4.22 ~ v6.5.14 | +| `Remove built-in fonts` | Remove app font and force to use device font for most app components. | v6.4.0 ~ v6.5.14 | +| `Modify app theme` | Modify the built-in app theme from original one to other themes. | v6.4.30 ~ v6.5.14 | +| `Remove garbage permission and activities` | Removes tracking permission & activities from app. | v6.4.0 ~ v6.5.14 | +| `Revert old eMBee logo` | Revert old eMBee logo, especially on product consultation options. | v6.4.53 ~ v6.5.14 | +| `Remove useless libraries` | Remove the useless libraries from app, only for v6.4.67+ | v6.4.67 ~ v6.5.14 | +| `Remove animated QR background` | Remove the animated QR background from bottom navigation bar and replace with white background. | v6.4.43 ~ v6.5.14 | +| `Remove VNPAY VMB20` | Remove the VNPAY Airplane related activities. | v6.4.55 ~ v6.5.14 | +| `Restore old registration resources` | Restore old resources on `onboarding` page. | v6.4.48 ~ v6.5.14 | +| `Hide VTAP root detection activity & dialog` | Hide the old root detection screen and dialog showing "Device is rooted" (might have issues with some HyperOS ROMs). (causing GW934 error for v6.4.67+) | v6.4.0 ~ v6.5.14 | +| `Legacy hide VTAP activity & dialog` | Hide the first root detection screen with dialog showing "Device is rooted" but not bypassing it. (GW908 will still present, unlike standard `Hide VTAP root detection activity & dialog` patch). Only use for some ugly ROMs which is crashing with standard patch. (Causing GW934 error for v6.4.67+) | v6.4.53 ~ v6.5.14 | +| `Remove protection shield` | Remove the MIC protection shield on profile picture and login screen. (not app protection) | v6.4.0 ~ v6.5.14 | +| `Remove app from launcher` | Remove the app icon from launcher, and start with `am start` or with MBZDefend-Fix Action/Termux. | v6.4.0 ~ v6.5.14 | +| `Set targetSdkVersion to 34` | Set the `targetSdkVersion` to 34 (Android 14) to prevent UI issues on some activities. | v6.4.10 ~ v6.5.14 | +| `Add modified resources` | Adds the specific strings for MBCP on eKYC phases, and modify the DigiBank logo. | v6.4.0 ~ v6.5.14 | +| `Add anime resources` | Adds anime-related resources to some components inside app. | v6.4.45 ~ v6.5.14 |
@@ -336,15 +350,6 @@ Early note : When I created @mbbmod channel back in 2023, no one knows it for mo - [x] Adapt new v6.4.68 trungthu theme -## Old measure - -- More information about GW934 measure : -
- -- The `GW934` error is known enabled from the server-side (v6.4.64 works since days 0, but return with GW934 error after 11 days), it requires client (MBCP/MBBank) app to sent the SHA256 hash of 3 app libraries `libapp.so` | `libmbshield.so` | `libclosestmadagascar.so` and all of 5 dex files (classes1->5.dex) to the server for comparing hash, and if it doesn't match, the server will prevent the app from logging in with GW934 error : `Re-install app to continue using app.` -- The other function (eg: DigitalOTP) that works without logging in still works. - -
## Credits - [apktool](https://github.com/iBotPeaches/Apktool) diff --git a/docs/checksum_newapp.md b/docs/checksum_newapp.md new file mode 100644 index 0000000..e7f3308 --- /dev/null +++ b/docs/checksum_newapp.md @@ -0,0 +1,43 @@ + + +# MBBank v6.5.15+ checksum list + +in first day of v6.5.15+ released, there is no such checksum, it still the same as before, only until 4 days since release, there is toggle in backend that enable the check, remain unaffected for older base + +same as v6.4.63+, in first day nothing happens, no checksum, but after 11 days, checksum appears. + +if one of these is modified (even one bit) will trigger checksum fail that refuse to accept login from + +all of this is both app & server side, server side ask for checksum, the client get sha256 hash and send to server side `getSHFiles` and if something mismatch, the server side will refuse to login and return GW934 as response to app + +```shell +# outside assets (v6.5.15+) +mb.apk/AndroidManifest.xml +mb.apk/lib/arm64-v8a/*.so # previously is libapp / zshield & zdefend libs only since v6.4.63+ +mb.apk/lib/armeabi-v7a/*.so # previously is libapp / zshield & zdefend libs only since v6.4.63+ +mb.apk/classes*.dex # since v6.4.63+ + +# in assets +# zimperium (v6.5.15+) +mb.apk/assets/zimperium_local_model_randomized_filename* +mb.apk/assets/zimperium_encrypted_dex_folder/*.odex +mb.apk/assets/*.szip # zshield encrypted files + +# vkey vtap (v6.5.15+) +mb.apk/assets/firmware # vkey vtap fw +mb.apk/assets/profile # vkey vtap profile +mb.apk/assets/signature # vtap vkey signature +mb.apk/version.json # vtap vkey vos info +mb.apk/voscodesign.vky +mb.apk/vkeylicensepack + +# singalarity ekyc files (v6.5.15+) +mb.apk/assets/sgprofile +mb.apk/assets/smart_ekyc_finall.zip +mb.apk/assets/media_init_data + +# flutter assets (v6.5.15+) +mb.apk/assets/flutter_assets/assets/fonts/* +mb.apk/assets/flutter_assets/fonts/* +mb.apk/assets/flutter_assets/FontManifest.json +```