看了一下https://www.52pojie.cn/thread-674465-1-1.html里面的过验证方式
一时兴起想要用dmm游戏来试试
反编译搜索dex后找到一个permission check文件
然后呢?我不得不伸出手
`.class public final Landroid/support/v4/content/PermissionChecker;
.super Ljava/lang/Object;
.source "PermissionChecker.java"
annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Landroid/support/v4/content/PermissionChecker$PermissionResult;
}
.end annotation
static fields
.field public static final PERMISSION_DENIED:I = -0x1
.field public static final PERMISSION_DENIED_APP_OP:I = -0x2
.field public static final PERMISSION_GRANTED:I
direct methods
.method private constructor <init>()V
.registers 1
.prologue
.line 70
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 72
return-void
.end method
.method public static checkCallingOrSelfPermission(Landroid/content/Context;Ljava/lang/String😉I
.registers 5
.param p0, "context" # Landroid/content/Context;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p1, "permission" # Ljava/lang/String;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.prologue
.line 160
invoke-static {}, Landroid/os/Binder;->getCallingPid()I
move-result v1
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v2
nop
invoke-virtual {p0}, Landroid/content/Context;->getPackageName()Ljava/lang/String;
move-result-object v0
.line 162
.local v0, "packageName":Ljava/lang/String;
:goto_d
invoke-static {}, Landroid/os/Binder;->getCallingPid()I
move-result v1
invoke-static {}, Landroid/os/Binder;->getCallingUid()I
move-result v2
invoke-static {p0, p1, v1, v2, v0}, Landroid/support/v4/content/PermissionChecker;->checkPermission(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;)I
move-result v1
return v1
.line 160
.end local v0 # "packageName":Ljava/lang/String;
const/4 v0, 0x0
goto :goto_d
.end method
.method public static checkCallingPermission(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String😉I
.registers 5
.param p0, "context" # Landroid/content/Context;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p1, "permission" # Ljava/lang/String;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p2, "packageName" # Ljava/lang/String;
.prologue
.line 142
invoke-static {}, Landroid/os/Binder;->getCallingPid()I
move-result v0
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v1
nop
.line 143
const/4 v0, -0x1
.line 145
:goto_a
return v0
invoke-static {}, Landroid/os/Binder;->getCallingPid()I
move-result v0
invoke-static {}, Landroid/os/Binder;->getCallingUid()I
move-result v1
invoke-static {p0, p1, v0, v1, p2}, Landroid/support/v4/content/PermissionChecker;->checkPermission(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String;)I
move-result v0
goto :goto_a
.end method
.method public static checkPermission(Landroid/content/Context;Ljava/lang/String;IILjava/lang/String😉I
.registers 10
.param p0, "context" # Landroid/content/Context;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p1, "permission" # Ljava/lang/String;
.annotation build Landroid/support/annotation/NonNull;
.end annotation
.end param
.param p2, "pid" # I
.param p3, "uid" # I
.param p4, "packageName" # Ljava/lang/String;
.prologue
const/4 v3, 0x0
const/4 v2, -0x1
.line 89
invoke-virtual {p0, p1, p2, p3}, Landroid/content/Context;->checkPermission(Ljava/lang/String;II)I
move-result v4
nop
.line 111
:goto_7
return v2
.line 93
invoke-static {p1}, Landroid/support/v4/app/AppOpsManagerCompat;->permissionToOp(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 94
.local v0, "op":Ljava/lang/String;
nop
move v2, v3
.line 95
goto :goto_7
.line 98
nop
.line 99
invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v4
invoke-virtual {v4, p3}, Landroid/content/pm/PackageManager;->getPackagesForUid(I)[Ljava/lang/String;
move-result-object v1
.line`