MultiDexForTinker$V4.smali
.class final Lcom/wrapper/proxyapplication/MultiDexForTinker$V4;
.super Ljava/lang/Object;
.source "MultiDexForTinker.java"
# annotations
.annotation system Ldalvik/annotation/EnclosingClass;
value = Lcom/wrapper/proxyapplication/MultiDexForTinker;
.end annotation
.annotation system Ldalvik/annotation/InnerClass;
accessFlags = 0x1a
name = "V4"
.end annotation
# direct methods
.method private constructor <init>()V
.registers 1
.line 1021
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method static synthetic access$100(Ljava/lang/ClassLoader;Ljava/lang/reflect/Field;Ljava/util/List;Ljava/io/File;)Ljava/util/ArrayList;
.registers 4
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalArgumentException;,
Ljava/lang/IllegalAccessException;,
Ljava/lang/NoSuchFieldException;,
Ljava/io/IOException;
}
.end annotation
.line 1021
invoke-static {p0, p1, p2, p3}, Lcom/wrapper/proxyapplication/MultiDexForTinker$V4;->install(Ljava/lang/ClassLoader;Ljava/lang/reflect/Field;Ljava/util/List;Ljava/io/File;)Ljava/util/ArrayList;
move-result-object p0
return-object p0
.end method
.method static synthetic access$300(Ljava/lang/ClassLoader;Ljava/lang/reflect/Field;Ljava/util/List;Ljava/io/File;I)Ljava/util/ArrayList;
.registers 5
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalArgumentException;,
Ljava/lang/IllegalAccessException;,
Ljava/lang/NoSuchFieldException;,
Ljava/io/IOException;
}
.end annotation
.line 1021
invoke-static {p0, p1, p2, p3, p4}, Lcom/wrapper/proxyapplication/MultiDexForTinker$V4;->install(Ljava/lang/ClassLoader;Ljava/lang/reflect/Field;Ljava/util/List;Ljava/io/File;I)Ljava/util/ArrayList;
move-result-object p0
return-object p0
.end method
.method private static install(Ljava/lang/ClassLoader;Ljava/lang/reflect/Field;Ljava/util/List;Ljava/io/File;)Ljava/util/ArrayList;
.registers 16
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/ClassLoader;",
"Ljava/lang/reflect/Field;",
"Ljava/util/List<",
"Ljava/io/File;",
">;",
"Ljava/io/File;",
")",
"Ljava/util/ArrayList<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalArgumentException;,
Ljava/lang/IllegalAccessException;,
Ljava/lang/NoSuchFieldException;,
Ljava/io/IOException;
}
.end annotation
.line 1030
invoke-interface {p2}, Ljava/util/List;->size()I
move-result v0
.line 1034
new-instance v1, Ljava/lang/StringBuilder;
invoke-virtual {p1, p0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljava/lang/String;
invoke-direct {v1, v2}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 1035
new-array v2, v0, [Ljava/lang/String;
.line 1036
new-array v3, v0, [Ljava/io/File;
.line 1037
new-array v4, v0, [Ljava/util/zip/ZipFile;
.line 1038
new-array v5, v0, [Ldalvik/system/DexFile;
.line 1040
array-length v6, v5
if-ne v6, v0, :cond_a7
.line 1042
new-instance v0, Ljava/util/ArrayList;
invoke-direct {v0}, Ljava/util/ArrayList;-><init>()V
.line 1044
invoke-interface {p2}, Ljava/util/List;->listIterator()Ljava/util/ListIterator;
move-result-object p2
:goto_23
invoke-interface {p2}, Ljava/util/ListIterator;->hasNext()Z
move-result v6
if-eqz v6, :cond_88
.line 1045
invoke-interface {p2}, Ljava/util/ListIterator;->next()Ljava/lang/Object;
move-result-object v6
check-cast v6, Ljava/io/File;
.line 1046
invoke-virtual {v6}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v7
.line 1047
invoke-virtual {p3}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v8
.line 1048
# invokes: Lcom/wrapper/proxyapplication/MultiDexForTinker;->getprefixname(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v7}, Lcom/wrapper/proxyapplication/MultiDexForTinker;->access$800(Ljava/lang/String;)Ljava/lang/String;
move-result-object v9
const/16 v10, 0x3a
.line 1049
invoke-virtual {v1, v10}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v1, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 1050
invoke-interface {p2}, Ljava/util/ListIterator;->previousIndex()I
move-result v10
.line 1051
aput-object v7, v2, v10
.line 1052
aput-object v6, v3, v10
.line 1053
new-instance v11, Ljava/util/zip/ZipFile;
invoke-direct {v11, v6}, Ljava/util/zip/ZipFile;-><init>(Ljava/io/File;)V
aput-object v11, v4, v10
.line 1054
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v8, "/"
invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v8, ".dex"
invoke-virtual {v6, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v6}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v6
const/4 v8, 0x0
invoke-static {v7, v6, v8}, Ldalvik/system/DexFile;->loadDex(Ljava/lang/String;Ljava/lang/String;I)Ldalvik/system/DexFile;
move-result-object v6
aput-object v6, v5, v10
.line 1055
aget-object v6, v5, v10
const-string v7, "mCookie"
# invokes: Lcom/wrapper/proxyapplication/MultiDexForTinker;->findField(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Field;
invoke-static {v6, v7}, Lcom/wrapper/proxyapplication/MultiDexForTinker;->access$400(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v6
.line 1056
aget-object v7, v5, v10
invoke-virtual {v6, v7}, Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
move-result v6
invoke-static {v6}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v6
.line 1058
invoke-virtual {v0, v6}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_23
.line 1061
:cond_88
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p2
invoke-virtual {p1, p0, p2}, Ljava/lang/reflect/Field;->set(Ljava/lang/Object;Ljava/lang/Object;)V
const-string p1, "mPaths"
.line 1062
# invokes: Lcom/wrapper/proxyapplication/MultiDexForTinker;->expandFieldArray(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-static {p0, p1, v2}, Lcom/wrapper/proxyapplication/MultiDexForTinker;->access$500(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
const-string p1, "mFiles"
.line 1063
# invokes: Lcom/wrapper/proxyapplication/MultiDexForTinker;->expandFieldArray(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-static {p0, p1, v3}, Lcom/wrapper/proxyapplication/MultiDexForTinker;->access$500(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
const-string p1, "mZips"
.line 1064
# invokes: Lcom/wrapper/proxyapplication/MultiDexForTinker;->expandFieldArray(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-static {p0, p1, v4}, Lcom/wrapper/proxyapplication/MultiDexForTinker;->access$500(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
const-string p1, "mDexs"
.line 1065
# invokes: Lcom/wrapper/proxyapplication/MultiDexForTinker;->expandFieldArray(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
invoke-static {p0, p1, v5}, Lcom/wrapper/proxyapplication/MultiDexForTinker;->access$500(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;)V
const/4 p0, 0x1
.line 1066
sput p0, Lcom/wrapper/proxyapplication/MultiDexForTinker;->hasInjected:I
return-object v0
.line 1041
:cond_a7
new-instance p0, Ljava/io/IOException;
const-string p1, "load dex failed"
invoke-direct {p0, p1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
goto :goto_b0
:goto_af
throw p0
:goto_b0
goto :goto_af
.end method
.method private static install(Ljava/lang/ClassLoader;Ljava/lang/reflect/Field;Ljava/util/List;Ljava/io/File;I)Ljava/util/ArrayList;
.registers 21
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Ljava/lang/ClassLoader;",
"Ljava/lang/reflect/Field;",
"Ljava/util/List<",
"Ljava/io/File;",
">;",
"Ljava/io/File;",
"I)",
"Ljava/util/ArrayList<",
"Ljava/lang/Object;",
">;"
}
.end annotation
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/IllegalArgumentException;,
Ljava/lang/IllegalAccessException;,
Ljava/lang/NoSuchFieldException;,
Ljava/io/IOException;
}
.end annotation
move-object/from16 v0, p0
move-object/from16 v1, p1
move/from16 v2, p4
.line 1079
invoke-interface/range {p2 .. p2}, Ljava/util/List;->size()I
move-result v3
.line 1083
new-instance v4, Ljava/lang/StringBuilder;
invoke-virtual {v1, v0}, Ljava/lang/reflect/Field;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v5
check-cast v5, Ljava/lang/String;
invoke-direct {v4, v5}, Ljava/lang/StringBuilder;-><init>(Ljava/lang/String;)V
.line 1084
new-array v5, v3, [Ljava/lang/String;
.line 1085
new-array v6, v3, [Ljava/io/File;
.line 1086
new-array v7, v3, [Ljava/util/zip/ZipFile;
.line 1087
new-array v8, v3, [Ldalvik/system/DexFile;
.line 1089
array-length v9, v8
if-ne v9, v3, :cond_b5
.line 1092
new-instance v3, Ljava/util/ArrayList;
invoke-direct {v3}, Ljava/util/ArrayList;-><init>()V
.line 1093
invoke-interface/range {p2 .. p2}, Ljava/util/List;->listIterator()Ljava/util/ListIterator;
move-result-object v9
:goto_29
invoke-interface {v9}, Ljava/util/ListIterator;->hasNext()Z
move-result v10
if-eqz v10, :cond_8e
.line 1094
invoke-interface {v9}, Ljava/util/ListIterator;->next()Ljava/lang/Object;
move-result-object v10
check-cast v10, Ljava/io/File;
.line 1095
invoke-virtual {v10}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v11
.line 1096
invoke-virtual/range {p3 .. p3}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v12
.line 1097
# invokes: Lcom/wrapper/proxyapplication/MultiDexForTinker;->getprefixname(Ljava/lang/String;)Ljava/lang/String;
invoke-static {v11}, Lcom/wrapper/proxyapplication/MultiDexForTinker;->access$800(Ljava/lang/String;)Ljava/lang/String;
move-result-object v13
const/16 v14, 0x3a
.line 1098
invoke-virtual {v4, v14}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
invoke-virtual {v4, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
.line 1099
invoke-interface {v9}, Ljava/util/ListIterator;->previousIndex()I
move-result v14
.line 1100
aput-object v11, v5, v14
.line 1101
aput-object v10, v6, v14
.line 1102
new-instance v15, Ljava/util/zip/ZipFile;
invoke-direct {v15, v10}, Ljava/util/zip/ZipFile;-><init>(Ljava/io/File;)V
aput-object v15, v7, v14
.line 1103
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v10, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v12, "/"
invoke-virtual {v10, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v10, v13}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string v12, ".dex"
invoke-virtual {v10, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v10
const/4 v12, 0x0
invoke-static {v11, v10, v12}, Ldalvik/system/DexFile;->loadDex(Ljava/lang/String;Ljava/lang/String;I)Ldalvik/system/DexFile;
move-result-object v10
aput-object v10, v8, v14
.line 1104
aget-object v10, v8, v14
const-string v11, "mCookie"
# invokes: Lcom/wrapper/proxyapplication/MultiDexForTinker;->findField(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Field;
invoke-static {v10, v11}, Lcom/wrapper/proxyapplication/MultiDexForTinker;->access$400(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/reflect/Field;
move-result-object v10
.line 1105
aget-object v11, v8, v14
invoke-virtual {v10, v11}, Ljava/lang/reflect/Field;->getInt(Ljava/lang/Object;)I
move-result v10
invoke-static {v10}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v10
.line 1107
invoke-virtual {v3, v10}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
goto :goto_29
.line 1110
:cond_8e
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-virtual {v1, v0, v4}, Ljava/lang/reflect/Field;->set(Ljava/lang/Object;Ljava/lang/Object;)V
const-string v1, "mPaths"
.line 1111
# invokes: Lcom/wrapper/proxyapplication/MultiDexForTinker;->expandFieldArray(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;I)V
invoke-static {v0, v1, v5, v2}, Lcom/wrapper/proxyapplication/MultiDexForTinker;->access$600(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;I)V
const-string v1, "mFiles"
.line 1112
# invokes: Lcom/wrapper/proxyapplication/MultiDexForTinker;->expandFieldArray(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;I)V
invoke-static {v0, v1, v6, v2}, Lcom/wrapper/proxyapplication/MultiDexForTinker;->access$600(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;I)V
const-string v1, "mZips"
.line 1113
# invokes: Lcom/wrapper/proxyapplication/MultiDexForTinker;->expandFieldArray(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;I)V
invoke-static {v0, v1, v7, v2}, Lcom/wrapper/proxyapplication/MultiDexForTinker;->access$600(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;I)V
const-string v1, "mDexs"
.line 1114
# invokes: Lcom/wrapper/proxyapplication/MultiDexForTinker;->expandFieldArray(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;I)V
invoke-static {v0, v1, v8, v2}, Lcom/wrapper/proxyapplication/MultiDexForTinker;->access$600(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Object;I)V
const/4 v0, 0x1
.line 1115
sput v0, Lcom/wrapper/proxyapplication/MultiDexForTinker;->hasInjected:I
.line 1116
invoke-virtual {v3}, Ljava/util/ArrayList;->size()I
move-result v0
if-nez v0, :cond_b4
const/4 v0, 0x0
return-object v0
:cond_b4
return-object v3
.line 1090
:cond_b5
new-instance v0, Ljava/io/IOException;
const-string v1, "load dex failed"
invoke-direct {v0, v1}, Ljava/io/IOException;-><init>(Ljava/lang/String;)V
goto :goto_be
:goto_bd
throw v0
:goto_be
goto :goto_bd
.end method