add [Remove invoke to mbshield] patch
- This only prevent "MainActivity" and "MBBHomeWidgetQR" from invoking to mbshield library, which is malicious!
This commit is contained in:
parent
273278af31
commit
4d2f52ee65
3 changed files with 202 additions and 5 deletions
|
|
@ -12,7 +12,7 @@ fi
|
|||
echo ---------------------------
|
||||
echo Patch list for MBCPApp :
|
||||
PS3='Select patch options : '
|
||||
select opt in 'Autopatch strings' 'Change app logo' 'Force portrait screen' 'Remove bulit-in fonts' 'Modify app theme' 'Remove garbage permission and activities' 'Remove eMBee' 'Remove banners & MiniApp' 'Bypass accessibility & malicious apps check' 'Hide VTAP root detection activity & dialog' 'Remove new root detection' 'Add modified resources' 'Bypass signature check' 'Bypass 1200 error [v6.4.45]' 'Exit'
|
||||
select opt in 'Autopatch strings' 'Change app logo' 'Force portrait screen' 'Remove invoke to mbshield' 'Remove bulit-in fonts' 'Modify app theme' 'Remove garbage permission and activities' 'Remove eMBee' 'Remove banners & MiniApp' 'Bypass accessibility & malicious apps check' 'Hide VTAP root detection activity & dialog' 'Remove new root detection' 'Add modified resources' 'Bypass signature check' 'Bypass 1200 error [v6.4.45]' 'Exit'
|
||||
do
|
||||
if [ "$opt" == 'Autopatch strings' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked/lib ]
|
||||
|
|
@ -183,6 +183,20 @@ do
|
|||
rm -f 'mbapk/mbapk_unpacked/assets/flutter_assets/assets/images/dynamic/base/eMBee_img_login.webp'
|
||||
echo "Applied [Remove eMBee] patch !!!"
|
||||
|
||||
elif [ "$opt" == 'Remove invoke to mbshield' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/patches/noinvoke ]
|
||||
then
|
||||
echo "Currently only support remove invoke mbshield to [io.flutter.plugins.MainActivity] and [MBBHomeWidgetQR] !!!"
|
||||
echo "Copying..."
|
||||
rm -f 'mbapk/mbapk_unpacked/smali_classes4/io/flutter/plugins/MainAcitivity.smali'
|
||||
rm -f 'mbapk/mbapk_unpacked/smali_classes4/io/flutter/plugins/MBBHomeWidgetQR.smali'
|
||||
cp -f 'patches/noinvoke/MainActivity.smali' 'mbapk/mbapk_unpacked/smali_classes4/io/flutter/plugins'
|
||||
cp -f 'patches/noinvoke/MBBHomeWidgetQR.smali' 'mbapk/mbapk_unpacked/smali_classes4/io/flutter/plugins'
|
||||
echo "Applied [Remove invoke to mbshield] patch !!!"
|
||||
else
|
||||
echo "noinvoke patch not found!"
|
||||
fi
|
||||
|
||||
|
||||
elif [ "$opt" == 'Remove banners & MiniApp' ]; then
|
||||
if [ -d ~/mbbpatch/MBCPApp/mbapk/mbapk_unpacked ]
|
||||
|
|
@ -329,10 +343,6 @@ elif [ "$opt" == 'Remove bulit-in fonts' ]; then
|
|||
cp -f 'patches/resources/font/medium.ttf' 'mbapk/mbapk_unpacked/res/font/'
|
||||
cp -f 'patches/resources/font/regular.ttf' 'mbapk/mbapk_unpacked/res/font/'
|
||||
echo "Applied [Remove bulit-in fonts] patch !!!"
|
||||
|
||||
|
||||
|
||||
|
||||
else
|
||||
echo "[mbapk_unpacked] not found ! Please unpack APK first !"
|
||||
fi
|
||||
|
|
|
|||
152
MBCPApp/patches/noinvoke/MBBHomeWidgetQR.smali
Normal file
152
MBCPApp/patches/noinvoke/MBBHomeWidgetQR.smali
Normal file
|
|
@ -0,0 +1,152 @@
|
|||
.class public final Lio/flutter/plugins/MBBHomeWidgetQR;
|
||||
.super Les/antonborri/home_widget/HomeWidgetProvider;
|
||||
.source "SourceFile"
|
||||
|
||||
|
||||
# annotations
|
||||
.annotation build Lkotlin/jvm/internal/SourceDebugExtension;
|
||||
value = {
|
||||
"SMAP\nMBBHomeWidgetQR.kt\nKotlin\n*S Kotlin\n*F\n+ 1 MBBHomeWidgetQR.kt\nio/flutter/plugins/MBBHomeWidgetQR\n+ 2 _Arrays.kt\nkotlin/collections/ArraysKt___ArraysKt\n*L\n1#1,50:1\n13430#2,2:51\n*S KotlinDebug\n*F\n+ 1 MBBHomeWidgetQR.kt\nio/flutter/plugins/MBBHomeWidgetQR\n*L\n21#1:51,2\n*E\n"
|
||||
}
|
||||
.end annotation
|
||||
|
||||
|
||||
# direct methods
|
||||
.method public constructor <init>()V
|
||||
.registers 1
|
||||
|
||||
invoke-direct {p0}, Les/antonborri/home_widget/HomeWidgetProvider;-><init>()V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
|
||||
# virtual methods
|
||||
.method public onUpdate(Landroid/content/Context;Landroid/appwidget/AppWidgetManager;[ILandroid/content/SharedPreferences;)V
|
||||
.registers 15
|
||||
.param p1 # Landroid/content/Context;
|
||||
.annotation build Lorg/jetbrains/annotations/NotNull;
|
||||
.end annotation
|
||||
.end param
|
||||
.param p2 # Landroid/appwidget/AppWidgetManager;
|
||||
.annotation build Lorg/jetbrains/annotations/NotNull;
|
||||
.end annotation
|
||||
.end param
|
||||
.param p3 # [I
|
||||
.annotation build Lorg/jetbrains/annotations/NotNull;
|
||||
.end annotation
|
||||
.end param
|
||||
.param p4 # Landroid/content/SharedPreferences;
|
||||
.annotation build Lorg/jetbrains/annotations/NotNull;
|
||||
.end annotation
|
||||
.end param
|
||||
|
||||
const-string v0, "context"
|
||||
|
||||
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
const-string v0, "appWidgetManager"
|
||||
|
||||
invoke-static {p2, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
const-string v0, "appWidgetIds"
|
||||
|
||||
invoke-static {p3, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
const-string v0, "widgetData"
|
||||
|
||||
invoke-static {p4, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
array-length v0, p3
|
||||
|
||||
const/4 v1, 0x0
|
||||
|
||||
move v2, v1
|
||||
|
||||
:goto_17
|
||||
if-ge v2, v0, :cond_72
|
||||
|
||||
aget v3, p3, v2
|
||||
|
||||
new-instance v4, Landroid/widget/RemoteViews;
|
||||
|
||||
invoke-virtual {p1}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
|
||||
|
||||
move-result-object v5
|
||||
|
||||
const v6, 0x7f0d0095
|
||||
|
||||
invoke-direct {v4, v5, v6}, Landroid/widget/RemoteViews;-><init>(Ljava/lang/String;I)V
|
||||
|
||||
const-string v5, "accNo"
|
||||
|
||||
const/4 v6, 0x0
|
||||
|
||||
invoke-interface {p4, v5, v6}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
|
||||
|
||||
move-result-object v5
|
||||
|
||||
const-string v7, "qrPath"
|
||||
|
||||
invoke-interface {p4, v7, v6}, Landroid/content/SharedPreferences;->getString(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
|
||||
|
||||
move-result-object v6
|
||||
|
||||
const v7, 0x7f0a023c
|
||||
|
||||
sget-object v8, Lio/flutter/plugins/HomeWidgetTypeAndroid;->Companion:Lio/flutter/plugins/HomeWidgetTypeAndroid$Companion;
|
||||
|
||||
sget-object v9, Lio/flutter/plugins/HomeWidgetTypeAndroid;->MyQrCode:Lio/flutter/plugins/HomeWidgetTypeAndroid;
|
||||
|
||||
invoke-virtual {v9}, Lio/flutter/plugins/HomeWidgetTypeAndroid;->getHomeWidgetKey()Ljava/lang/String;
|
||||
|
||||
move-result-object v9
|
||||
|
||||
invoke-virtual {v8, p1, v9, v5}, Lio/flutter/plugins/HomeWidgetTypeAndroid$Companion;->pushScreen(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)Landroid/app/PendingIntent;
|
||||
|
||||
move-result-object v5
|
||||
|
||||
invoke-virtual {v4, v7, v5}, Landroid/widget/RemoteViews;->setOnClickPendingIntent(ILandroid/app/PendingIntent;)V
|
||||
|
||||
const/4 v5, 0x4
|
||||
|
||||
const v7, 0x7f0a0069
|
||||
|
||||
const v8, 0x7f0a006a
|
||||
|
||||
const v9, 0x7f0a007e
|
||||
|
||||
if-eqz v6, :cond_60
|
||||
|
||||
invoke-static {v6}, Landroid/graphics/BitmapFactory;->decodeFile(Ljava/lang/String;)Landroid/graphics/Bitmap;
|
||||
|
||||
move-result-object v6
|
||||
|
||||
invoke-virtual {v4, v9, v6}, Landroid/widget/RemoteViews;->setImageViewBitmap(ILandroid/graphics/Bitmap;)V
|
||||
|
||||
invoke-virtual {v4, v8, v5}, Landroid/widget/RemoteViews;->setViewVisibility(II)V
|
||||
|
||||
invoke-virtual {v4, v7, v1}, Landroid/widget/RemoteViews;->setViewVisibility(II)V
|
||||
|
||||
goto :goto_6c
|
||||
|
||||
:cond_60
|
||||
const v6, 0x7f080097
|
||||
|
||||
invoke-virtual {v4, v9, v6}, Landroid/widget/RemoteViews;->setImageViewResource(II)V
|
||||
|
||||
invoke-virtual {v4, v8, v1}, Landroid/widget/RemoteViews;->setViewVisibility(II)V
|
||||
|
||||
invoke-virtual {v4, v7, v5}, Landroid/widget/RemoteViews;->setViewVisibility(II)V
|
||||
|
||||
:goto_6c
|
||||
invoke-virtual {p2, v3, v4}, Landroid/appwidget/AppWidgetManager;->updateAppWidget(ILandroid/widget/RemoteViews;)V
|
||||
|
||||
add-int/lit8 v2, v2, 0x1
|
||||
|
||||
goto :goto_17
|
||||
|
||||
:cond_72
|
||||
return-void
|
||||
.end method
|
||||
|
||||
35
MBCPApp/patches/noinvoke/MainActivity.smali
Normal file
35
MBCPApp/patches/noinvoke/MainActivity.smali
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
.class public final Lio/flutter/plugins/MainActivity;
|
||||
.super Lio/flutter/embedding/android/FlutterFragmentActivity;
|
||||
.source "SourceFile"
|
||||
|
||||
|
||||
# direct methods
|
||||
.method public constructor <init>()V
|
||||
.registers 1
|
||||
|
||||
invoke-direct {p0}, Lio/flutter/embedding/android/FlutterFragmentActivity;-><init>()V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
|
||||
# virtual methods
|
||||
.method public configureFlutterEngine(Lio/flutter/embedding/engine/FlutterEngine;)V
|
||||
.registers 3
|
||||
.param p1 # Lio/flutter/embedding/engine/FlutterEngine;
|
||||
.annotation build Landroidx/annotation/NonNull;
|
||||
.end annotation
|
||||
|
||||
.annotation build Lorg/jetbrains/annotations/NotNull;
|
||||
.end annotation
|
||||
.end param
|
||||
|
||||
const-string v0, "flutterEngine"
|
||||
|
||||
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V
|
||||
|
||||
invoke-static {p1}, Lio/flutter/plugins/GeneratedPluginRegistrant;->registerWith(Lio/flutter/embedding/engine/FlutterEngine;)V
|
||||
|
||||
return-void
|
||||
.end method
|
||||
|
||||
Loading…
Reference in a new issue