ProbeCrash.smali
.class public Lcom/cleanmaster/hpsharelib/crash/ProbeCrash;
.super Ljava/lang/Object;
.source "ProbeCrash.java"
# static fields
.field private static final VERSION_INI:Ljava/lang/String; = "version.ini"
.field private static bUpLoad:Z
.field private static s_last_up_time:J
# direct methods
.method static constructor <clinit>()V
.registers 2
.prologue
.line 114
const/4 v0, 0x0
sput-boolean v0, Lcom/cleanmaster/hpsharelib/crash/ProbeCrash;->bUpLoad:Z
.line 304
const-wide/16 v0, 0x0
sput-wide v0, Lcom/cleanmaster/hpsharelib/crash/ProbeCrash;->s_last_up_time:J
return-void
.end method
.method public constructor <init>()V
.registers 1
.prologue
.line 24
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
return-void
.end method
.method public static final GetLastUpdateDbTime()J
.registers 2
.prologue
.line 319
invoke-static {}, Lcom/cleanmaster/hpsharelib/base/util/system/RuntimeCheck;->isServiceProcess()Z
move-result v0
if-eqz v0, :cond_b
.line 320
invoke-static {}, Lcom/cleanmaster/hpsharelib/crash/ProbeCrash;->GetLastUpdateDbTimeInService()J
move-result-wide v0
.line 326
:goto_a
return-wide v0
.line 324
:cond_b
:try_start_b
invoke-static {}, Lcom/cleanmaster/hpsharelib/synipc/SyncIpcCtrl;->getIns()Lcom/cleanmaster/hpsharelib/synipc/SyncIpcCtrl;
move-result-object v0
invoke-virtual {v0}, Lcom/cleanmaster/hpsharelib/synipc/SyncIpcCtrl;->getIPCClient()Lcom/cleanmaster/hpsharelib/synipc/ISyncIpcService;
move-result-object v0
invoke-interface {v0}, Lcom/cleanmaster/hpsharelib/synipc/ISyncIpcService;->GetLastUpdateDbTime()J
:try_end_16
.catch Ljava/lang/Exception; {:try_start_b .. :try_end_16} :catch_18
move-result-wide v0
goto :goto_a
.line 325
:catch_18
move-exception v0
.line 326
const-wide/16 v0, 0x0
goto :goto_a
.end method
.method public static final GetLastUpdateDbTimeInService()J
.registers 4
.prologue
.line 310
sget-wide v0, Lcom/cleanmaster/hpsharelib/crash/ProbeCrash;->s_last_up_time:J
const-wide/16 v2, 0x0
cmp-long v0, v0, v2
if-nez v0, :cond_b
.line 311
sget-wide v0, Lcom/cleanmaster/hpsharelib/crash/ProbeCrash;->s_last_up_time:J
.line 315
:goto_a
return-wide v0
:cond_b
sget-wide v0, Lcom/cleanmaster/hpsharelib/crash/ProbeCrash;->s_last_up_time:J
goto :goto_a
.end method
.method public static IsClassNotFoundCrash(Ljava/lang/Throwable;)Z
.registers 4
.prologue
const/4 v0, 0x1
.line 239
instance-of v1, p0, Ljava/lang/NoClassDefFoundError;
if-eqz v1, :cond_6
.line 253
:cond_5
:goto_5
return v0
.line 242
:cond_6
instance-of v1, p0, Ljava/lang/ClassNotFoundException;
if-nez v1, :cond_5
.line 245
invoke-virtual {p0}, Ljava/lang/Throwable;->getCause()Ljava/lang/Throwable;
move-result-object v1
.line 246
if-eqz v1, :cond_18
.line 247
instance-of v2, v1, Ljava/lang/NoClassDefFoundError;
if-nez v2, :cond_5
.line 250
instance-of v1, v1, Ljava/lang/ClassNotFoundException;
if-nez v1, :cond_5
.line 253
:cond_18
const/4 v0, 0x0
goto :goto_5
.end method
.method public static IsGcFinalizyCrash(Ljava/lang/Throwable;)Z
.registers 3
.prologue
.line 227
instance-of v0, p0, Ljava/util/concurrent/TimeoutException;
if-eqz v0, :cond_23
sget v0, Landroid/os/Build$VERSION;->SDK_INT:I
const/16 v1, 0x11
if-lt v0, v1, :cond_23
.line 228
invoke-virtual {p0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
invoke-static {v0}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
move-result v0
if-nez v0, :cond_23
.line 230
invoke-virtual {p0}, Ljava/lang/Throwable;->getMessage()Ljava/lang/String;
move-result-object v0
const-string/jumbo v1, "timed out after 10 seconds"
invoke-virtual {v0, v1}, Ljava/lang/String;->contains(Ljava/lang/CharSequence;)Z
move-result v0
if-eqz v0, :cond_23
.line 231
const/4 v0, 0x1
.line 235
:goto_22
return v0
:cond_23
const/4 v0, 0x0
goto :goto_22
.end method
.method public static Probe(Landroid/content/Context;)V
.registers 6
.prologue
const/4 v4, -0x1
.line 30
invoke-static {p0}, Lcom/cleanmaster/hpsharelib/oeam/Env;->getVersionCode(Landroid/content/Context;)I
move-result v0
.line 33
const v1, 0x9cb6be
if-eq v1, v0, :cond_26
.line 34
const-string v1, "CM"
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
const-string v3, "Env.VERSION_CODE != nSysVerCode, exit...."
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(I)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
.line 35
invoke-static {v4}, Ljava/lang/System;->exit(I)V
.line 58
:goto_25
return-void
.line 41
:cond_26
invoke-virtual {p0}, Landroid/content/Context;->getResources()Landroid/content/res/Resources;
move-result-object v0
if-nez v0, :cond_50
.line 43
:try_start_2c
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;
.line 44
new-instance v1, Ljava/io/File;
invoke-direct {v1, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 46
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v1
if-nez v1, :cond_50
.line 47
invoke-static {v0}, Lcom/cleanmaster/hpsharelib/crash/ProbeCrash;->getNextSourcePath(Ljava/lang/String;)Ljava/lang/String;
move-result-object v0
.line 48
new-instance v1, Ljava/io/File;
invoke-direct {v1, v0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {v1}, Ljava/io/File;->exists()Z
move-result v0
if-eqz v0, :cond_50
.line 49
const/4 v0, -0x1
invoke-static {v0}, Ljava/lang/System;->exit(I)V
:try_end_50
.catch Ljava/lang/Exception; {:try_start_2c .. :try_end_50} :catch_54
.line 57
:cond_50
:goto_50
invoke-static {p0}, Lcom/cleanmaster/hpsharelib/crash/ProbeCrash;->ProbeAsset(Landroid/content/Context;)V
goto :goto_25
.line 52
:catch_54
move-exception v0
.line 53
invoke-virtual {v0}, Ljava/lang/Exception;->printStackTrace()V
goto :goto_50
.end method
.method public static ProbeAsset(Landroid/content/Context;)V
.registers 5
.prologue
const/4 v2, 0x0
.line 71
.line 73
const/4 v3, 0x0
.line 74
:try_start_2
invoke-virtual {p0}, Landroid/content/Context;->getAssets()Landroid/content/res/AssetManager;
:try_end_5
.catch Ljava/lang/Exception; {:try_start_2 .. :try_end_5} :catch_2e
move-result-object v1
.line 76
:try_start_6
const-string/jumbo v0, "version.ini"
invoke-virtual {v1, v0}, Landroid/content/res/AssetManager;->open(Ljava/lang/String;)Ljava/io/InputStream;
:try_end_c
.catchall {:try_start_6 .. :try_end_c} :catchall_13
move-result-object v0
.line 78
if-eqz v0, :cond_12
.line 79
:try_start_f
invoke-virtual {v0}, Ljava/io/InputStream;->close()V
.line 99
:cond_12
:goto_12
return-void
.line 78
:catchall_13
move-exception v0
if-eqz v2, :cond_19
.line 79
invoke-virtual {v3}, Ljava/io/InputStream;->close()V
:cond_19
throw v0
:try_end_1a
.catch Ljava/lang/Exception; {:try_start_f .. :try_end_1a} :catch_1a
.line 83
:catch_1a
move-exception v0
move-object v0, v1
.line 84
:goto_1c
invoke-static {p0, v0}, Lcom/cleanmaster/hpsharelib/crash/ProbeCrash;->addDefAssetPath(Landroid/content/Context;Landroid/content/res/AssetManager;)I
.line 88
:try_start_1f
const-string/jumbo v1, "version.ini"
invoke-virtual {v0, v1}, Landroid/content/res/AssetManager;->openFd(Ljava/lang/String;)Landroid/content/res/AssetFileDescriptor;
move-result-object v0
.line 90
if-eqz v0, :cond_12
.line 91
invoke-virtual {v0}, Landroid/content/res/AssetFileDescriptor;->close()V
:try_end_2b
.catch Ljava/lang/Exception; {:try_start_1f .. :try_end_2b} :catch_2c
goto :goto_12
.line 96
:catch_2c
move-exception v0
goto :goto_12
.line 83
:catch_2e
move-exception v0
move-object v0, v2
goto :goto_1c
.end method
.method public static ProbeCheckSqliteCrash(I)V
.registers 12
.prologue
const/4 v1, 0x1
.line 116
sget-boolean v0, Lcom/cleanmaster/hpsharelib/crash/ProbeCrash;->bUpLoad:Z
if-eqz v0, :cond_6
.line 152
:goto_5
return-void
.line 119
:cond_6
sput-boolean v1, Lcom/cleanmaster/hpsharelib/crash/ProbeCrash;->bUpLoad:Z
.line 121
const/4 v4, 0x0
.line 122
const-wide/16 v2, 0x0
.line 125
const-string v0, ""
.line 126
invoke-static {}, Lcom/cleanmaster/hpsharelib/base/util/HostHelper;->getAppContext()Landroid/content/Context;
move-result-object v5
.line 127
const-string v6, "cleanmaster_process_list.db"
invoke-virtual {v5, v6}, Landroid/content/Context;->getDatabasePath(Ljava/lang/String;)Ljava/io/File;
move-result-object v5
.line 129
invoke-virtual {v5}, Ljava/io/File;->exists()Z
move-result v6
if-eqz v6, :cond_f6
.line 131
invoke-virtual {v5}, Ljava/io/File;->length()J
move-result-wide v2
.line 134
:try_start_21
invoke-virtual {v5}, Ljava/io/File;->getCanonicalPath()Ljava/lang/String;
:try_end_24
.catch Ljava/lang/Exception; {:try_start_21 .. :try_end_24} :catch_f0
move-result-object v0
.line 139
:goto_25
new-instance v4, Landroid/os/StatFs;
const-string v6, "/data/"
invoke-direct {v4, v6}, Landroid/os/StatFs;-><init>(Ljava/lang/String;)V
.line 140
invoke-virtual {v4}, Landroid/os/StatFs;->getAvailableBlocks()I
move-result v6
int-to-long v6, v6
.line 141
invoke-virtual {v4}, Landroid/os/StatFs;->getBlockCount()I
move-result v4
int-to-long v8, v4
.line 143
const-string v4, ""
.line 144
new-instance v10, Ljava/lang/StringBuilder;
invoke-direct {v10}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v10, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v10, "File: "
invoke-virtual {v4, v10}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v5}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, "\n"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
.line 145
new-instance v5, Ljava/lang/StringBuilder;
invoke-direct {v5}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v5, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, "Exist: "
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4, v1}, Ljava/lang/StringBuilder;->append(Z)Ljava/lang/StringBuilder;
move-result-object v1
const-string v4, "\n"
invoke-virtual {v1, v4}, Lja