b.smali
.class public Lcom/cleanmaster/loader/b;
.super Ljava/lang/Object;
.source "SecondaryDexEx.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Lcom/cleanmaster/loader/b$a;,
Lcom/cleanmaster/loader/b$b;
}
.end annotation
# static fields
.field static final synthetic a:Z
.field private static b:I
.field private static final c:Ljava/util/HashSet;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/HashSet",
"<",
"Lcom/cleanmaster/loader/b$b;",
">;"
}
.end annotation
.end field
.field private static d:Z
.field private static e:Ljava/lang/String;
.field private static f:Ljava/lang/Integer;
# direct methods
.method static constructor <clinit>()V
.registers 2
.prologue
const/4 v1, 0x0
.line 47
const-class v0, Lcom/cleanmaster/loader/b;
invoke-virtual {v0}, Ljava/lang/Class;->desiredAssertionStatus()Z
move-result v0
if-nez v0, :cond_29
const/4 v0, 0x1
:goto_a
sput-boolean v0, Lcom/cleanmaster/loader/b;->a:Z
.line 57
const/16 v0, 0xa
sput v0, Lcom/cleanmaster/loader/b;->b:I
.line 64
new-instance v0, Ljava/util/HashSet;
invoke-direct {v0}, Ljava/util/HashSet;-><init>()V
sput-object v0, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
.line 68
sput-boolean v1, Lcom/cleanmaster/loader/b;->d:Z
.line 70
const-string v0, ".dex"
sput-object v0, Lcom/cleanmaster/loader/b;->e:Ljava/lang/String;
.line 90
sget-object v0, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
invoke-virtual {v0}, Ljava/util/HashSet;->clear()V
.line 826
invoke-static {v1}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
sput-object v0, Lcom/cleanmaster/loader/b;->f:Ljava/lang/Integer;
return-void
:cond_29
move v0, v1
.line 47
goto :goto_a
.end method
.method public constructor <init>()V
.registers 1
.prologue
.line 47
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static final a(Landroid/content/Context;)Ljava/io/File;
.registers 4
.annotation build Landroid/annotation/SuppressLint;
value = {
"NewApi"
}
.end annotation
.prologue
.line 145
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
.line 146
const/16 v1, 0x15
if-lt v0, v1, :cond_b
.line 147
invoke-virtual {p0}, Landroid/content/Context;->getCodeCacheDir()Ljava/io/File;
move-result-object v0
.line 150
:goto_a
return-object v0
.line 149
:cond_b
invoke-virtual {p0}, Landroid/content/Context;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
move-result-object v0
.line 150
new-instance v1, Ljava/io/File;
iget-object v0, v0, Landroid/content/pm/ApplicationInfo;->dataDir:Ljava/lang/String;
const-string v2, "code_cache"
invoke-direct {v1, v0, v2}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
invoke-static {v1}, Lcom/cleanmaster/loader/b;->a(Ljava/io/File;)Ljava/io/File;
move-result-object v0
goto :goto_a
.end method
.method private static declared-synchronized a(Ljava/io/File;)Ljava/io/File;
.registers 5
.prologue
.line 155
const-class v1, Lcom/cleanmaster/loader/b;
monitor-enter v1
:try_start_3
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result v0
if-nez v0, :cond_15
.line 156
invoke-virtual {p0}, Ljava/io/File;->mkdirs()Z
move-result v0
if-nez v0, :cond_15
.line 157
invoke-virtual {p0}, Ljava/io/File;->exists()Z
:try_end_12
.catchall {:try_start_3 .. :try_end_12} :catchall_35
move-result v0
if-eqz v0, :cond_17
.line 165
:cond_15
:goto_15
monitor-exit v1
return-object p0
.line 161
:cond_17
:try_start_17
const-string v0, "SubDex"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Unable to create files subdir "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {p0}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v0, v2}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
:try_end_33
.catchall {:try_start_17 .. :try_end_33} :catchall_35
.line 162
const/4 p0, 0x0
goto :goto_15
.line 155
:catchall_35
move-exception v0
monitor-exit v1
throw v0
.end method
.method static synthetic a(Ljava/lang/Integer;)Ljava/lang/Integer;
.registers 1
.prologue
.line 47
sput-object p0, Lcom/cleanmaster/loader/b;->f:Ljava/lang/Integer;
return-object p0
.end method
.method static synthetic a()Ljava/lang/String;
.registers 1
.prologue
.line 47
sget-object v0, Lcom/cleanmaster/loader/b;->e:Ljava/lang/String;
return-object v0
.end method
.method public static a(C)V
.registers 3
.prologue
.line 775
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
sget-object v1, Lcom/cleanmaster/hpsharelib/crash/DexPathInfo;->DOING_INJECT:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(C)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/cleanmaster/hpsharelib/crash/DexPathInfo;->DOING_INJECT:Ljava/lang/String;
.line 776
return-void
.end method
.method public static a(I)V
.registers 3
.prologue
.line 778
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
sget-object v1, Lcom/cleanmaster/hpsharelib/crash/DexPathInfo;->DOING_INJECT:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, p0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
sput-object v0, Lcom/cleanmaster/hpsharelib/crash/DexPathInfo;->DOING_INJECT:Ljava/lang/String;
.line 779
return-void
.end method
.method private static a(Landroid/content/Context;Ljava/io/File;Ljava/util/HashSet;)V
.registers 11
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/io/File;",
"Ljava/util/HashSet",
"<",
"Lcom/cleanmaster/loader/b$b;",
">;)V"
}
.end annotation
.prologue
.line 782
const/16 v0, 0x78
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
.line 783
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x17
if-lt v0, v1, :cond_25
.line 785
const-string v0, "SubDex"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "Unable to do dex inject on SDK "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
sget v2, Landroid/os/Build$VERSION;->SDK_INT:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Log;->w(Ljava/lang/String;Ljava/lang/String;)I
.line 792
:cond_25
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v2
.line 793
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
sget-object v1, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "opt_dex"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 794
new-instance v4, Ljava/io/File;
invoke-direct {v4, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 795
invoke-virtual {v4}, Ljava/io/File;->exists()Z
move-result v0
if-nez v0, :cond_54
.line 796
invoke-virtual {v4}, Ljava/io/File;->mkdirs()Z
.line 798
:cond_54
:try_start_54
new-instance v5, Ljava/util/ArrayList;
invoke-direct {v5}, Ljava/util/ArrayList;-><init>()V
.line 799
const-string v0, ""
.line 800
invoke-virtual {p2}, Ljava/util/HashSet;->size()I
move-result v1
invoke-static {v1}, Lcom/cleanmaster/loader/b;->a(I)V
.line 801
invoke-virtual {p2}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator;
move-result-object v6
move-object v1, v0
:goto_67
invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_97
invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/loader/b$b;
.line 802
invoke-static {v0}, Lcom/cleanmaster/loader/b$b;->a(Lcom/cleanmaster/loader/b$b;)Ljava/io/File;
move-result-object v7
invoke-virtual {v5, v7}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 803
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v7, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-static {v0}, Lcom/cleanmaster/loader/b$b;->c(Lcom/cleanmaster/loader/b$b;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, " "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
move-object v1, v0
.line 804
goto :goto_67
.line 805
:cond_97
const-string v0, "SubDex"
new-instance v6, Ljava/lang/StringBuilder;
invoke-direct {v6}, Ljava/lang/StringBuilder;-><init>()V
const-string v7, "doDexInject "
invoke-virtual {v6, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v6
invoke-virtual {v6, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 806
invoke-virtual {p0}, Landroid/content/Context;->getClassLoader()Ljava/lang/ClassLoader;
move-result-object v0
invoke-static {v0, v4, v5}, Lcom/cleanmaster/loader/a;->a(Ljava/lang/ClassLoader;Ljava/io/File;Ljava/util/List;)V
.line 807
const/4 v0, 0x1
sput-boolean v0, Lcom/cleanmaster/loader/b;->d:Z
:try_end_b9
.catch Ljava/lang/Exception; {:try_start_54 .. :try_end_b9} :catch_107
.line 812
:goto_b9
invoke-virtual {p2}, Ljava/util/HashSet;->size()I
move-result v0
add-int/lit8 v0, v0, 0x1
invoke-static {p0, v0}, Lcom/cleanmaster/hpsharelib/crash/DexPathInfo;->isDexInjectSuccess(Landroid/content/Context;I)Z
move-result v0
.line 813
if-nez v0, :cond_cd
.line 814
const/16 v1, 0x66
invoke-static {v1}, Lcom/cleanmaster/loader/b;->a(C)V
.line 816
invoke-static {p0, p1, p2}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/io/File;Ljava/util/HashSet;)V
.line 818
:cond_cd
if-eqz v0, :cond_124
.line 819
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "doDexInject "
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v4
sub-long v2, v4, v2
invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, "ms "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, " path:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
sget-object v1, Lcom/cleanmaster/hpsharelib/crash/DexPathInfo;->DOING_INJECT:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/cleanmaster/hpsharelib/base/util/debug/Logg;->e(Ljava/lang/String;)V
.line 823
:goto_101
const/16 v0, 0x73
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
.line 824
return-void
.line 808
:catch_107
move-exception v0
.line 809
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "**CRITICAL ERROR ** SUBDEX LOAD FAILED at="
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 810
invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const/4 v1, 0x0
.line 809
invoke-static {p0, v0, v1}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
goto :goto_b9
.line 821
:cond_124
const-string v1, "SubDex"
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
const-string v5, "doDexInject "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v6
sub-long v2, v6, v2
invoke-virtual {v4, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, "ms "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2, v0}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, " path:"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
sget-object v2, Lcom/cleanmaster/hpsharelib/crash/DexPathInfo;->DOING_INJECT:Ljava/lang/String;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v1, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_101
.end method
.method public static a(Landroid/content/Context;Ljava/lang/String;)V
.registers 16
.prologue
.line 352
const/16 v0, 0x2a
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
.line 354
sget-boolean v0, Lcom/cleanmaster/loader/b;->d:Z
const/4 v1, 0x1
if-ne v0, v1, :cond_10
.line 355
const/16 v0, 0x61
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
.line 702
:goto_f
return-void
.line 359
:cond_10
if-nez p0, :cond_18
.line 360
const/16 v0, 0x62
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
goto :goto_f
.line 364
:cond_18
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v0
.line 365
const-string v2, "SubDex"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "Start of the Loading "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v0, v1}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v2, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 367
invoke-static {p0}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;)Ljava/io/File;
move-result-object v4
.line 369
if-nez v4, :cond_e5
.line 370
const-string v0, "SubDex"
const-string v1, "filesDir is null!!!"
invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 372
const/16 v1, 0xb
.line 373
const/16 v0, 0x16
.line 374
invoke-virtual {p0}, Landroid/content/Context;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
move-result-object v2
.line 375
if-eqz v2, :cond_a9
.line 376
iget-object v0, v2, Landroid/content/pm/ApplicationInfo;->dataDir:Ljava/lang/String;
.line 377
if-nez v0, :cond_64
.line 378
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "/data/data/"
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v3, v2, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 380
:cond_64
new-instance v3, Ljava/io/File;
invoke-direct {v3, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 381
if-eqz v3, :cond_d8
.line 382
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v4, 0x10
if-ge v0, v4, :cond_da
.line 386
const/4 v0, 0x3
new-array v0, v0, [I
.line 387
const/4 v4, 0x1
aput v1, v0, v4
.line 389
:try_start_77
const-string v4, "android.os.FileUtils"
invoke-static {v4}, Ljava/lang/Class;->forName(Ljava/lang/String;)Ljava/lang/Class;
move-result-object v4
const-string v5, "getPermissions"
const/4 v6, 0x2
new-array v6, v6, [Ljava/lang/Class;
const/4 v7, 0x0
const-class v8, Ljava/lang/String;
aput-object v8, v6, v7
const/4 v7, 0x1
const-class v8, [I
aput-object v8, v6, v7
invoke-virtual {v4, v5, v6}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v4
.line 391
const/4 v5, 0x0
const/4 v6, 0x2
new-array v6, v6, [Ljava/lang/Object;
const/4 v7, 0x0
invoke-virtual {v3}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v3
aput-object v3, v6, v7
const/4 v3, 0x1
aput-object v0, v6, v3
invoke-virtual {v4, v5, v6}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
.line 392
const/4 v3, 0x1
aget v0, v0, v3
:try_end_a4
.catch Ljava/lang/Exception; {:try_start_77 .. :try_end_a4} :catch_d4
.line 402
:goto_a4
iget v1, v2, Landroid/content/pm/ApplicationInfo;->uid:I
move v13, v1
move v1, v0
move v0, v13
.line 405
:cond_a9
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "**CRITICAL ERROR ** getDataCache return NULL, OldUID = "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
.line 408
invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v2, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " CurrentUID = "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 410
invoke-static {v0}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const/4 v1, 0x0
.line 405
invoke-static {p0, v0, v1}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
goto/16 :goto_f
.line 393
:catch_d4
move-exception v0
.line 394
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
:cond_d8
move v0, v1
goto :goto_a4
.line 398
:cond_da
invoke-virtual {v3}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, LLibcoreWrapper/os;->stat(Ljava/lang/String;)LLibcoreWrapper/StructStat;
move-result-object v0
.line 399
iget v0, v0, LLibcoreWrapper/StructStat;->st_uid:I
goto :goto_a4
.line 414
:cond_e5
invoke-virtual {v4}, Ljava/io/File;->exists()Z
move-result v0
if-nez v0, :cond_f3
.line 415
const-string v0, "**CRITICAL ERROR ** getDataCache NOT EXIST. file not exist, can\'t load secondary dex"
const/4 v1, 0x0
invoke-static {p0, v0, v1}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
goto/16 :goto_f
.line 422
:cond_f3
invoke-static {p0}, Lcom/cleanmaster/loader/b;->e(Landroid/content/Context;)V
.line 424
new-instance v0, Lcom/cleanmaster/loader/d;
invoke-direct {v0}, Lcom/cleanmaster/loader/d;-><init>()V
invoke-virtual {v4, v0}, Ljava/io/File;->list(Ljava/io/FilenameFilter;)[Ljava/lang/String;
move-result-object v2
.line 434
if-eqz v2, :cond_29a
array-length v0, v2
if-lez v0, :cond_29a
.line 435
const-string v0, "SubDex"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Extracted subDex :"
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-static {v2}, Ljava/util/Arrays;->toString([Ljava/lang/Object;)Ljava/lang/String;
move-result-object v3
invoke-virtual {v1, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 436
sget v0, Lcom/cleanmaster/loader/b;->b:I
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(I)V
.line 437
sget v0, Lcom/cleanmaster/loader/b;->b:I
array-length v1, v2
if-ne v0, v1, :cond_236
.line 439
const/4 v0, 0x0
:goto_12b
sget v1, Lcom/cleanmaster/loader/b;->b:I
if-ge v0, v1, :cond_141
.line 440
invoke-static {v0}, Lcom/cleanmaster/loader/b;->b(I)Ljava/lang/String;
move-result-object v1
.line 441
sget-object v3, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
new-instance v5, Lcom/cleanmaster/loader/b$b;
const/4 v6, 0x0
invoke-direct {v5, v4, v1, v6}, Lcom/cleanmaster/loader/b$b;-><init>(Ljava/io/File;Ljava/lang/String;Lcom/cleanmaster/loader/c;)V
invoke-virtual {v3, v5}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
.line 439
add-int/lit8 v0, v0, 0x1
goto :goto_12b
.line 444
:cond_141
const/16 v0, 0x64
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
.line 445
const/4 v1, 0x1
.line 446
sget-object v0, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
invoke-virtual {v0}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator;
move-result-object v3
:cond_14d
invoke-interface {v3}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_603
invoke-interface {v3}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/loader/b$b;
.line 447
invoke-static {v0}, Lcom/cleanmaster/loader/b$b;->a(Lcom/cleanmaster/loader/b$b;)Ljava/io/File;
move-result-object v5
.line 448
const-string v6, "SubDex"
new-instance v7, Ljava/lang/StringBuilder;
invoke-direct {v7}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "Internal Storage Path for Dex file: "
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
invoke-virtual {v5}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v8
invoke-virtual {v7, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v7
invoke-virtual {v7}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v7
invoke-static {v6, v7}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 449
if-eqz v0, :cond_234
invoke-virtual {v5}, Ljava/io/File;->exists()Z
move-result v6
if-eqz v6, :cond_234
.line 452
const/16 v6, 0x8
new-array v6, v6, [B
.line 454
:try_start_185
new-instance v7, Ljava/io/BufferedInputStream;
invoke-virtual {p0}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;
move-result-object v8
invoke-static {v0}, Lcom/cleanmaster/loader/b$b;->b(Lcom/cleanmaster/loader/b$b;)Ljava/lang/String;
move-result-object v9
invoke-virtual {v8, v9}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
move-result-object v8
const/16 v9, 0x8
invoke-direct {v7, v8, v9}, Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;I)V
.line 455
sget-boolean v8, Lcom/cleanmaster/loader/b;->a:Z
if-nez v8, :cond_225
if-nez v7, :cond_225
new-instance v7, Ljava/lang/AssertionError;
invoke-direct {v7}, Ljava/lang/AssertionError;-><init>()V
throw v7
:try_end_1a4
.catch Ljava/io/IOException; {:try_start_185 .. :try_end_1a4} :catch_1a4
.line 458
:catch_1a4
move-exception v7
.line 460
:goto_1a5
new-instance v7, Ljava/lang/String;
invoke-direct {v7, v6}, Ljava/lang/String;-><init>([B)V
.line 461
invoke-static {v7}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v6
if-nez v6, :cond_22d
.line 462
invoke-static {v5}, Lcom/cleanmaster/hpsharelib/base/util/hash/CRC32Util;->getFileCRC32(Ljava/io/File;)J
move-result-wide v8
.line 463
const-string v5, "%08x"
const/4 v6, 0x1
new-array v6, v6, [Ljava/lang/Object;
const/4 v10, 0x0
invoke-static {v8, v9}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v8
aput-object v8, v6, v10
invoke-static {v5, v6}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
move-result-object v5
.line 464
const-string v6, "SubDex"
new-instance v8, Ljava/lang/StringBuilder;
invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
invoke-static {v0}, Lcom/cleanmaster/loader/b$b;->c(Lcom/cleanmaster/loader/b$b;)Ljava/lang/String;
move-result-object v9
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v8
const-string v9, " File "
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v8
invoke-virtual {v8, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v8
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v8
invoke-static {v6, v8}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 465
const-string v6, "SubDex"
new-instance v8, Ljava/lang/StringBuilder;
invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
invoke-static {v0}, Lcom/cleanmaster/loader/b$b;->b(Lcom/cleanmaster/loader/b$b;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v8, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v8, " Assets "
invoke-virtual {v0, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, v7}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v6, v0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 466
invoke-virtual {v5, v7}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v0
if-nez v0, :cond_14d
.line 467
const/16 v0, 0x65
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
.line 468
const/4 v0, 0x0
.line 482
:goto_210
if-eqz v0, :cond_236
.line 483
const-string v0, "SubDex"
const-string v1, "SKIP EXTRACT SUBDEX FROM APK"
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 484
const/16 v0, 0x66
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
.line 485
sget-object v0, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
invoke-static {p0, v4, v0}, Lcom/cleanmaster/loader/b;->a(Landroid/content/Context;Ljava/io/File;Ljava/util/HashSet;)V
goto/16 :goto_f
.line 456
:cond_225
:try_start_225
invoke-virtual {v7, v6}, Ljava/io/BufferedInputStream;->read([B)I
.line 457
invoke-virtual {v7}, Ljava/io/BufferedInputStream;->close()V
:try_end_22b
.catch Ljava/io/IOException; {:try_start_225 .. :try_end_22b} :catch_1a4
goto/16 :goto_1a5
.line 472
:cond_22d
const/16 v0, 0x67
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
.line 473
const/4 v0, 0x0
.line 474
goto :goto_210
.line 477
:cond_234
const/4 v0, 0x0
.line 478
goto :goto_210
.line 491
:cond_236
const-string v0, "SubDex"
const-string v1, "SUBDEX MISMATCH OR NOT EXISTS. RECREATE IT"
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 493
const/4 v0, 0x0
:goto_23e
array-length v1, v2
if-ge v0, v1, :cond_253
.line 494
invoke-static {v0}, Lcom/cleanmaster/loader/b;->b(I)Ljava/lang/String;
move-result-object v1
.line 495
sget-object v3, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
new-instance v5, Lcom/cleanmaster/loader/b$b;
const/4 v6, 0x0
invoke-direct {v5, v4, v1, v6}, Lcom/cleanmaster/loader/b$b;-><init>(Ljava/io/File;Ljava/lang/String;Lcom/cleanmaster/loader/c;)V
invoke-virtual {v3, v5}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
.line 493
add-int/lit8 v0, v0, 0x1
goto :goto_23e
.line 498
:cond_253
sget-object v0, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
invoke-virtual {v0}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator;
move-result-object v1
:cond_259
:goto_259
invoke-interface {v1}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_29a
invoke-interface {v1}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/loader/b$b;
.line 499
if-eqz v0, :cond_259
invoke-static {v0}, Lcom/cleanmaster/loader/b$b;->c(Lcom/cleanmaster/loader/b$b;)Ljava/lang/String;
move-result-object v2
if-eqz v2, :cond_259
.line 501
new-instance v2, Ljava/io/File;
invoke-static {v0}, Lcom/cleanmaster/loader/b$b;->c(Lcom/cleanmaster/loader/b$b;)Ljava/lang/String;
move-result-object v3
invoke-direct {v2, v4, v3}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 502
invoke-virtual {v2}, Ljava/io/File;->exists()Z
move-result v3
if-eqz v3, :cond_27f
.line 503
invoke-virtual {v2}, Ljava/io/File;->delete()Z
.line 505
:cond_27f
new-instance v2, Ljava/io/File;
invoke-static {v0}, Lcom/cleanmaster/loader/b$b;->c(Lcom/cleanmaster/loader/b$b;)Ljava/lang/String;
move-result-object v0
const-string v3, ".dex"
const-string v5, ".jar"
invoke-virtual {v0, v3, v5}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
move-result-object v0
invoke-direct {v2, v4, v0}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 506
invoke-virtual {v2}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_259
.line 507
invoke-virtual {v2}, Ljava/io/File;->delete()Z
goto :goto_259
.line 514
:cond_29a
sget-object v0, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
invoke-virtual {v0}, Ljava/util/HashSet;->clear()V
.line 515
const/4 v1, 0x0
.line 516
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v6
.line 517
const/4 v0, 0x0
:goto_2a5
sget v2, Lcom/cleanmaster/loader/b;->b:I
if-ge v0, v2, :cond_353
.line 518
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-static {v0}, Lcom/cleanmaster/loader/b;->b(I)Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
const-string v3, ".lzma"
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v5
.line 520
:try_start_2c0
invoke-virtual {p0}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;
move-result-object v2
invoke-virtual {v2, v5}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
move-result-object v1
.line 521
const-string v2, "SubDex"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, " Lzma try to find : "
invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 522
new-instance v8, Lcom/cleanmaster/loader/b$b;
invoke-static {v0}, Lcom/cleanmaster/loader/b;->b(I)Ljava/lang/String;
move-result-object v2
const/4 v3, 0x0
invoke-direct {v8, v4, v2, v3}, Lcom/cleanmaster/loader/b$b;-><init>(Ljava/io/File;Ljava/lang/String;Lcom/cleanmaster/loader/c;)V
.line 523
invoke-static {v8}, Lcom/cleanmaster/loader/b$b;->a(Lcom/cleanmaster/loader/b$b;)Ljava/io/File;
move-result-object v2
invoke-virtual {v2}, Ljava/io/File;->exists()Z
move-result v2
if-eqz v2, :cond_393
.line 524
invoke-static {v8}, Lcom/cleanmaster/loader/b$b;->a(Lcom/cleanmaster/loader/b$b;)Ljava/io/File;
move-result-object v2
invoke-virtual {v2}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v2
const/16 v3, 0x1ed
const/4 v9, -0x1
const/4 v10, -0x1
invoke-static {v2, v3, v9, v10}, Landroid/os/FileUtils;->setPermissions(Ljava/lang/String;III)I
move-result v2
.line 525
if-eqz v2, :cond_322
.line 526
const-string v3, "SubDex"
new-instance v9, Ljava/lang/StringBuilder;
invoke-direct {v9}, Ljava/lang/StringBuilder;-><init>()V
const-string v10, "Set Dex File Permissions error, error code is : "
invoke-virtual {v9, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v9
invoke-static {v2}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v2
invoke-virtual {v9, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v3, v2}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 528
:cond_322
invoke-static {v8}, Lcom/cleanmaster/loader/b$b;->a(Lcom/cleanmaster/loader/b$b;)Ljava/io/File;
move-result-object v2
invoke-virtual {v2}, Ljava/io/File;->delete()Z
move-result v2
if-nez v2, :cond_393
.line 529
const-wide/16 v2, 0xa
invoke-static {v2, v3}, Landroid/os/SystemClock;->sleep(J)V
.line 530
invoke-static {v8}, Lcom/cleanmaster/loader/b$b;->a(Lcom/cleanmaster/loader/b$b;)Ljava/io/File;
move-result-object v2
invoke-virtual {v2}, Ljava/io/File;->delete()Z
move-result v2
if-nez v2, :cond_393
.line 531
const-string v2, "**CRITICAL ERROR ** DELETE SECONDARY_DEX_NAME FAILED "
const/4 v3, 0x0
invoke-static {p0, v2, v3}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
:try_end_341
.catch Ljava/io/IOException; {:try_start_2c0 .. :try_end_341} :catch_343
goto/16 :goto_f
.line 567
:catch_343
move-exception v2
.line 569
const/16 v2, 0x71
invoke-static {v2}, Lcom/cleanmaster/loader/b;->a(C)V
.line 570
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(I)V
.line 571
const-string v0, "SubDex"
const-string v2, "Not found Lzma"
invoke-static {v0, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 575
:cond_353
if-eqz v1, :cond_358
.line 577
:try_start_355
invoke-virtual {v1}, Ljava/io/InputStream;->close()V
:try_end_358
.catch Ljava/io/IOException; {:try_start_355 .. :try_end_358} :catch_42f
.line 583
:cond_358
:goto_358
sget-object v0, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
invoke-virtual {v0}, Ljava/util/HashSet;->size()I
move-result v0
if-lez v0, :cond_435
.line 585
const-string v0, "SubDex"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
sget-object v2, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
invoke-virtual {v2}, Ljava/util/HashSet;->size()I
move-result v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " Lzma be found : "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v2
sub-long/2addr v2, v6
invoke-virtual {v1, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 586
const/16 v0, 0x69
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
.line 587
sget-object v0, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
invoke-static {p0, v4, v0}, Lcom/cleanmaster/loader/b;->a(Landroid/content/Context;Ljava/io/File;Ljava/util/HashSet;)V
goto/16 :goto_f
.line 538
:cond_393
:try_start_393
invoke-static {}, Lcom/cleanmaster/loader/b;->c()J
move-result-wide v2
.line 539
const-wide/32 v10, 0x2000000
cmp-long v2, v2, v10
if-gez v2, :cond_3be
.line 540
invoke-static {p0}, Lcom/cleanmaster/loader/b;->d(Landroid/content/Context;)V
.line 542
const-wide/16 v2, 0x5dc
invoke-static {v2, v3}, Landroid/os/SystemClock;->sleep(J)V
.line 543
const-string v2, "SubDex"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v9, " Lzma try to cleanSysCache "
invoke-virtual {v3, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v3
invoke-static {v2, v3}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 546
:cond_3be
const/4 v2, 0x0
.line 547
const/4 v3, 0x0
:goto_3c0
const/4 v9, 0x3
if-ge v3, v9, :cond_417
.line 548
new-instance v9, Lcom/keniu/security/update/lzma/c;
invoke-direct {v9}, Lcom/keniu/security/update/lzma/c;-><init>()V
.line 549
const-string v10, "SubDex"
new-instance v11, Ljava/lang/StringBuilder;
invoke-direct {v11}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v12, "unlzma to "
invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v11
invoke-static {v8}, Lcom/cleanmaster/loader/b$b;->a(Lcom/cleanmaster/loader/b$b;)Ljava/io/File;
move-result-object v12
invoke-virtual {v12}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v12
invoke-virtual {v11, v12}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v11
invoke-virtual {v11}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v11
invoke-static {v10, v11}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 550
invoke-static {v8}, Lcom/cleanmaster/loader/b$b;->a(Lcom/cleanmaster/loader/b$b;)Ljava/io/File;
move-result-object v10
invoke-virtual {v9, v1, v10}, Lcom/keniu/security/update/lzma/c;->a(Ljava/io/InputStream;Ljava/io/File;)I
move-result v9
.line 551
if-eqz v9, :cond_416
.line 552
invoke-static {p0}, Lcom/cleanmaster/loader/b;->d(Landroid/content/Context;)V
.line 553
const-string v9, "SubDex"
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
const-string v11, " Lzma try to cleanSysCache2 "
invoke-virtual {v10, v11}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v10
invoke-virtual {v10, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v10
invoke-virtual {v10}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v10
invoke-static {v9, v10}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 554
const-wide/16 v10, 0x5dc
invoke-static {v10, v11}, Landroid/os/SystemClock;->sleep(J)V
.line 547
add-int/lit8 v3, v3, 0x1
goto :goto_3c0
.line 556
:cond_416
const/4 v2, 0x1
.line 561
:cond_417
if-nez v2, :cond_421
.line 562
const-string v2, "**CRITICAL ERROR ** unzipFromStream failed"
const/4 v3, 0x0
invoke-static {p0, v2, v3}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
goto/16 :goto_f
.line 565
:cond_421
const/16 v2, 0x68
invoke-static {v2}, Lcom/cleanmaster/loader/b;->a(C)V
.line 566
sget-object v2, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
invoke-virtual {v2, v8}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
:try_end_42b
.catch Ljava/io/IOException; {:try_start_393 .. :try_end_42b} :catch_343
.line 517
add-int/lit8 v0, v0, 0x1
goto/16 :goto_2a5
.line 578
:catch_42f
move-exception v0
.line 579
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
goto/16 :goto_358
.line 591
:cond_435
:try_start_435
new-instance v5, Ljava/util/zip/ZipFile;
invoke-virtual {p0}, Landroid/content/Context;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
move-result-object v0
iget-object v0, v0, Landroid/content/pm/ApplicationInfo;->sourceDir:Ljava/lang/String;
invoke-direct {v5, v0}, Ljava/util/zip/ZipFile;-><init>(Ljava/lang/String;)V
:try_end_440
.catch Ljava/io/IOException; {:try_start_435 .. :try_end_440} :catch_44a
.line 597
if-nez v5, :cond_452
.line 598
const-string v0, "**CRITICAL ERROR ** unable open ZipFile"
const/4 v1, 0x0
invoke-static {p0, v0, v1}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
goto/16 :goto_f
.line 592
:catch_44a
move-exception v0
.line 593
const-string v1, "**CRITICAL ERROR ** Unable Open sourceDir"
invoke-static {p0, v1, v0}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
goto/16 :goto_f
.line 603
:cond_452
const/4 v0, 0x0
:goto_453
sget v1, Lcom/cleanmaster/loader/b;->b:I
if-ge v0, v1, :cond_461
.line 604
invoke-static {v0}, Lcom/cleanmaster/loader/b;->b(I)Ljava/lang/String;
move-result-object v1
.line 605
invoke-virtual {v5, v1}, Ljava/util/zip/ZipFile;->getEntry(Ljava/lang/String;)Ljava/util/zip/ZipEntry;
move-result-object v2
.line 606
if-nez v2, :cond_4be
.line 611
:cond_461
const/16 v0, 0x6b
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
.line 612
sget-object v0, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
invoke-virtual {v0}, Ljava/util/HashSet;->size()I
move-result v0
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(I)V
.line 613
const-string v0, "SubDex"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string/jumbo v2, "zipfile has dex list : "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
sget-object v2, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
invoke-virtual {v2}, Ljava/util/HashSet;->size()I
move-result v2
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 615
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x15
if-lt v0, v1, :cond_4cc
.line 616
sget-object v0, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
invoke-virtual {v0}, Ljava/util/HashSet;->size()I
move-result v0
if-gtz v0, :cond_4a3
.line 617
const-string v0, "SubDex"
const-string v1, "[Warning] Not found subDex...."
invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 620
:cond_4a3
sget-object v0, Lcom/cleanmaster/loader/b;->e:Ljava/lang/String;
const-string v1, ".dex"
invoke-virtual {v0, v1}, Ljava/lang/String;->equals(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_4e1
.line 621
const-string v0, "SubDex"
const-string v1, "For android 5.0+ version! No need do custom subdex load."
invoke-static {v0, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 623
:try_start_4b4
invoke-virtual {v5}, Ljava/util/zip/ZipFile;->close()V
:try_end_4b7
.catch Ljava/io/IOException; {:try_start_4b4 .. :try_end_4b7} :catch_5fe
.line 626
:goto_4b7
const/16 v0, 0x6c
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
goto/16 :goto_f
.line 609
:cond_4be
sget-object v3, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
new-instance v6, Lcom/cleanmaster/loader/b$b;
const/4 v7, 0x0
invoke-direct {v6, v4, v1, v2, v7}, Lcom/cleanmaster/loader/b$b;-><init>(Ljava/io/File;Ljava/lang/String;Ljava/util/zip/ZipEntry;Lcom/cleanmaster/loader/c;)V
invoke-virtual {v3, v6}, Ljava/util/HashSet;->add(Ljava/lang/Object;)Z
.line 603
add-int/lit8 v0, v0, 0x1
goto :goto_453
.line 630
:cond_4cc
sget-object v0, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
invoke-virtual {v0}, Ljava/util/HashSet;->size()I
move-result v0
if-gtz v0, :cond_4dc
.line 631
const-string v0, "**CRITICAL ERROR ** Not found SubDex in ZipFile "
const/4 v1, 0x0
invoke-static {p0, v0, v1}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
goto/16 :goto_f
.line 635
:cond_4dc
const/16 v0, 0x6d
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
.line 638
:cond_4e1
sget-object v0, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
invoke-virtual {v0}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator;
move-result-object v6
:goto_4e7
invoke-interface {v6}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_5ed
invoke-interface {v6}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/loader/b$b;
.line 639
invoke-static {v0}, Lcom/cleanmaster/loader/b$b;->d(Lcom/cleanmaster/loader/b$b;)Ljava/util/zip/ZipEntry;
move-result-object v1
if-nez v1, :cond_516
.line 640
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "**CRITICAL ERROR ** Unable Open secondary dex "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 641
invoke-static {v0}, Lcom/cleanmaster/loader/b$b;->c(Lcom/cleanmaster/loader/b$b;)Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const/4 v1, 0x0
.line 640
invoke-static {p0, v0, v1}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
goto/16 :goto_f
.line 644
:cond_516
invoke-static {v0}, Lcom/cleanmaster/loader/b$b;->a(Lcom/cleanmaster/loader/b$b;)Ljava/io/File;
move-result-object v7
.line 645
invoke-virtual {v7}, Ljava/io/File;->exists()Z
move-result v1
if-eqz v1, :cond_563
.line 646
invoke-virtual {v7}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v1
const/16 v2, 0x1ed
const/4 v3, -0x1
const/4 v8, -0x1
invoke-static {v1, v2, v3, v8}, Landroid/os/FileUtils;->setPermissions(Ljava/lang/String;III)I
move-result v1
.line 647
if-eqz v1, :cond_54a
.line 648
const-string v2, "SubDex"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v8, "Set Dex File Permissions error, error code is : "
invoke-virtual {v3, v8}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
.line 649
invoke-static {v1}, Ljava/lang/Integer;->toString(I)Ljava/lang/String;
move-result-object v1
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
.line 648
invoke-static {v2, v1}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
.line 652
:cond_54a
invoke-virtual {v7}, Ljava/io/File;->delete()Z
move-result v1
if-nez v1, :cond_563
.line 653
const-wide/16 v2, 0xa
invoke-static {v2, v3}, Landroid/os/SystemClock;->sleep(J)V
.line 655
invoke-virtual {v7}, Ljava/io/File;->delete()Z
move-result v1
if-nez v1, :cond_563
.line 656
const-string v0, "**CRITICAL ERROR ** DELETE SECONDARY_DEX_NAME FAILED "
const/4 v1, 0x0
invoke-static {p0, v0, v1}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
goto/16 :goto_f
.line 662
:cond_563
invoke-static {}, Lcom/cleanmaster/loader/b;->c()J
move-result-wide v2
.line 663
const-wide/32 v8, 0x2000000
cmp-long v1, v2, v8
if-gez v1, :cond_57b
.line 664
invoke-static {p0}, Lcom/cleanmaster/loader/b;->d(Landroid/content/Context;)V
.line 666
const-wide/16 v2, 0x5dc
invoke-static {v2, v3}, Landroid/os/SystemClock;->sleep(J)V
.line 667
const/16 v1, 0x6e
invoke-static {v1}, Lcom/cleanmaster/loader/b;->a(C)V
.line 669
:cond_57b
const/4 v2, 0x0
.line 670
const/4 v1, 0x1
.line 672
:try_start_57d
invoke-static {v0}, Lcom/cleanmaster/loader/b$b;->d(Lcom/cleanmaster/loader/b$b;)Ljava/util/zip/ZipEntry;
move-result-object v3
invoke-virtual {v5, v3}, Ljava/util/zip/ZipFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
move-result-object v3
invoke-static {v3, v7}, Lcom/cleanmaster/loader/b;->a(Ljava/io/InputStream;Ljava/io/File;)Z
move-result v2
.line 673
const-string v3, "SubDex"
new-instance v8, Ljava/lang/StringBuilder;
invoke-direct {v8}, Ljava/lang/StringBuilder;-><init>()V
const-string v9, " zipfile extractSubdex : "
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v8
invoke-virtual {v7}, Ljava/io/File;->getName()Ljava/lang/String;
move-result-object v9
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v8
const-string v9, " "
invoke-virtual {v8, v9}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v8
invoke-virtual {v8, v2}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
move-result-object v8
invoke-virtual {v8}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v8
invoke-static {v3, v8}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
.line 674
if-nez v2, :cond_5c6
.line 675
invoke-static {p0}, Lcom/cleanmaster/loader/b;->d(Landroid/content/Context;)V
.line 676
const-wide/16 v8, 0x5dc
invoke-static {v8, v9}, Landroid/os/SystemClock;->sleep(J)V
.line 677
const/4 v1, 0x2
.line 678
invoke-static {v0}, Lcom/cleanmaster/loader/b$b;->d(Lcom/cleanmaster/loader/b$b;)Ljava/util/zip/ZipEntry;
move-result-object v3
invoke-virtual {v5, v3}, Ljava/util/zip/ZipFile;->getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;
move-result-object v3
invoke-static {v3, v7}, Lcom/cleanmaster/loader/b;->a(Ljava/io/InputStream;Ljava/io/File;)Z
:try_end_5c5
.catch Ljava/lang/Exception; {:try_start_57d .. :try_end_5c5} :catch_5e1
move-result v2
.line 685
:cond_5c6
:goto_5c6
if-nez v2, :cond_5e8
.line 687
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "**CRITICAL ERROR ** extractSubdex, step= "
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const/4 v1, 0x0
invoke-static {p0, v0, v1}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
goto/16 :goto_f
.line 680
:catch_5e1
move-exception v1
.line 681
const/4 v3, 0x3
.line 682
invoke-virtual {v1}, Ljava/lang/Exception;->printStackTrace()V
move v1, v3
goto :goto_5c6
.line 691
:cond_5e8
invoke-static {v0, v7}, Lcom/cleanmaster/loader/b$b;->a(Lcom/cleanmaster/loader/b$b;Ljava/io/File;)Ljava/io/File;
goto/16 :goto_4e7
.line 693
:cond_5ed
if-eqz v5, :cond_5f2
.line 695
:try_start_5ef
invoke-virtual {v5}, Ljava/util/zip/ZipFile;->close()V
:try_end_5f2
.catch Ljava/lang/Exception; {:try_start_5ef .. :try_end_5f2} :catch_601
.line 699
:cond_5f2
:goto_5f2
const/16 v0, 0x70
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
.line 700
sget-object v0, Lcom/cleanmaster/loader/b;->c:Ljava/util/HashSet;
invoke-static {p0, v4, v0}, Lcom/cleanmaster/loader/b;->a(Landroid/content/Context;Ljava/io/File;Ljava/util/HashSet;)V
goto/16 :goto_f
.line 624
:catch_5fe
move-exception v0
goto/16 :goto_4b7
.line 696
:catch_601
move-exception v0
goto :goto_5f2
:cond_603
move v0, v1
goto/16 :goto_210
.end method
.method static synthetic a(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
.registers 3
.prologue
.line 47
invoke-static {p0, p1, p2}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
return-void
.end method
.method private static a(Ljava/io/File;I)Z
.registers 7
.prologue
const/4 v0, 0x1
const/4 v2, -0x1
.line 94
invoke-virtual {p0}, Ljava/io/File;->canWrite()Z
move-result v1
if-eqz v1, :cond_9
.line 101
:cond_8
:goto_8
return v0
.line 96
:cond_9
invoke-virtual {p0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v1
invoke-static {v1, p1, v2, v2}, Landroid/os/FileUtils;->setPermissions(Ljava/lang/String;III)I
move-result v1
.line 97
const-string v2, "SubDex"
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "FileUtils.setPermissions(): filesDir:"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
move-result-object v3
const-string v4, " return: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v3
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v2, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 99
invoke-virtual {p0}, Ljava/io/File;->canWrite()Z
move-result v1
if-nez v1, :cond_8
.line 101
const/4 v0, 0x0
goto :goto_8
.end method
.method private static a(Ljava/io/InputStream;Ljava/io/File;)Z
.registers 8
.prologue
const/4 v1, 0x0
const/4 v0, 0x0
.line 282
.line 286
:try_start_2
new-instance v3, Ljava/io/BufferedInputStream;
invoke-direct {v3, p0}, Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;)V
:try_end_7
.catch Ljava/io/IOException; {:try_start_2 .. :try_end_7} :catch_83
.catchall {:try_start_2 .. :try_end_7} :catchall_67
.line 287
:try_start_7
sget-boolean v2, Lcom/cleanmaster/loader/b;->a:Z
if-nez v2, :cond_20
if-nez v3, :cond_20
new-instance v2, Ljava/lang/AssertionError;
invoke-direct {v2}, Ljava/lang/AssertionError;-><init>()V
throw v2
:try_end_13
.catch Ljava/io/IOException; {:try_start_7 .. :try_end_13} :catch_13
.catchall {:try_start_7 .. :try_end_13} :catchall_7e
.line 296
:catch_13
move-exception v2
move-object v2, v3
.line 299
:goto_15
if-eqz v1, :cond_1a
.line 301
:try_start_17
invoke-virtual {v1}, Ljava/io/OutputStream;->close()V
:try_end_1a
.catch Ljava/io/IOException; {:try_start_17 .. :try_end_1a} :catch_5d
.line 306
:cond_1a
:goto_1a
if-eqz v2, :cond_1f
.line 308
:try_start_1c
invoke-virtual {v2}, Ljava/io/BufferedInputStream;->close()V
:try_end_1f
.catch Ljava/io/IOException; {:try_start_1c .. :try_end_1f} :catch_62
.line 314
:cond_1f
:goto_1f
return v0
.line 289
:cond_20
:try_start_20
new-instance v2, Ljava/io/BufferedOutputStream;
new-instance v4, Ljava/io/FileOutputStream;
invoke-direct {v4, p1}, Ljava/io/FileOutputStream;-><init>(Ljava/io/File;)V
invoke-direct {v2, v4}, Ljava/io/BufferedOutputStream;-><init>(Ljava/io/OutputStream;)V
:try_end_2a
.catch Ljava/io/IOException; {:try_start_20 .. :try_end_2a} :catch_13
.catchall {:try_start_20 .. :try_end_2a} :catchall_7e
.line 290
const v1, 0x8000
:try_start_2d
new-array v1, v1, [B
.line 292
:goto_2f
const/4 v4, 0x0
const v5, 0x8000
invoke-virtual {v3, v1, v4, v5}, Ljava/io/BufferedInputStream;->read([BII)I
move-result v4
if-lez v4, :cond_42
.line 293
const/4 v5, 0x0
invoke-virtual {v2, v1, v5, v4}, Ljava/io/OutputStream;->write([BII)V
:try_end_3d
.catch Ljava/io/IOException; {:try_start_2d .. :try_end_3d} :catch_3e
.catchall {:try_start_2d .. :try_end_3d} :catchall_80
goto :goto_2f
.line 296
:catch_3e
move-exception v1
move-object v1, v2
move-object v2, v3
goto :goto_15
.line 299
:cond_42
if-eqz v2, :cond_47
.line 301
:try_start_44
invoke-virtual {v2}, Ljava/io/OutputStream;->close()V
:try_end_47
.catch Ljava/io/IOException; {:try_start_44 .. :try_end_47} :catch_53
.line 306
:cond_47
:goto_47
if-eqz v3, :cond_4c
.line 308
:try_start_49
invoke-virtual {v3}, Ljava/io/BufferedInputStream;->close()V
:try_end_4c
.catch Ljava/io/IOException; {:try_start_49 .. :try_end_4c} :catch_58
.line 313
:cond_4c
:goto_4c
const/16 v0, 0x6f
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
.line 314
const/4 v0, 0x1
goto :goto_1f
.line 302
:catch_53
move-exception v0
.line 303
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
goto :goto_47
.line 309
:catch_58
move-exception v0
.line 310
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
goto :goto_4c
.line 302
:catch_5d
move-exception v1
.line 303
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
goto :goto_1a
.line 309
:catch_62
move-exception v1
.line 310
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
goto :goto_1f
.line 299
:catchall_67
move-exception v0
move-object v3, v1
:goto_69
if-eqz v1, :cond_6e
.line 301
:try_start_6b
invoke-virtual {v1}, Ljava/io/OutputStream;->close()V
:try_end_6e
.catch Ljava/io/IOException; {:try_start_6b .. :try_end_6e} :catch_74
.line 306
:cond_6e
:goto_6e
if-eqz v3, :cond_73
.line 308
:try_start_70
invoke-virtual {v3}, Ljava/io/BufferedInputStream;->close()V
:try_end_73
.catch Ljava/io/IOException; {:try_start_70 .. :try_end_73} :catch_79
.line 311
:cond_73
:goto_73
throw v0
.line 302
:catch_74
move-exception v1
.line 303
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
goto :goto_6e
.line 309
:catch_79
move-exception v1
.line 310
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
goto :goto_73
.line 299
:catchall_7e
move-exception v0
goto :goto_69
:catchall_80
move-exception v0
move-object v1, v2
goto :goto_69
.line 296
:catch_83
move-exception v2
move-object v2, v1
goto :goto_15
.end method
.method public static b(Landroid/content/Context;)Ljava/io/File;
.registers 12
.prologue
const/4 v10, 0x5
const/4 v3, 0x0
const/4 v1, 0x0
const/4 v9, -0x1
const/16 v8, 0x1ed
.line 170
if-nez p0, :cond_a
move-object v0, v1
.line 277
:cond_9
:goto_9
return-object v0
.line 174
:cond_a
invoke-static {p0}, Lcom/cleanmaster/loader/b;->a(Landroid/content/Context;)Ljava/io/File;
move-result-object v0
.line 175
if-eqz v0, :cond_2d
.line 176
const-string v1, "SubDex"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "code_cache : "
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v3
invoke-virtual {v2, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v2
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v2
invoke-static {v1, v2}, Landroid/util/Log;->i(Ljava/lang/String;Ljava/lang/String;)I
goto :goto_9
.line 179
:cond_2d
const/16 v0, 0x63
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
.line 180
const-string v0, "dex2"
invoke-virtual {p0, v0, v3}, Landroid/content/Context;->getDir(Ljava/lang/String;I)Ljava/io/File;
move-result-object v0
.line 181
if-eqz v0, :cond_5f
.line 182
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v2
if-eqz v2, :cond_48
const/16 v2, 0x1fd
invoke-static {v0, v2}, Lcom/cleanmaster/loader/b;->a(Ljava/io/File;I)Z
move-result v2
if-nez v2, :cond_9
.line 184
:cond_48
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v2
if-nez v2, :cond_5f
.line 185
invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
.line 186
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v2
if-eqz v2, :cond_5f
const/16 v2, 0x1fd
invoke-static {v0, v2}, Lcom/cleanmaster/loader/b;->a(Ljava/io/File;I)Z
move-result v2
if-nez v2, :cond_9
.line 191
:cond_5f
invoke-virtual {p0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object v0
.line 192
if-eqz v0, :cond_86
.line 193
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v2
if-eqz v2, :cond_71
invoke-static {v0, v8}, Lcom/cleanmaster/loader/b;->a(Ljava/io/File;I)Z
move-result v2
if-nez v2, :cond_9
.line 195
:cond_71
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v2
if-nez v2, :cond_86
.line 196
invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
.line 197
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v2
if-eqz v2, :cond_86
invoke-static {v0, v8}, Lcom/cleanmaster/loader/b;->a(Ljava/io/File;I)Z
move-result v2
if-nez v2, :cond_9
.line 202
:cond_86
invoke-virtual {p0}, Landroid/content/Context;->getApplicationInfo()Landroid/content/pm/ApplicationInfo;
move-result-object v4
.line 203
if-eqz v4, :cond_b4
.line 204
new-instance v0, Ljava/io/File;
iget-object v2, v4, Landroid/content/pm/ApplicationInfo;->dataDir:Ljava/lang/String;
const-string v5, "files"
invoke-direct {v0, v2, v5}, Ljava/io/File;-><init>(Ljava/lang/String;Ljava/lang/String;)V
.line 205
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v2
if-nez v2, :cond_b4
.line 207
const-string v2, "SubDex"
const-string v5, "files folder is not exist, try recreate"
invoke-static {v2, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
move v2, v3
.line 209
:goto_a3
if-ge v2, v10, :cond_b4
.line 210
invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
.line 212
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v5
if-eqz v5, :cond_127
.line 213
invoke-static {v0, v8}, Lcom/cleanmaster/loader/b;->a(Ljava/io/File;I)Z
move-result v2
if-nez v2, :cond_9
.line 227
:cond_b4
const-string v0, ""
.line 228
if-eqz v4, :cond_cd
.line 229
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "/data/data/"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
iget-object v2, v4, Landroid/content/pm/ApplicationInfo;->packageName:Ljava/lang/String;
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 231
:cond_cd
new-instance v2, Ljava/io/File;
invoke-direct {v2, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 233
invoke-virtual {v2}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_137
invoke-virtual {v2}, Ljava/io/File;->canWrite()Z
move-result v0
if-nez v0, :cond_137
.line 234
invoke-virtual {v2}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
invoke-static {v0, v8, v9, v9}, Landroid/os/FileUtils;->setPermissions(Ljava/lang/String;III)I
move-result v0
.line 236
const-string v4, "SubDex"
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
const-string v6, "data/data/pkg can not write, setPermissions, return: "
invoke-virtual {v5, v6}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v5
invoke-virtual {v5, v0}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v4, v0}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 246
:cond_fe
:goto_fe
invoke-virtual {v2}, Ljava/io/File;->exists()Z
move-result v0
if-nez v0, :cond_15b
.line 248
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "**CRITICAL ERROR *"
invoke-virtual {v0, v3}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v2}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v2
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v2, " is not EXIST!!!"
invoke-virtual {v0, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {p0, v0, v1}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
move-object v0, v1
.line 249
goto/16 :goto_9
.line 220
:cond_127
const-string v5, "SubDex"
const-string v6, "files folder is not exist, recreate failed, sleep 166ms"
invoke-static {v5, v6}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 222
const-wide/16 v6, 0xa6
invoke-static {v6, v7}, Landroid/os/SystemClock;->sleep(J)V
.line 209
add-int/lit8 v2, v2, 0x1
goto/16 :goto_a3
.line 238
:cond_137
invoke-virtual {v2}, Ljava/io/File;->exists()Z
move-result v0
if-nez v0, :cond_fe
.line 239
const-string v0, "SubDex"
const-string v4, "data/data/pkg is not exist, recreate"
invoke-static {v0, v4}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 241
invoke-virtual {v2}, Ljava/io/File;->mkdirs()Z
.line 242
invoke-virtual {v2}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_fe
invoke-virtual {v2}, Ljava/io/File;->canWrite()Z
move-result v0
if-nez v0, :cond_fe
.line 243
invoke-virtual {v2}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v0
invoke-static {v0, v8, v9, v9}, Landroid/os/FileUtils;->setPermissions(Ljava/lang/String;III)I
goto :goto_fe
.line 252
:cond_15b
new-instance v0, Ljava/io/File;
const-string v4, "files"
invoke-direct {v0, v2, v4}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
.line 253
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v4
if-nez v4, :cond_180
.line 255
const-string v4, "SubDex"
const-string v5, "[**] files folder is not exist, try recreate"
invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 257
:goto_16f
if-ge v3, v10, :cond_180
.line 258
invoke-virtual {v0}, Ljava/io/File;->mkdirs()Z
.line 260
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v4
if-eqz v4, :cond_189
.line 261
invoke-static {v0, v8}, Lcom/cleanmaster/loader/b;->a(Ljava/io/File;I)Z
move-result v3
if-nez v3, :cond_9
.line 273
:cond_180
invoke-virtual {v2}, Ljava/io/File;->canWrite()Z
move-result v0
if-eqz v0, :cond_198
move-object v0, v2
.line 274
goto/16 :goto_9
.line 268
:cond_189
const-string v4, "SubDex"
const-string v5, "[**] files folder is not exist, recreate failed, sleep 166ms"
invoke-static {v4, v5}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 269
const-wide/16 v4, 0xa6
invoke-static {v4, v5}, Landroid/os/SystemClock;->sleep(J)V
.line 257
add-int/lit8 v3, v3, 0x1
goto :goto_16f
.line 276
:cond_198
const-string v0, "SubDex"
const-string v2, "[********** FAILED *****************"
invoke-static {v0, v2}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
move-object v0, v1
.line 277
goto/16 :goto_9
.end method
.method static synthetic b()Ljava/lang/Integer;
.registers 1
.prologue
.line 47
sget-object v0, Lcom/cleanmaster/loader/b;->f:Ljava/lang/Integer;
return-object v0
.end method
.method private static b(I)Ljava/lang/String;
.registers 3
.prologue
.line 705
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "classes"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
add-int/lit8 v1, p0, 0x2
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v0
sget-object v1, Lcom/cleanmaster/loader/b;->e:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
return-object v0
.end method
.method private static b(Landroid/content/Context;Ljava/io/File;Ljava/util/HashSet;)V
.registers 10
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Landroid/content/Context;",
"Ljava/io/File;",
"Ljava/util/HashSet",
"<",
"Lcom/cleanmaster/loader/b$b;",
">;)V"
}
.end annotation
.prologue
.line 835
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v2
.line 836
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p1}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
sget-object v1, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "opt_dex"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
.line 837
new-instance v1, Ljava/io/File;
invoke-direct {v1, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 838
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v0
if-nez v0, :cond_2f
.line 839
invoke-virtual {v1}, Ljava/io/File;->mkdirs()Z
.line 840
:cond_2f
const/4 v0, 0x0
invoke-static {v0}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;
move-result-object v0
sput-object v0, Lcom/cleanmaster/loader/b;->f:Ljava/lang/Integer;
.line 842
:try_start_36
invoke-virtual {p2}, Ljava/util/HashSet;->iterator()Ljava/util/Iterator;
move-result-object v4
:goto_3a
invoke-interface {v4}, Ljava/util/Iterator;->hasNext()Z
move-result v0
if-eqz v0, :cond_77
invoke-interface {v4}, Ljava/util/Iterator;->next()Ljava/lang/Object;
move-result-object v0
check-cast v0, Lcom/cleanmaster/loader/b$b;
.line 843
new-instance v5, Ljava/util/ArrayList;
invoke-direct {v5}, Ljava/util/ArrayList;-><init>()V
.line 844
invoke-static {v0}, Lcom/cleanmaster/loader/b$b;->a(Lcom/cleanmaster/loader/b$b;)Ljava/io/File;
move-result-object v6
invoke-virtual {v5, v6}, Ljava/util/ArrayList;->add(Ljava/lang/Object;)Z
.line 845
new-instance v5, Lcom/cleanmaster/loader/b$a;
invoke-direct {v5, p0, v1, v0}, Lcom/cleanmaster/loader/b$a;-><init>(Landroid/content/Context;Ljava/io/File;Lcom/cleanmaster/loader/b$b;)V
invoke-virtual {v5}, Lcom/cleanmaster/loader/b$a;->start()V
:try_end_5a
.catch Ljava/lang/Exception; {:try_start_36 .. :try_end_5a} :catch_5b
goto :goto_3a
.line 847
:catch_5b
move-exception v0
.line 848
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "**CRITICAL ERROR ** SUBDEX LOAD FAILED at = "
invoke-virtual {v1, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
.line 849
invoke-virtual {v0}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-virtual {v1, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
const/4 v1, 0x0
.line 848
invoke-static {p0, v0, v1}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
.line 851
:cond_77
:goto_77
sget-object v0, Lcom/cleanmaster/loader/b;->f:Ljava/lang/Integer;
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
invoke-virtual {p2}, Ljava/util/HashSet;->size()I
move-result v1
if-eq v0, v1, :cond_89
.line 852
const-wide/16 v0, 0x64
invoke-static {v0, v1}, Landroid/os/SystemClock;->sleep(J)V
goto :goto_77
.line 854
:cond_89
invoke-virtual {p2}, Ljava/util/HashSet;->size()I
move-result v0
add-int/lit8 v0, v0, 0x1
invoke-static {p0, v0}, Lcom/cleanmaster/hpsharelib/crash/DexPathInfo;->isDexInjectSuccess(Landroid/content/Context;I)Z
move-result v0
.line 855
if-eqz v0, :cond_9a
.line 856
const/16 v0, 0x72
invoke-static {v0}, Lcom/cleanmaster/loader/b;->a(C)V
.line 858
:cond_9a
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
const-string v1, "doDexInject "
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-static {}, Ljava/lang/System;->currentTimeMillis()J
move-result-wide v4
sub-long v2, v4, v2
invoke-virtual {v0, v2, v3}, Ljava/lang/StringBuilder;->append(J)Ljava/lang/StringBuilder;
move-result-object v0
const-string v1, "ms path:"
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
sget-object v1, Lcom/cleanmaster/hpsharelib/crash/DexPathInfo;->DOING_INJECT:Ljava/lang/String;
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Lcom/cleanmaster/hpsharelib/base/util/debug/Logg;->e(Ljava/lang/String;)V
.line 859
const/4 v0, 0x1
sput-boolean v0, Lcom/cleanmaster/loader/b;->d:Z
.line 860
return-void
.end method
.method private static b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
.registers 5
.prologue
.line 318
if-eqz p2, :cond_5
.line 319
invoke-virtual {p2}, Ljava/lang/Exception;->printStackTrace()V
.line 321
:cond_5
const-string v0, ""
.line 322
if-eqz p2, :cond_1e
.line 323
new-instance v0, Ljava/lang/StringBuilder;
invoke-direct {v0}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {p2}, Ljava/lang/Exception;->getMessage()Ljava/lang/String;
move-result-object v1
invoke-virtual {v0, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
.line 329
:cond_1e
const-string v0, "SubDex"
invoke-static {v0, p1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 330
const-string v0, "SubDex"
invoke-static {p0, v0, p1}, Lcom/cleanmaster/loader/SubDexLog;->log(Landroid/content/Context;Ljava/lang/String;Ljava/lang/String;)V
.line 334
return-void
.end method
.method private static c()J
.registers 4
.prologue
.line 338
invoke-static {}, Landroid/os/Environment;->getDataDirectory()Ljava/io/File;
move-result-object v0
.line 339
if-eqz v0, :cond_22
invoke-virtual {v0}, Ljava/io/File;->exists()Z
move-result v1
if-eqz v1, :cond_22
.line 341
:try_start_c
new-instance v1, Landroid/os/StatFs;
invoke-virtual {v0}, Ljava/io/File;->getPath()Ljava/lang/String;
move-result-object v0
invoke-direct {v1, v0}, Landroid/os/StatFs;-><init>(Ljava/lang/String;)V
.line 342
invoke-virtual {v1}, Landroid/os/StatFs;->getAvailableBlocks()I
move-result v0
int-to-long v2, v0
invoke-virtual {v1}, Landroid/os/StatFs;->getBlockSize()I
:try_end_1d
.catch Ljava/lang/Exception; {:try_start_c .. :try_end_1d} :catch_21
move-result v0
int-to-long v0, v0
mul-long/2addr v0, v2
.line 347
:goto_20
return-wide v0
.line 344
:catch_21
move-exception v0
.line 347
:cond_22
const-wide/16 v0, 0x0
goto :goto_20
.end method
.method public static c(Landroid/content/Context;)V
.registers 7
.prologue
.line 888
const/16 v0, 0x22
new-array v0, v0, [Ljava/lang/String;
const/4 v1, 0x0
const-string v2, "/app_dex/permanentsubdex.dex"
aput-object v2, v0, v1
const/4 v1, 0x1
const-string v2, "/app_dex/permanentsubdex.jar"
aput-object v2, v0, v1
const/4 v1, 0x2
const-string v2, "/app_dex/subdex.dex"
aput-object v2, v0, v1
const/4 v1, 0x3
const-string v2, "/app_dex/subdex.jar"
aput-object v2, v0, v1
const/4 v1, 0x4
const-string v2, "/app_dex/floatsubdex.dex"
aput-object v2, v0, v1
const/4 v1, 0x5
const-string v2, "/app_dex/floatsubdex.jar"
aput-object v2, v0, v1
const/4 v1, 0x6
const-string v2, "/files/permanentsubdex.dex"
aput-object v2, v0, v1
const/4 v1, 0x7
const-string v2, "/files/permanentsubdex.jar"
aput-object v2, v0, v1
const/16 v1, 0x8
const-string v2, "/files/subdex.dex"
aput-object v2, v0, v1
const/16 v1, 0x9
const-string v2, "/files/subdex.jar"
aput-object v2, v0, v1
const/16 v1, 0xa
const-string v2, "/files/floatsubdex.dex"
aput-object v2, v0, v1
const/16 v1, 0xb
const-string v2, "/files/floatsubdex.jar"
aput-object v2, v0, v1
const/16 v1, 0xc
const-string v2, "/app_dex/classes2_ui.dex"
aput-object v2, v0, v1
const/16 v1, 0xd
const-string v2, "/app_dex/classes2_float.dex"
aput-object v2, v0, v1
const/16 v1, 0xe
const-string v2, "/app_dex/classes2_svc.dex"
aput-object v2, v0, v1
const/16 v1, 0xf
const-string v2, "/app_dex/classes2_bgscan.dex"
aput-object v2, v0, v1
const/16 v1, 0x10
const-string v2, "/app_dex/classes2_login.dex"
aput-object v2, v0, v1
const/16 v1, 0x11
const-string v2, "/app_dex/classes2_phototrim.dex"
aput-object v2, v0, v1
const/16 v1, 0x12
const-string v2, "/app_dex/classes2_gameboxweb.dex"
aput-object v2, v0, v1
const/16 v1, 0x13
const-string v2, "/app_dex/classes2_storage.dex"
aput-object v2, v0, v1
const/16 v1, 0x14
const-string v2, "/app_dex/classes2_perms.dex"
aput-object v2, v0, v1
const/16 v1, 0x15
const-string v2, "/app_dex/classes2_sdscanservice.dex"
aput-object v2, v0, v1
const/16 v1, 0x16
const-string v2, "/app_dex/classes2_applock.dex"
aput-object v2, v0, v1
const/16 v1, 0x17
const-string v2, "/app_dex/opt_dex/classes2_ui.dex"
aput-object v2, v0, v1
const/16 v1, 0x18
const-string v2, "/app_dex/opt_dex/classes2_float.dex"
aput-object v2, v0, v1
const/16 v1, 0x19
const-string v2, "/app_dex/opt_dex/classes2_svc.dex"
aput-object v2, v0, v1
const/16 v1, 0x1a
const-string v2, "/app_dex/opt_dex/classes2_bgscan.dex"
aput-object v2, v0, v1
const/16 v1, 0x1b
const-string v2, "/app_dex/opt_dex/classes2_login.dex"
aput-object v2, v0, v1
const/16 v1, 0x1c
const-string v2, "/app_dex/opt_dex/classes2_phototrim.dex"
aput-object v2, v0, v1
const/16 v1, 0x1d
const-string v2, "/app_dex/opt_dex/classes2_gameboxweb.dex"
aput-object v2, v0, v1
const/16 v1, 0x1e
const-string v2, "/app_dex/opt_dex/classes2_storage.dex"
aput-object v2, v0, v1
const/16 v1, 0x1f
const-string v2, "/app_dex/opt_dex/classes2_perms.dex"
aput-object v2, v0, v1
const/16 v1, 0x20
const-string v2, "/app_dex/opt_dex/classes2_sdscanservice.dex"
aput-object v2, v0, v1
const/16 v1, 0x21
const-string v2, "/app_dex/opt_dex/classes2_applock.dex"
aput-object v2, v0, v1
.line 929
invoke-static {}, Lcom/cleanmaster/base/util/concurrent/BackgroundThread;->getHandler()Landroid/os/Handler;
move-result-object v1
new-instance v2, Lcom/cleanmaster/loader/e;
invoke-direct {v2, p0, v0}, Lcom/cleanmaster/loader/e;-><init>(Landroid/content/Context;[Ljava/lang/String;)V
const-wide/16 v4, 0x1388
invoke-virtual {v1, v2, v4, v5}, Landroid/os/Handler;->postDelayed(Ljava/lang/Runnable;J)Z
.line 941
return-void
.end method
.method private static d(Landroid/content/Context;)V
.registers 7
.prologue
.line 105
invoke-virtual {p0}, Landroid/content/Context;->getPackageManager()Landroid/content/pm/PackageManager;
move-result-object v0
.line 106
if-nez v0, :cond_7
.line 126
:cond_6
:goto_6
return-void
.line 111
:cond_7
:try_start_7
invoke-virtual {v0}, Ljava/lang/Object;->getClass()Ljava/lang/Class;
move-result-object v1
const-string v2, "freeStorageAndNotify"
const/4 v3, 0x2
new-array v3, v3, [Ljava/lang/Class;
const/4 v4, 0x0
sget-object v5, Ljava/lang/Long;->TYPE:Ljava/lang/Class;
aput-object v5, v3, v4
const/4 v4, 0x1
const-class v5, Landroid/content/pm/IPackageDataObserver;
aput-object v5, v3, v4
invoke-virtual {v1, v2, v3}, Ljava/lang/Class;->getMethod(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
move-result-object v1
.line 112
if-eqz v1, :cond_6
.line 115
const-wide/32 v2, 0x2000000
invoke-static {v2, v3}, Ljava/lang/Long;->valueOf(J)Ljava/lang/Long;
move-result-object v2
.line 116
const/4 v3, 0x2
new-array v3, v3, [Ljava/lang/Object;
const/4 v4, 0x0
aput-object v2, v3, v4
const/4 v2, 0x1
new-instance v4, Lcom/cleanmaster/loader/c;
invoke-direct {v4}, Lcom/cleanmaster/loader/c;-><init>()V
aput-object v4, v3, v2
invoke-virtual {v1, v0, v3}, Ljava/lang/reflect/Method;->invoke(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
:try_end_38
.catch Ljava/lang/reflect/InvocationTargetException; {:try_start_7 .. :try_end_38} :catch_39
.catch Ljava/lang/NoSuchMethodException; {:try_start_7 .. :try_end_38} :catch_3d
.catch Ljava/lang/IllegalAccessException; {:try_start_7 .. :try_end_38} :catch_3b
goto :goto_6
.line 122
:catch_39
move-exception v0
goto :goto_6
.line 124
:catch_3b
move-exception v0
goto :goto_6
.line 123
:catch_3d
move-exception v0
goto :goto_6
.end method
.method private static e(Landroid/content/Context;)V
.registers 8
.prologue
const/16 v5, 0x15
const/4 v0, 0x6
const/4 v1, 0x0
.line 714
.line 715
new-array v2, v0, [B
.line 719
:try_start_6
new-instance v0, Ljava/io/BufferedInputStream;
invoke-virtual {p0}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;
move-result-object v3
const-string/jumbo v4, "subdex_cfg2.hash"
invoke-virtual {v3, v4}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
move-result-object v3
const/4 v4, 0x6
invoke-direct {v0, v3, v4}, Ljava/io/BufferedInputStream;-><init>(Ljava/io/InputStream;I)V
:try_end_17
.catch Ljava/io/IOException; {:try_start_6 .. :try_end_17} :catch_e3
.catchall {:try_start_6 .. :try_end_17} :catchall_9a
.line 720
:try_start_17
sget-boolean v3, Lcom/cleanmaster/loader/b;->a:Z
if-nez v3, :cond_87
if-nez v0, :cond_87
new-instance v3, Ljava/lang/AssertionError;
invoke-direct {v3}, Ljava/lang/AssertionError;-><init>()V
throw v3
:try_end_23
.catch Ljava/io/IOException; {:try_start_17 .. :try_end_23} :catch_23
.catchall {:try_start_17 .. :try_end_23} :catchall_de
.line 722
:catch_23
move-exception v3
.line 726
:goto_24
if-eqz v0, :cond_29
.line 727
:try_start_26
invoke-virtual {v0}, Ljava/io/BufferedInputStream;->close()V
:try_end_29
.catch Ljava/io/IOException; {:try_start_26 .. :try_end_29} :catch_95
.line 732
:cond_29
:goto_29
new-instance v0, Ljava/lang/String;
invoke-direct {v0, v2}, Ljava/lang/String;-><init>([B)V
.line 733
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v2
if-nez v2, :cond_d2
.line 734
const-string v2, "\\|"
invoke-virtual {v0, v2}, Ljava/lang/String;->split(Ljava/lang/String;)[Ljava/lang/String;
move-result-object v0
.line 735
if-eqz v0, :cond_c6
array-length v2, v0
const/4 v3, 0x2
if-ne v2, v3, :cond_c6
.line 736
const/4 v2, 0x0
aget-object v2, v0, v2
.line 737
const/4 v3, 0x1
aget-object v0, v0, v3
.line 738
if-eqz v2, :cond_b3
.line 739
const-string v3, ".dex"
invoke-virtual {v2, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v3
if-eqz v3, :cond_a6
.line 740
const-string v2, ".dex"
sput-object v2, Lcom/cleanmaster/loader/b;->e:Ljava/lang/String;
.line 748
:cond_54
:goto_54
if-eqz v0, :cond_c0
.line 750
:try_start_56
invoke-static {v0}, Ljava/lang/Integer;->valueOf(Ljava/lang/String;)Ljava/lang/Integer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v0
sput v0, Lcom/cleanmaster/loader/b;->b:I
:try_end_60
.catch Ljava/lang/Exception; {:try_start_56 .. :try_end_60} :catch_b9
.line 771
:cond_60
:goto_60
const-string v0, "SubDex"
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "SubDex Config : "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
sget-object v2, Lcom/cleanmaster/loader/b;->e:Ljava/lang/String;
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
const-string v2, " "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v1
sget v2, Lcom/cleanmaster/loader/b;->b:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-static {v0, v1}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I
.line 772
return-void
.line 721
:cond_87
:try_start_87
invoke-virtual {v0, v2}, Ljava/io/BufferedInputStream;->read([B)I
:try_end_8a
.catch Ljava/io/IOException; {:try_start_87 .. :try_end_8a} :catch_23
.catchall {:try_start_87 .. :try_end_8a} :catchall_de
.line 726
if-eqz v0, :cond_29
.line 727
:try_start_8c
invoke-virtual {v0}, Ljava/io/BufferedInputStream;->close()V
:try_end_8f
.catch Ljava/io/IOException; {:try_start_8c .. :try_end_8f} :catch_90
goto :goto_29
.line 728
:catch_90
move-exception v0
.line 729
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
goto :goto_29
.line 728
:catch_95
move-exception v0
.line 729
invoke-virtual {v0}, Ljava/io/IOException;->printStackTrace()V
goto :goto_29
.line 725
:catchall_9a
move-exception v0
.line 726
:goto_9b
if-eqz v1, :cond_a0
.line 727
:try_start_9d
invoke-virtual {v1}, Ljava/io/BufferedInputStream;->close()V
:try_end_a0
.catch Ljava/io/IOException; {:try_start_9d .. :try_end_a0} :catch_a1
.line 730
:cond_a0
:goto_a0
throw v0
.line 728
:catch_a1
move-exception v1
.line 729
invoke-virtual {v1}, Ljava/io/IOException;->printStackTrace()V
goto :goto_a0
.line 741
:cond_a6
const-string v3, ".jar"
invoke-virtual {v2, v3}, Ljava/lang/String;->equalsIgnoreCase(Ljava/lang/String;)Z
move-result v2
if-eqz v2, :cond_54
.line 742
const-string v2, ".jar"
sput-object v2, Lcom/cleanmaster/loader/b;->e:Ljava/lang/String;
goto :goto_54
.line 745
:cond_b3
const-string v2, "**CRITICAL ERROR ** SUBDEX CONFIG TYPE CHECK FAILURE"
invoke-static {p0, v2, v1}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
goto :goto_54
.line 751
:catch_b9
move-exception v0
.line 752
const-string v1, "**CRITICAL ERROR ** SUBDEX CONFIG NUM CHECK FAILURE"
invoke-static {p0, v1, v0}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
goto :goto_60
.line 756
:cond_c0
const-string v0, "**CRITICAL ERROR ** SUBDEX CONFIG NUM CHECK FAILURE"
invoke-static {p0, v0, v1}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
goto :goto_60
.line 760
:cond_c6
invoke-static {}, Lcom/cleanmaster/hpsharelib/base/util/system/SDKUtils;->GetSDKLevel()I
move-result v0
if-ge v0, v5, :cond_60
.line 761
const-string v0, "**CRITICAL ERROR ** SUBDEX CONFIG FORMAT ERROR"
invoke-static {p0, v0, v1}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
goto :goto_60
.line 766
:cond_d2
invoke-static {}, Lcom/cleanmaster/hpsharelib/base/util/system/SDKUtils;->GetSDKLevel()I
move-result v0
if-ge v0, v5, :cond_60
.line 767
const-string v0, "**CRITICAL ERROR ** NOT FOUND SUBDEX CONFIG "
invoke-static {p0, v0, v1}, Lcom/cleanmaster/loader/b;->b(Landroid/content/Context;Ljava/lang/String;Ljava/lang/Exception;)V
goto :goto_60
.line 725
:catchall_de
move-exception v1
move-object v6, v1
move-object v1, v0
move-object v0, v6
goto :goto_9b
.line 722
:catch_e3
move-exception v0
move-object v0, v1
goto/16 :goto_24
.end method